Forwarded from ππ»π±πΏπΌπ―πππΈπ²π | Linux & Android (/etc/SyntaxSpin)
DroidSpaces π±
A lightweight, LXC-like container runtime for Android and Linux. Run full Linux distributions natively with zero performance penalty
π: GitHub
π: Preview
π₯: Codebase
π: #Android #Linux #Containers #Kotlin
Join us: @Androbusket π
A lightweight, LXC-like container runtime for Android and Linux. Run full Linux distributions natively with zero performance penalty
βΉοΈ Overview :
- Real native Linux containers on Android with 0 virtualization overhead
- Boot time 150ms to 750ms with full systemd as PID 1, nothing else on Android comes close
- Run systemd, OpenRC, runit, s6, SysVinit, whatever init system you want, natively
- Truly unkillable. Survives 25+ days, immune to Android's battery killers and LMK
- Zero data loss even after app uninstallation, containers and daemons keep running, your data lives in /data/local/Droidspaces, independent of everything
- Starts before any user app, even before you unlock your phone while its encrypted, via native init.rc/service.d integration
- Run Docker, LXC, Podman inside Droidspaces, nested containers work natively on ALL kernels
- Real hardware access out of the box, full udev/systemd-udevd support like a real Linux PC
- Out of the box Qualcomm Turnip/Virgl GPU acceleration and Termux:X11 support, single toggle
- Arch, Alpine, Fedora, Ubuntu, Debian, OpenWRT, you name it, Droidspaces runs it
- Full namespace isolation: PID, MNT, IPC, UTS, Cgroup, completely separate from Android
- NAT/Host/None networking with port forwarding, TCP and UDP, works out of the box, no manual bridge setup
- Volatile/ephemeral containers via OverlayFS, all changes in RAM, gone on exit
- Portable rootfs.img support with loop mount, fsck, and SELinux hardening
- 0 dependencies. The entire runtime is a single ~400KB static musl binary
- Works on kernels as old as 3.10, supports aarch64, armhf, x86_64, x86 and riscv64
- Beautiful Android app to manage unlimited containers with full GUI control
- Custom bind mounts, multi-DNS, per-container cgroup hierarchies, and dozens more features
π: GitHub
π: Preview
π₯: Codebase
π: #Android #Linux #Containers #Kotlin
Join us: @Androbusket π
πΏ7π₯2π©1
Droidspaces has been falsely detected as malware on VirusTotal and OnePlus devices' built-in security scanning tools.
I want to clarify that this is a false positive. The issue has been 99% resolved after changing ~20 lines of code in the codebase.
The new CI builds will give you absolutely 0 false positives on OnePlus devices.
Droidspaces is an open-source project, and everything is fully transparent.
We follow strict rules to protect the codebase from malicious contributors and attackers.
Anyone spreading misinformation or blaming the developers will be instantly fedbanned/gbanned without any further discussion.
I want to clarify that this is a false positive. The issue has been 99% resolved after changing ~20 lines of code in the codebase.
The new CI builds will give you absolutely 0 false positives on OnePlus devices.
Droidspaces is an open-source project, and everything is fully transparent.
We follow strict rules to protect the codebase from malicious contributors and attackers.
Anyone spreading misinformation or blaming the developers will be instantly fedbanned/gbanned without any further discussion.
πΏ20β€5π©1π€£1
As a rooted Android user, what do you prefer Droidspaces to be?
Final Results
17%
Sandboxed environment
83%
Freedom to do whatever you like
πΏ3β€1π©1
Next version of Droidspaces is on the way!
But, it totally depends on how stable this CI variant is:
https://t.me/DroidspacesCI/455?single
So, testing and reporting any issues if they exist is appreciated π€
But, it totally depends on how stable this CI variant is:
https://t.me/DroidspacesCI/455?single
So, testing and reporting any issues if they exist is appreciated π€
π10π©1
Droidspaces v6.2.5 has been released! π₯³
What's new?
and misc. UI improvements and bug fixes.
Full Changelog and Downloads:
https://github.com/ravindu644/Droidspaces-OSS/releases/tag/v6.2.5
@Droidspaces
What's new?
- app: implement rootfs repository browser and download manager for rootfs tarballs with custom repository support
- mount: add :ro flag support for read-only bind mounts
- post_extract_fixes: restrict dhcpcd to NAT mode and whitelist eth interfaces to prevent Android network interference
- fix: prevent Linux /dev breakage by restricting device pruning to Android environments
- fix: add hostname sanitization and validation for container configuration menu
- fix: cancel terminal session notification upon service termination or empty session state
- seccomp: truly skip all filters when noseccomp is active
- Android: fix icon cache poisoning and stale state after container poweroff
- fix: log: persist container logging across pivot_root isolation
- build: fix all hardened-debug compiler warnings
- daemon: add mid-run log rotation for droidspacesd.log
- ds_dhcp: fix cross-container DHCP leaks with ifindex and direction filtering
- mount: unify masking as self-bind+RO, drop unused shared mask-dir tmpfs
- fix: declare BootReceiver to satisfy RECEIVE_BOOT_COMPLETED permission
- build: reduce R8 obfuscation to lower AV heuristic score
- post_extract_fixes: generate and set machine-id to prevent systemd deadlocks on Fedora 44
- post_extract_fixes: remove problematic iptables service files
- seccomp: drop mknod/mknodat device blocking
and misc. UI improvements and bug fixes.
Full Changelog and Downloads:
https://github.com/ravindu644/Droidspaces-OSS/releases/tag/v6.2.5
@Droidspaces
2β€10π©1
Droidspaces
app: implement rootfs repository browser and download manager for rootfs tarballs with custom repository support
If you need to learn more about the newly added rootfs repository feature and add the LXC rootfs tarballs repository to the app, please refer to this part of the documentation:
https://github.com/ravindu644/Droidspaces-OSS/blob/main/Documentation/Usage-Android-App.md#rootfs-repository
https://github.com/ravindu644/Droidspaces-OSS/blob/main/Documentation/Usage-Android-App.md#rootfs-repository
πΏ6π©1
Both the droidspacesd SELinux issue and the /dev/pts/1-7 ROOT PTY issues are fully fixed now in the latest CI.
(Have to reboot the phone after the installation)
These were actual bugs on our side. Fixing them eventually fixed the Duck Detector detection.
Banking people happy now?
πΏ8π₯4β€1π©1
Droidspaces
30 days of uptime goal is completed! This proves we are truly unstoppable πͺπ½
Pocket Jellyfin server πΏ
π€©9β€2π₯2πΏ2π©1
Droidspaces
This is just an announcement for people who use 69 different root-hiding modules and 1 billion root detectors to hide root. Root, then install 1 billion pieces of duct tape on top of it to hide what you did, just to use 1 root tool? If you know me, I'm stronglyβ¦
Guys,
I'm being honest,
I don't want to bring back the idea of hiding root into my own project.
It's such a pointless idea.
People are literally advising me to hide root. But why? Why would I add duct tape to our project?
It's not the point of containerization.
As I always say, if you want to use banking apps while using Droidspaces,
Either stop using Droidspaces OR your banking app.
This problem exists even in your chroot, Docker container, or LXC.
This is how Linux works.
As we are maturing, I don't want to add the poisonous Android-related idea of hiding root to our code.
If I add such things, our group fills with root detector screenshots, and it really pollutes the community.
Droidspaces is a power user's tool.
Not made for ordinary people who depend on banking apps.
I'm following LXC/Docker/FSF's roots, not the ideas of poisonous devs in the rooting community.
So, stop using Droidspaces if you need banking apps. Use PRoot or QEMU. They do not run as root. They won't give you scary warnings in your detector.
I'm being honest,
I don't want to bring back the idea of hiding root into my own project.
It's such a pointless idea.
People are literally advising me to hide root. But why? Why would I add duct tape to our project?
It's not the point of containerization.
As I always say, if you want to use banking apps while using Droidspaces,
Either stop using Droidspaces OR your banking app.
This problem exists even in your chroot, Docker container, or LXC.
This is how Linux works.
As we are maturing, I don't want to add the poisonous Android-related idea of hiding root to our code.
If I add such things, our group fills with root detector screenshots, and it really pollutes the community.
Droidspaces is a power user's tool.
Not made for ordinary people who depend on banking apps.
I'm following LXC/Docker/FSF's roots, not the ideas of poisonous devs in the rooting community.
So, stop using Droidspaces if you need banking apps. Use PRoot or QEMU. They do not run as root. They won't give you scary warnings in your detector.
β€28π₯6π4
This media is not supported in your browser
VIEW IN TELEGRAM
Proof of Concept: 1-click Termux:X11 support
Think of it like this:
1. You toggle Termux:X11 and add the
2. You start the app.
3. You open the Termux:X11 app.
4. Your desktop is right in front of your eyes πΏ
- 0 Termux usage
- 0 Command knowledge needed.
It just works.
This is still in the testing stages. Sometimes it works and sometimes it doesnβt due to SELinux. After some testing, we will merge it into the dev branch.
Think of it like this:
1. You toggle Termux:X11 and add the
DISPLAY=:0 environment variable.2. You start the app.
3. You open the Termux:X11 app.
4. Your desktop is right in front of your eyes πΏ
- 0 Termux usage
- 0 Command knowledge needed.
It just works.
This is still in the testing stages. Sometimes it works and sometimes it doesnβt due to SELinux. After some testing, we will merge it into the dev branch.
β€25π₯5
This media is not supported in your browser
VIEW IN TELEGRAM
Proof of Concept:
Automatic Desktop environment startup!
The dreams come true :)
Here's how it works:
1. Before the container even starts, Droidspaces does exactly what running
2. Before firing up the init, Droidspaces bind-mounts
3. Droidspaces execs the init.
4. Init executes XFCE!
Resulting in a seamless experience like this π₯
This is not a new thing , but it's a perfect execution :)
@Droidspaces
Automatic Desktop environment startup!
The dreams come true :)
Here's how it works:
1. Before the container even starts, Droidspaces does exactly what running
termux-x11 :0 does.2. Before firing up the init, Droidspaces bind-mounts
/data/data/com.termux/files/usr/tmp/.X11-unix/X0 to the container's /tmp/.X11-unix/X0.3. Droidspaces execs the init.
4. Init executes XFCE!
Resulting in a seamless experience like this π₯
This is not a new thing , but it's a perfect execution :)
@Droidspaces
β€10π₯7π1
This media is not supported in your browser
VIEW IN TELEGRAM
Just like a real Linux PC, internal reboot and poweroff are fully supported!
π₯22πΏ5
This media is not supported in your browser
VIEW IN TELEGRAM
Proof of Concept
Out-of-the-box VirGL support π₯
The flow:
> You enable Termux:X11 and VirGL from the app
> Start the container
> You open the Termux:X11 app
> The desktop environment appears with VirGL hardware acceleration
- No Termux setup required
- No manual commands
- Unkillable
@Droidspaces
Out-of-the-box VirGL support π₯
The flow:
> You enable Termux:X11 and VirGL from the app
> Start the container
> You open the Termux:X11 app
> The desktop environment appears with VirGL hardware acceleration
- No Termux setup required
- No manual commands
- Unkillable
@Droidspaces
β€10πΏ8π₯4
Droidspaces
Proof of Concept Out-of-the-box VirGL support π₯ The flow: > You enable Termux:X11 and VirGL from the app > Start the container > You open the Termux:X11 app > The desktop environment appears with VirGL hardware acceleration - No Termux setup required β¦
Testing:
https://t.me/DroidspacesCI/486?single
What is still needed:
1. Both the Termux and Termux:X11 apps must be installed.
2. Inside Termux, to use X11,
Command to install:
3. Inside Termux, to use the VirGL function,
Command to install:
4. After installation, to apply the SELinux rules, YOU MUST REBOOT - THIS IS MANDATORY.
Once these 4 requirements are completed, both the X11 and VirGL functions should work without even needing the Termux app to be opened.
The magic is that we are just executing
So, even if you force stop Termux, both the X11 and VirGL servers will still run in the background!
https://t.me/DroidspacesCI/486?single
What is still needed:
1. Both the Termux and Termux:X11 apps must be installed.
2. Inside Termux, to use X11,
termux-x11 must be installed.Command to install:
apt update && apt install x11-repo && apt install termux-x113. Inside Termux, to use the VirGL function,
virglrenderer-android must be installed.Command to install:
apt update && apt install x11-repo && apt install virglrenderer-android4. After installation, to apply the SELinux rules, YOU MUST REBOOT - THIS IS MANDATORY.
Once these 4 requirements are completed, both the X11 and VirGL functions should work without even needing the Termux app to be opened.
The magic is that we are just executing
termux-x11 and virglrenderer-android outside the Termux app, disguised as the Termux app, while being unkillable :)So, even if you force stop Termux, both the X11 and VirGL servers will still run in the background!
β€6π€―2
Added custom VirGL and Termux:X11 flags support
Install the latest CI:
https://t.me/DroidspacesCI/490?single
Notes:
Many misunderstood the new Termux:X11 and VirGL features, expecting them to auto-boot a desktop environment. They won't unless you add a systemd service for it.
Proper usage in the exact order:
1. Install the latest Droidspaces CI, Termux, and Termux:X11 apps.
2. Update the Droidspaces backend and reboot your phone.
3. Open Termux and run:
4. In Droidspaces, open your container config and toggle Termux:X11 and VirGL.
5. Start the container.
If successful, an X cursor will appear in the Termux:X11 app.
Note:
Droidspaces auto-injects the required environment variables. If using an alternative shell like ZSH, run:
Install the latest CI:
https://t.me/DroidspacesCI/490?single
Notes:
Many misunderstood the new Termux:X11 and VirGL features, expecting them to auto-boot a desktop environment. They won't unless you add a systemd service for it.
Proper usage in the exact order:
1. Install the latest Droidspaces CI, Termux, and Termux:X11 apps.
2. Update the Droidspaces backend and reboot your phone.
3. Open Termux and run:
apt update && apt install x11-repo && apt install termux-x11 virglrenderer-android4. In Droidspaces, open your container config and toggle Termux:X11 and VirGL.
5. Start the container.
If successful, an X cursor will appear in the Termux:X11 app.
Note:
Droidspaces auto-injects the required environment variables. If using an alternative shell like ZSH, run:
source /etc/profile.d/droidspaces_env.shβ€8
Built-in audio support is on-the-way ! π
β€15π₯8πΏ1