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
Do you care if the APK size increases if we pack the Termux:X11, PulseAudio, and virglrenderer-android binaries directly into the app?
The final result would be a Termux-free Termux:X11, PulseAudio, and VirGL experience at the cost of bloat.
The final result would be a Termux-free Termux:X11, PulseAudio, and VirGL experience at the cost of bloat.
Final Results
17%
Yes, I care. Don't add bloat
86%
Add them if it makes the experience better
Droidspaces
Do you care if the APK size increases if we pack the Termux:X11, PulseAudio, and virglrenderer-android binaries directly into the app?
The final result would be a Termux-free Termux:X11, PulseAudio, and VirGL experience at the cost of bloat.
The final result would be a Termux-free Termux:X11, PulseAudio, and VirGL experience at the cost of bloat.
Or, I'll just provide a unified shell script to install the required packages inside Termux πΏ
Paste the curl command -> Done.
Max lines of code additions: ~50
Me happy, you happy, no bloat.
It's so hard to maintain something that works for all 4 architectures equally π
Even the Droidspaces backend cannot be linked with those projects as it is a self-contained, statically linked binary.
Paste the curl command -> Done.
Max lines of code additions: ~50
Me happy, you happy, no bloat.
It's so hard to maintain something that works for all 4 architectures equally π
Even the Droidspaces backend cannot be linked with those projects as it is a self-contained, statically linked binary.
β€12π7πΏ2
Initial PulseAudio test has been started..!
This CI release has PulseAudio feature.
To use this feature, installing PulseAudio inside Termux is mandatory:
Also, you have to reboot after updating the backend to apply the SELinux rules.
After installing PulseAudio inside Termux, updating the backend in Droidspaces and rebooting, open the Droidspaces app, enable PulseAudio for your container, and start it.
Note: Installing PulseAudio on the container side is still mandatory. I recommend trying it on Ubuntu 24.04:
Then, run
This CI release has PulseAudio feature.
To use this feature, installing PulseAudio inside Termux is mandatory:
apt update && apt install pulseaudioAlso, you have to reboot after updating the backend to apply the SELinux rules.
After installing PulseAudio inside Termux, updating the backend in Droidspaces and rebooting, open the Droidspaces app, enable PulseAudio for your container, and start it.
Note: Installing PulseAudio on the container side is still mandatory. I recommend trying it on Ubuntu 24.04:
apt update && apt install -y pulseaudio-utils pavucontrol
export PULSE_SERVER=unix:/tmp/.pulse-socket
Then, run
pactl info for verification :)β€5π₯4
Droidspaces
Do you care if the APK size increases if we pack the Termux:X11, PulseAudio, and virglrenderer-android binaries directly into the app?
The final result would be a Termux-free Termux:X11, PulseAudio, and VirGL experience at the cost of bloat.
The final result would be a Termux-free Termux:X11, PulseAudio, and VirGL experience at the cost of bloat.
curl -fsSL https://github.com/ravindu644/Droidspaces-OSS/raw/refs/heads/dev/scripts/setup-termux.sh | bash
Run the above command inside Termux to configure it for Droidspaces. :)
What does it do?
1. Updates your Termux.
2. Installs the x11-repo package.
3. Installs virgl, termux-x11, and PulseAudio.
4. Patches the PulseAudio default.pa file to fix a deadlock that happens on some Android devices.
Edit: Always use the latest CI apks as they contain the latest fixes: @DroidspacesCI
π₯9
Do you know any reliable way to get audio working in containers?
Currently, the PulseAudio approach is very fragile. It sometimes works, and sometimes doesn't.
No denials, nothing.
The entire PulseAudio server gets deadlocked and unresponsive after ~5 minutes. Until then, audio works perfectly.
If we can't find a way to fix this issue, I'll remove the PulseAudio feature entirely, as we want reliability.
Currently, the PulseAudio approach is very fragile. It sometimes works, and sometimes doesn't.
No denials, nothing.
The entire PulseAudio server gets deadlocked and unresponsive after ~5 minutes. Until then, audio works perfectly.
If we can't find a way to fix this issue, I'll remove the PulseAudio feature entirely, as we want reliability.
A feature that doesn't exist is better than a broken implementation.
β€7π€―1
Droidspaces
Do you know any reliable way to get audio working in containers? Currently, the PulseAudio approach is very fragile. It sometimes works, and sometimes doesn't. No denials, nothing. The entire PulseAudio server gets deadlocked and unresponsive after ~5 minutes.β¦
I guess we fixed the PulseAudio deadlock bug. It's not even related to Droidspaces
Termux issues:
https://github.com/termux/termux-packages/issues/19861
https://github.com/termux/termux-packages/issues/19623
Try this CI: https://t.me/DroidspacesCI/504?single
It is required to run our setup script even if your Termux is already configured:
I worked almost 20 hours fixing an issue that doesn't even exist on our side.
I followed the fixes in these two issues, and it looks like it fixed the deadlock issue that only happens on some devices.
Termux issues:
https://github.com/termux/termux-packages/issues/19861
https://github.com/termux/termux-packages/issues/19623
Try this CI: https://t.me/DroidspacesCI/504?single
It is required to run our setup script even if your Termux is already configured:
curl -fsSL https://github.com/ravindu644/Droidspaces-OSS/raw/refs/heads/dev/scripts/setup-termux.sh | bash
I worked almost 20 hours fixing an issue that doesn't even exist on our side.
I followed the fixes in these two issues, and it looks like it fixed the deadlock issue that only happens on some devices.
β€15π₯3π«‘3
This media is not supported in your browser
VIEW IN TELEGRAM
SteamOS on Droidspaces with native performance wen ? (jk)
Video credit: https://t.me/DroidspacesDiscussion/50418
Video credit: https://t.me/DroidspacesDiscussion/50418
πΏ19β€1
I'll try to release Droidspaces v6.3.0 today.
It will be our most plug-and-play "it just works", zero-duct-tape Desktop experience ever!
What it means:
> You start your container
> The desktop environment automatically appears without you even touching anything or exporting any kind of environment variables.
It will be our most plug-and-play "it just works", zero-duct-tape Desktop experience ever!
What it means:
> You start your container
> The desktop environment automatically appears without you even touching anything or exporting any kind of environment variables.
β€28πΏ6