uz
Feedback
Droidspaces

Droidspaces

Kanalga Telegram’da o‘tish
1 399
Obunachilar
+424 soatlar
+507 kun
+14330 kun
Postlar arxiv
After the recent changes to the Droidspaces daemon and using custom SELinux policies to fix denials related to Droidspaces du
+1
After the recent changes to the Droidspaces daemon and using custom SELinux policies to fix denials related to Droidspaces during boot, I can finally confirm that Droidspaces is fully stable on Magisk and Apatch 🥳 Now, only GrapheneOS needs testing..

testing :) 1. Install 2. Enable daemon mode 3. Reboot the device 4. Tell me the results :)

For Magisk/APatch issues, enabling the toggle is enough. For GrapheneOS users, however, they might need to integrate droidspaces as an init service to fix certain syscalls that get blocked even when running as root.

Well, Developers can now integrate the droidspaces daemon at the init.rc level. Theoretically, you can run droidspaces without root if it is integrated into the Android init system. However, since it is dangerous, I have artificially limited the ability for non-root users on Android to connect with the droidspaces socket. On Linux, though, users can run droidspaces commands without sudo!

New feature 👀
+2
New feature 👀

Droidspaces v5.8.1 https://github.com/ravindu644/Droidspaces-OSS/releases/tag/v5.8.1 Fixes:
- fix(runtime): prevent metadata overwrite during container scan
- fix: restrict Termux X11 conflict check to 'start' or 'restart' commands
- fix: skip Termux force-stop if unified /tmp bridge is already mounted
@Droidspaces

found 2 hidden bugs that were unnoticed for months. fixing them right now💀 1. https://t.me/DroidspacesDiscussion/4279 2. https://t.me/DroidspacesDiscussion/4257

Droidspaces v5.8.0 has been released..! https://github.com/ravindu644/Droidspaces-OSS/releases/tag/v5.8.0 What's new?
- mount: slave-bind host /dev/block in --hw-access mode (fixes external storage not visible inside the container)
- hardware: mirror missing GPU nodes into devtmpfs on hw_access boot
- ds_dhcp: fix misaligned iphdr access in send_reply
- net: use kernel ip rule as primary upstream detection on Android (100x better upstream detection on wildcards 🥳)
- app: removed global uptime from the 'System Statistics' card and using per-container uptime in the container info menu
- Modify service.sh to update module description
- fix: Introduce Termux environment detection and prevent --termux-x11 killing termux, when running the droidspaces ... command within Termux
- app+backend: Decouple Hardware Access and Termux-X11 features
- app: implement Material You Accent color picker
- fix(backend): sort bind mounts alphabetically to prevent shadowing
- feat: implement port range forwarding
- fix: serialize DHCP "started" log via cond var to eliminate race with port-forward and boot logs 
- fix: persist port-forward state file to guarantee full rule cleanup on stop 
TLDR:
- 100x better upstream detection. Now you can hop between SIM1/SIM2 mobile data + WiFi without dropping any requests.
- Added Docker-like port range forwarding support.
- Mirrors GPU nodes from host to container if the container’s devtmpfs doesn’t have the detected nodes
@Droidspaces

Why not host a Gitea Actions runner on a phone? ✨🗿
+1
Why not host a Gitea Actions runner on a phone? ✨🗿

Well, why not? 😅 The uptime got messed up when I was setting up HTTPS :) Even this is more powerful than the latest RPI 5 in
+2
Well, why not? 😅 The uptime got messed up when I was setting up HTTPS :) Even this is more powerful than the latest RPI 5 in benchmarks. The only caveat is this phone isn't using the latest Linux kernel, as that's the nature of old Android :(

Hosted my own Git server and VS Code server, only accessible to me via Tailscale :) Everything works with just one click. No
+5
Hosted my own Git server and VS Code server, only accessible to me via Tailscale :) Everything works with just one click. No trial and error. So, my S10 officially runs: - Tailscale - Samba - Jellyfin - Fail2ban - UFW - Docker - MySQL server - Getea - VS Code server - OpenSSH server All under 3GB of RAM usage (including Android) and under 5% idle CPU usage. Nothing is impossible :)

Initial guide: https://github.com/ravindu644/Droidspaces-OSS/blob/main/Documentation/Cool-things-you-can-do.md Will add hardware hacking as well in near-future :)

:)
:)

Added an official guide on how to compile a kernel with Droidspaces support for any GKI device: https://github.com/ravindu644/Droidspaces-OSS/blob/main/Documentation/Kernel-Configuration.md You can now compile the kernel just like a legacy non-GKI kernel and flash only the boot.img or compiled kernel Image, without worrying about ABI or LKM compatibility 🥳 @Droidspaces

This is also one of my side projects, came way before Droidspaces. To use ubuntu-chroot, you only need root access. No kernel
+5
This is also one of my side projects, came way before Droidspaces. To use ubuntu-chroot, you only need root access. No kernel configuration needed. It just works. It even supports dynamic namespace isolation, hardware access, rootfs.img support, post-exec scripts as a replacement for init, running at boot even the device is locked and encrypted, etc. Even though this is more primitive than the Droidspaces project, it still provides basic Linux on Android. v4.4 was released with fixes related to BusyBox. From now on, we specifically use our custom BusyBox to perform certain shell operations. https://github.com/ravindu644/Ubuntu-Chroot/releases/tag/v4.4

Fixed 2 issues with the hardware access feature: 1. On Android, block devices like USB storage and SD cards appear under /dev
+1
Fixed 2 issues with the hardware access feature: 1. On Android, block devices like USB storage and SD cards appear under /dev/block, not /dev, unlike standard Linux. This meant attached storage never showed up in the container's devtmpfs, even in hw access mode. Fixed by bind mounting the host's /dev/block to the container's /dev/block. 2. On some devices, GPU nodes were missing in freshly mounted devtmpfs inside containers. Previously, users had to manually bind mount GPU nodes. Now, if a GPU node exists on the host but is missing in the container, we create it in the container using mknod(), no bind mount needed :) This also fixes binder, hwbinder, and vndbinder missing issues, and resolves the GitHub issue: https://github.com/ravindu644/Droidspaces-OSS/issues/19

Set up UFW and Fail2Ban properly, and it actually works! But had to enable some kernel configs to pull this off :( Everything
+1
Set up UFW and Fail2Ban properly, and it actually works! But had to enable some kernel configs to pull this off :( Everything behaves like a real Linux server...

Droidspaces v5.7.1 has been released..! https://github.com/ravindu644/Droidspaces-OSS/releases/tag/v5.7.1 What's changed?
- Fixed issues where runit caused crashes on Android because it modified kernel sysctl parameters, leading to system crashes. Resolved by selectively masking the entire /proc/sys.
- Fixed issues where Gentoo + OpenRC could not obtain an IP from the DHCP server.
- Fixed issues where Devuan received an incorrect IP from the DHCP server.
- Fixed shutdown issues in Void Linux.
- Repaired sysfs symlinks for OpenRC/Gentoo network detection.
- Rewrote firmware path management for Android.
@Droidspaces

Test APK from the latest CI. Fixes strange DHCP issues on Void Linux and Devuan Linux, resolves runit boot failures, and other related problems. Please test it and let us know if you cannot access the Internet in the container when using NAT mode.

--hw-access demonstration. I'm executing adb/fastboot/heimdall commands remotely via Tailscale+SSH. My other phone is connect
+1
--hw-access demonstration. I'm executing adb/fastboot/heimdall commands remotely via Tailscale+SSH. My other phone is connected to the S10 using a Type-C to Type-C cable..! That means you can use Droidspaces to do stuff even remotely with full hardware access..! There's a lot you can do. You can even manipulate connected devices remotely using ConfigFS/USB Gadget, acting like a bad keyboard/mouse, remotely scanning networks and doing ඞ stuff, etc. Limitless possibilities! 😈