Droidspaces
الذهاب إلى القناة على Telegram
https://github.com/ravindu644/Droidspaces-OSS CI: @DroidspacesCI
إظهار المزيدلم يتم تحديد البلدالتكنولوجيات والتطبيقات33 960
1 402
المشتركون
+924 ساعات
+477 أيام
+14830 أيام
أرشيف المشاركات
1 402
New feature: Self-recovery
Implemented at the backend level.
If the backend detects that the PID files, environment variables, container config file, or mountpoints have been deleted,
The backend will automatically restore the exact files that were deleted to their original locations.
Additionally,
You can now place containers anywhere.
For example, the rootfs.img can be inside your internal storage.
The backend will automatically create the necessary configuration inside /data/local/Droidspaces/Containers, and the app will automatically pick it up.
This means,
You no longer need to use the app for installation.
1 402
🔴 MUST FOLLOW THESE EXACT STEPS:
1. Before installing, stop all your containers.
2. Install the APK and update the backend.
3. Reboot your phone.
1 402
Droidspaces v4.7.1 has been released..!
🐛 What's new ?
[ App ]
- add delays to improve terminal console scrolling and animation, and enhance ANSI color parsing to support colon separators
[ Backend ]
- implement robust container internal reboot detection and graceful shutdown !
- hardening: cumulative security, safety, and resource audit fixes
- feat: implement CTRL+ALT+Q foreground exit sequence and display corresponding instructions
- fixed various memory leaks and compiler warnings
- enhance device isolation by adding dangerous node detection and pruning host display, GPU master, MediaTek components, BSD PTYs, TEE, and legacy RAM disks and console devices from container access.
- implement robust container discovery and metadata recovery using in-container config backups and enhanced PID scanning
Github Release: https://github.com/ravindu644/Droidspaces-OSS/releases/tag/v4.7.1
@Droidspaces1 402
Re-uploaded due to a bug in the bind mount logic, where the mounts never got mounted during a container restart because of my aggressive resource cleanup to prevent memory leaks.
1 402
Droidspaces v4.6.0 has been released..!
What's new ? 👀
[ App ]
- Android users now have a universal method to create a bridge between Termux and Container for a single-tap Termux:X11/virgl setup.
- Fixed hanging in the systemd services menu in the Android app.
- Added a new legend in the systemd menu called 'static'.
- Refined the bind mount file picker for a smoother experience.
- Added a new option to define environment variables in the container configuration menu.
[ Backend ]
- In Linux Desktop, no bridge is needed - host's /tmp/.X11-unix folder is now mounted directly to the container's /tmp/.X11-unix.
- Fixed Kernel panics on the host when using --hw-access in Linux Desktop due to mounting wrong GPU nodes.
- Added an option to define environment variables when booting a container in both the backend and the Android app.
- Removed the 16 bind mount max limit from both backend and the Android app.
Github Release: https://github.com/ravindu644/Droidspaces-OSS/releases/tag/v4.6.0
@Droidspaces1 402
Out-of-the-box GPU acceleration for Mali devices using virglrenderer
CI testing:
https://github.com/ravindu644/Droidspaces-OSS/actions/runs/22533326363
Steps to reproduce:
1. Download the artifact from the CI link and install the APK.
2. Edit the container configuration using app to enable X11 and start the container.
3. Open Termux and run:
virgl_test_server_android &
4. Then run:
termux-x11 :0
(Note: :0 is the display number)
5. Enter the container and set the display:
export DISPLAY=:0
6. Set the virgl driver:
export GALLIUM_DRIVER=virpipe
7. Run glxgears and check if it works in Termux-X11.
Note: You'll need to manually install packages in both the container and Termux (not mentioned here).
@Droidspaces1 402
I've forgotten to mention:
v4.5.1 has been released with all the bug fixes, hardened security, out-of-the-box Termux-X11 Unix socket bind mounting, and more.
https://github.com/ravindu644/Droidspaces-OSS/releases/tag/v4.5.1
This release focuses on stability and security. No container leaks, and ghost container creation no longer happens.
In the previous release, I introduced a cool feature to internally use the reboot command. Although it seemed to work, it mistakenly misinterpreted the container power-off sequences as reboots and silently powered the container back on without user consent. This led to corrupted containers, as two instances of the same container were running in two different places, which could corrupt system files if a write operation occurred simultaneously on the same file. (RIP databases)
So, in this version, I completely removed the ability to call the internal reboot command.
That means you MUST manually restart the container via Droidspaces.
Here's the link:
https://github.com/ravindu644/Droidspaces-OSS/releases/tag/v4.5.1
1 402
CRITICAL BUG:
Do not use these releases as restart command currently not working..
Yeah, fixed the internal reboot, external reboot. Fuxed up
1 402
Also implemented
automatic in-container reboot detection
that means, you can run the reboot command inside the container without interacting with the app !
useful for rebooting the container remotely ^^1 402
Droidspaces v4.5.0
What's new..?
[ App ]
- App+Boot module: Use the newly introduced --config option in the backend to start and restart containers.
- Boot module: Skip if a container is already started before attempting to start it again. (If the root solution had a bug that executes service.sh twice, this prevents that chaos)
[ Backend ]
- Implement systemd-aware cgroup setup with forced hierarchy creation and validation: fixes systemd on 4.4 or lower :)
- Implement a persistent configuration system with auto-saving and CLI overrides.
- Improve generate_uuid() fallback entropy.
- Unify standard directory creation during container boot.
- Log errors when creating standard directories in internal_boot.
- Fail early if the .old_root directory cannot be created.
- Implement a nano-like interactive documentation pager.
- Hardening: Enforce strict name uniqueness and stale mount cleanup
Github Release: https://github.com/ravindu644/Droidspaces-OSS/releases/tag/v4.5.0
@Droidspaces1 402
Droidspaces v4.4.3
What's new..?
[ App ]
- Boot module: Support for volatile mode, bind mounts, and custom DNS servers
- Display Toast feedback when content is copied to clipboard in log viewers and the requirements screen
- log tarball file name instead of full URI during container installation
[ Backend ]
- rootfs.img mount options for improved performance and stability - fixes kernel panics on older kernels
- fix race conditions, consolidate constants, and unify status logic
Github Release: https://github.com/ravindu644/Droidspaces-OSS/releases/tag/v4.4.3
@Droidspaces1 402
+2
Absolute Cinema 🗿
This is Ubuntu 22.04 running inside my Galaxy S10 5G, which has an old ass kernel..
1 402
Fixed issues in both the app and the backend. But I'll keep it as a pre-release because it needs further testing.
If you find any bugs, lemme know 😄
https://github.com/ravindu644/Droidspaces-OSS/releases/tag/v4.4.2
1 402
Repost from Samsung & Android Tweaks
Look how fast DroidSpaces has become 🗿
The container boots in under 1 second..! 🔥
1 402
If you find any bugs in DroidSpaces, kindly open an issue on GitHub or make a pull request.
It's just me, a single guy, cooking up a cross-platform portable containerization tool for both Android and Linux in my basement.
I think the project is stable now.
1 402
Man, I'm fed up.
Every time I fix something, something else breaks 😂
Yeah,
I fixed a race condition where the logs showed that the container was stopped, even though in three places it clearly said the container had been started..
1 402
Droidspaces v4.4.1
What's new..?
[ App ]
- real-time terminal output streaming via libsu CallbackList
- implemented auto-scroll to the terminal
[ Backend ]
- feat: Implement a conditional Seccomp shield that applies only to systemd containers on legacy kernels to prevent grab_super deadlocks and improve compatibility - That means you can run Docker/LXC in non-systemd containers like Alpine Linux in legacy kernels as well.
- feat: remove PR_SET_NO_NEW_PRIVS from seccomp setup to fix sudo in Alpine
- Fix DNS race condition and simplify DNS setup
- feat: Implement force cleanup logic in cleanup_container_resources to prevent hangs with unkillable processes by skipping sync and using lazy/force unmounts
- feat: Increase container stop timeout and delay SIGTERM fallback during container shutdown, Send multiple graceful shutdown signals concurrently
Github Release: https://github.com/ravindu644/Droidspaces-OSS/releases/tag/v4.4.0
@Droidspaces1 402
Droidspaces v4.3.2
What's new..?
[ Backend ]
- feat(backend): remount /data with suid for directory-based containers on Android
- style(backend): silence redundant ENOENT warnings for optional namespaces
- refactor(cli): added a new function to print the startup banner and showing a recommended kernel version if the current kernel is too old
- style(cli): update startup banner and silence default DNS logs
- style(backend): silence redundant cgroup namespace warnings on legacy kernels
- fix(cli): restrict foreground mode to strictly interactive terminals
Github Release: https://github.com/ravindu644/Droidspaces-OSS/releases/tag/v4.3.2
@Droidspaces1 402
Droidspaces v4.3.1
What's new..?
[ App ]
- app: synced droidspaces kernel configuration to the latest available config
[ Backend ]
- revert Android optimizations only if unmount is not skipped and no containers are running
- Require rootfs or rootfs-img for restart command
Github Release: https://github.com/ravindu644/Droidspaces-OSS/releases/tag/v4.3.1
@Droidspaces1 402
Wrote the initial README:
https://github.com/ravindu644/Droidspaces-OSS/tree/readme
Please check and let me know if there are any mistakes :)
I didn’t use any emojis in the README - do you guys want them?
