Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Ubo App is a Python application for managing Raspberry Pi utilities and Ubo-specific features.
Example screenshots:
Be aware that at the moment, Ubo app sends crash reports to Sentry. Soon we will limit this to beta versions only.
Ubo app is developed to run on Raspberry Pi 4 and 5. The experience is optimized around Ubo Pod which offers
The app functions even if some of these hardware elements are not provided, however some of the features that rely on these hardware components may not function. For example, WiFi onboarding with QR code requires a camera onboard.
Ubo Pod ships with a pre-flashed MicroSD card that has the app installed on it by default.
If you don't have it, or you just want to set up a fresh device, then:
custom image
to provide the download image file.This is the fastest, easiest, and recommended way to get started with Ubo App.
If you want to install the image on an existing operating system, then read on. Otherwise, skip this section.
⚠️ Executing scripts directly from the internet with root privileges poses a significant security risk. It's generally a good practice to ensure you understand the script's content before running it. You can check the content of this particular script here before running it.
To install ubo, run this command in a terminal shell:
curl -sSL https://raw.githubusercontent.com/ubopod/ubo-app/main/ubo_app/system/install.sh\
| sudo bash
If you want to install docker service and configure ubo to be able to use it run this:
curl -sSL https://raw.githubusercontent.com/ubopod/ubo-app/main/ubo_app/system/install.sh\
| sudo WITH_DOCKER=true bash
To allow the installer to install the latest alpha version of ubo run this:
curl -sSL https://raw.githubusercontent.com/ubopod/ubo-app/main/ubo_app/system/install.sh\
| sudo ALPHA=true bash
# or
curl -sSL https://raw.githubusercontent.com/ubopod/ubo-app/main/ubo_app/system/install.sh\
| sudo ALPHA=true WITH_DOCKER=true bash
Note that as part of the installation process, these debian packages are installed:
Also be aware that ubo-app only installs in /opt/ubo
and it is not customizable
at the moment.
Contributions following Python best practices are welcome.
UBO_
prefix for environment variables.ubo:
prefix for notification ids used in ubo core and <service_name>:
prefix for notification ids used in services.ubo:
prefix for icon ids used in ubo core and <service_name>:
prefix for icon ids used in services.To set up the development environment, you need to have Python 3.11+ and poetry
installed.
First, clone the repository, then install the dependencies:
poetry install --with dev --extras=dev
Now you can run the app with:
poetry run ubo
Easiest way to run tests is to use the provided Dockerfile
s. To run the tests in a container, you first need to create the development images by running:
poetry run poe build-docker-images
Then you can run the tests with:
docker run --rm -it --name ubo-app-test -v .:/ubo-app -v ubo-app-dev-pypoetry-cache:/root/.cache/pypoetry ubo-app-test
You can add arguments to the pytest
command to run specific tests like this:
docker run --rm -it --name ubo-app-test -v .:/ubo-app -v ubo-app-dev-pypoetry-cache:/root/.cache/pypoetry ubo-app-test -- <pytest-args>
For example, to run only the tests in the tests/test_app.py
file, you can run:
docker run --rm -it --name ubo-app-test -v .:/ubo-app -v ubo-app-dev-pypoetry-cache:/root/.cache/pypoetry ubo-app-test -- -n3 tests/test_some_test.py
You can also run the tests in your local environment by running:
poetry run poe test
⚠️Note: When running the tests in your local environment, the window snapshots produced by tests may mismatch the expected snapshots. This is because the snapshots are taken with a certain DPI and some environments may have different DPI settings. For example, we are aware that the snapshots taken in macOS have different DPI settings. If you encounter this issue, you should run the tests in a Docker container as described above.
In development environment, the camera is probably not working as it is relying, on picamera2
, so it may become challenging to test the flows relying on QR code input.
To address this, the qrcode_input
method, in not-RPi environments, will try to get its input from /tmp/qrcode_input.txt
. So, whenever you encounter a QR code input, you can write the content of the QR code in that file and the application will read it from there and continue the flow.
This project is released under the Apache-2.0 License. See the LICENSE file for more details.
FAQs
Ubo main app, running on device initialization. A platform for running other apps.
We found that ubo-app demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.