TGViewer
Droidspaces Droidspaces @droidspaces · 1.49K subscribers
Post #199 329
Droidspaces Photo
Currently, the daemon drops all connections from non-UID0 sockets for security. That means to communicate with the daemon, you must be root, even though theoretically root isn’t required for a client.

This design choice is intended to block malicious connections from managing or running arbitrary commands inside containers as malicious processes.

If your rooting method is compromised, droidspaces, along with all your modules and everything else under the sun, will be compromised too.

Since the daemon uses an abstract socket called @droidspaces, all apps are denied by SELinux anyway, even if I remove the checks. There’s no fix for that without patching SELinux to allow the "untrusted apps" domain to communicate with the socket. But:

We can’t allow untrusted apps to communicate with the daemon via SELinux either. Why? Because that would let any userspace app communicate with the droidspaces app and potentially with any socket in the system, which is extremely dangerous.

The daemon and client are baked into the same droidspaces binary. Also, the binary can directly execute commands if no daemon is found AND it has root. A 3-in-1 solution.

The app requires root anyway to install containers, etc., so even without strict UID checks, the app will partially work.

We can’t use droidspaces as a “command execution environment” for non-root processes to execute root commands needed for the app either. If a vulnerability in droidspaces is exploited, any non-root process could spawn a root shell.

The biggest concern is that the droidspaces binary can execute commands directly inside running containers using the run command. If any process could connect to the socket, it could enter container shells, execute commands, nuke containers, plant backdoors, etc.

This is a massive security risk.

So, until someone implements a kernelsu-like solution to “crown” the official droidspaces manager and block connections from everything else, I won’t implement such a feature.

Even if I did, it would overcomplicate the app’s code. Thanks to our 3-in-1 architecture, I didn’t have to touch any app code; the droidspaces binary acts as a client for the daemon if it detects the socket is alive.
  • 💩 1
More from @droidspaces
  1. Oct 16, 2026Who's on MSI Laptops on Linux that had MSI Center support on Windows? PS: To test a MSI Ce…
  2. Oct 14, 2026Droidspaces v7.0.0 has been released! 🔥 - feat: Anland Wayland display support..! - perf:…
  3. Oct 14, 2026Run "real SteamOS" on Droidspaces wen? [ Video credit ]
  4. Oct 14, 2026PS: We know Mali sucks; and with our duct tapes, KDE starts; but it isn't daily drivable.…
  5. Oct 14, 2026Here is a guide from all of our findings: How to get a container to detect a Mali GPU: htt…
  6. Oct 13, 2026🗿
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →