What's Changed
- docs: refresh the Home screenshot for v7.0.0 (37e8b45)
- droidspaces: bump v7.0.0 (64f7411)
- app: add a SteamOS distro icon (53524ba)
- app: make Broccoli the default theme palette (a93e618)
- Translated using Weblate (#351) (66043ca)
- docs: add Galaxy S10+ (Snapdragon, SM-G9750) to the non-GKI supported devices (#352) (38d6eac)
- docs: Add OnePlus 9 (lemonade, lemonadep) to the GKI supported devices (#353) (e81c973)
- app: fix: keep the terminal's user fetch alive across effect restarts (e2dc374)
- fix: keep the config's name when -n uses its folder spelling (73822e8)
- app: fix: let hwservicemanager hand HIDL services to containers (50e483a)
- fix: bind binderfs nodes in GPU mode instead of mknod copies (a91e5a4)
- Translated using Weblate (#348) (51f16c2)
- fix: leave the Pids directory empty after a stop (c2d27d2)
- docs: say that NAT, not host, is the default network mode (e50c4ec)
- fix: make stop wait for the monitor's route monitor before pulling shared rules (b5cfd06)
- fix: log each container of a multi-stop under its own name (6ad78df)
- net: log interface removals only when a link was actually deleted (f42ff66)
- app: probe the init system and users in one container entry (3df5f3e)
- docs: add a security policy (8f10124)
- fix: Update the Anland (Wayland) usage guide, correct translations and links (#350) (0dfea9e)
- app: fix: say that Anland Display needs the 5.x app (1bcdc3e)
- net: accept the all-uid default-network rule of Android 15+ netd (0b3d800)
- fix: stop the helper daemons a restarted container no longer wants (9fa5315)
- app: fix: gate the Anland launch on the booted socket, not the saved config (5bf12dd)
- app: fix: make the Anland and Termux:X11 switches exclude each other both ways (a0dde2c)
- app: bring the Anland pill back to the Panel card (9ed375a)
- fix: take USER_HZ from the auxv, musl hardcodes 100 (14a259b)
- fix: record the Anland daemon under .apid and .asock (b48a01d)
- fix: drop an Anland client that stalls the broker (46900e9)
- fix(security): authenticate the Anland broker's two roles (47c445c)
- refactor: bring the vendored Anland broker under the tree's rules (dc3431a)
- refactor: spawn the Anland daemon through ds_spawn_daemon (262c94c)
- fix(security): keep the Anland socket in the root-owned workspace (e22bc02)
- app: move the Anland launch to a card on the container details page (f683437)
- fix: give --anland its own option value (bee50dd)
- docs: fit the Anland guide into the rewritten documentation (746a9e1)
- Add Anland Guide (#230) (783fb49)
- feat: integrate Anland Wayland display support (c57056b)
- docs: give the documentation one reading order (db4558e)
- docs: mark every zh-CN page as lagging the English version (174f04e)
- docs: drop the navigation block and rules from Networking From Zero (e1f4f48)
- docs: restructure the kernel configuration guide (db57cf6)
- docs: rewrite the recipes, uninstallation and NixOS pages (e02b184)
- docs: rewrite troubleshooting as symptom, cause, fix (672cb79)
- docs: tighten the display, audio and desktop guide (cb0165c)
- docs: rewrite the app guide and the CLI reference from the real surface (f47e3b4)
- docs: turn Features.md into a container settings reference (f9c9de4)
- docs: rewrite the installation guides from the real first-launch flow (a5ecf5d)
- docs: rewrite the README around what a new user needs (b3ebffb)
- app: fix: forget all app-side data when a container is uninstalled (1a78bbe)
- app: preselect the last opened user in the terminal picker (84c8e8e)
- app: fix: put the terminal keyboard away before the user picker opens (bb54344)
- app: refresh terminal users on each pick and open root directly when alone (5aba875)
- Translated using Weblate (#347) (a172ad8)
- app: add the Fedora accent palette (0d3d29d)
- app: add the One UI accent palette (9cd5d50)
- app: add the Broccoli accent palette (e0a94c7)
- app: add the Sand accent palette (b666fb0)
- app: fix: spin the refresh button in the network interface sheets (24a5a99)
- app: fix: keep tab screen snackbars and the FAB above the tab bar (fdc1c99)
- app: fix: stop dialogs bouncing when the keyboard opens (feb9e5c)
- app: refactor: drop two unused strings (4389e45)
- app: fix: grey out the Termux-backed toggles when the apps are missing (72bba8e)
- post_extract_fixes: say which modes the OpenRC dhcpcd guard skips (c891c81)
- app: fix: give View logs its own icon (55f7967)
- app: fix: clear text field focus on a tap outside it on every screen (cb427c7)
- app: use the Droidspaces mark for the containers icon (cf859c1)
- app: rebuild the container config screen as grouped settings with sub-pages (8898978)
- app: fix: keep dialog buttons above the keyboard (d200452)
- app: fix: clear text field focus on a tap inside a dialog (56c1b51)
- app: fix: hold the dropdown's check still while the menu closes (c02aa60)
- app: fix: open menus with the standard motion (67309f8)
- app: fix: keep a dropdown unfocused after tapping it shut (48b0d62)
- docs: document macvlan mode (6c9bd10)
- post_extract_fixes: run the rootfs DHCP client in every mode with its own network (f0be431)
- app: add macvlan network mode (3e8bb2d)
- app: fix: give the network settings one header and helper text style (19569ef)
- app: refactor: share the list entry cards and the interface picker (96a8968)
- net: add a macvlan network mode (d4e4812)
- docs: bring the gateway sections of Networking-From-Zero up to date (d1d7478)
- net: wake the route monitor on IPv6 route and rule changes (13d9bd4)
- net: de-dupe gateway teardown on cable and bridge together (aa76fbb)
- net: count a gateway client as wired only when its eth0 is there (50b97d8)
- net: tear down a gateway's LAN cables in any isolated mode (0d270fa)
- net: advertise only IPv4 --dns servers in the DHCP lease (ca9d308)
- net: let bridgeless NAT containers reach each other (d4bbdc2)
- net: correct comments that no longer describe the code (327fbac)
- refactor: delete ds_nl_flush_stale_veths, which nothing calls (eb819ee)
- app: offer to carry environment variables in an export (bcab71d)
- app: animate container cards in and out, drop ghost Panel cards (f9a9457)
- app: apply a rootfs config whole and warn before the config page (2e7f5cc)
- app: install and export tarballs in place instead of through cacheDir (be5c0e4)
- app: fix: read rootfs recommendations from a prefix, not a full copy (0ec2106)
- app: preserve container configuration in rootfs exports and imports (#346) (ff892de)
- app: fix: tint on-accent colours in the built-in palettes (f458ff4)
- app: redesign the setup flow with Material 3 Expressive (303b55e)
- app: fix: opaque primaryContainer in the AMOLED palette schemes (f705023)
- app: land the installer result in an Expressive shape container (2dda3fc)
- app: ignore the Kotlin compiler cache (f093d8e)
- app: refactor: use material3's own LoadingIndicator (56e2562)
- app: generate the locale list and locales_config.xml under build/ (9ffcaeb)
- app: derive versionCode from the git commit count (7308fd5)
- app: fix: dismiss the download notification when installing from the sheet (5267066)
- app: fold the Containers FABs into a Material 3 Expressive FAB menu (626d537)
- app: show rootfs download progress on the Expressive wavy indicator (34184ba)
- app: move to Kotlin 2.2, AGP 8.11 and the Compose 1.11 line (06f8ca1)
- mount: attach rootfs images with direct I/O (b765b97)
- net: pin the NAT and gateway bridges' MAC so a stopping container cannot change it (9cd0970)
- net: create the gateway's LAN cable with its end born inside the gateway (965179f)
- net: never treat the host's own network namespace as a container's (95640c4)
- socketd: require the network namespace for gateway mode too (812e9f1)
- check: answer the network namespace probe from the ns file, not by creating one (ea12f2d)
- net: insert and remove the MSS clamp through the raw socket (30ea194)
- pid: drop the UUID collision scan, which could never find a collision (0fb62f0)
- monitor: drop the first-boot stale container check (b8713a1)
- monitor: refresh the virtual /proc files once per heartbeat, quietly at shutdown (6de3644)
- docs: describe when an image start runs e2fsck, and the probe's per-boot stamp (f30f744)
- net: skip the iptables-save sweep for a container booted without forwards (2544c7a)
- mount: settle and force an unmount only when MNT_DETACH left it mounted (7885a4c)
- fix: poll for init's exit every 20 ms during a graceful stop (628b14b)
- net: create the NAT veth peer inside the container's netns (a94a583)
- net: remember the capability probe's full pass for the boot (0a2b3cd)
- mount: run e2fsck only when the superblock says it has something to do (b70242a)
- net: ask the table blob whether the MSS clamp is in, not iptables -C (16eec9b)
- net: load the netfilter modules only when a table is missing (c85968f)
- mount: drop the sync() and 200 ms settle sleep before mounting an image (7d166ae)
- fix: initialise the start sync pipe before any early exit can reach cleanup (89eb4a9)
- fix: reap the Android tweaks helper on the start error path too (501c301)
- fix: apply the Android tweaks while the container boots, not before the fork (a8b7dc7)
- app: show container RAM usage with a unit per side, fastfetch style (15ba5f5)
- fix: ask the cgroup2 root before /proc/cgroups when probing a controller (899085a)
- fix: keep a container's services inside its cgroup without a cgroup namespace (b370d20)
- docs: document on-device testing and DS_NO_PROXY for agents (d9da1d2)
- net: give NAT containers internet on an IPv6-only uplink (2ac9f5a)
- app: fall back to a root read of the boot id when the app read is denied (6a48049)
- Translated using Weblate (Arabic) (#344) (423b87c)
- app: redesign the backend installer around the M3 Expressive loader (71369aa)
- app: tell the user when the kernel cannot run Droidspaces (206a566)
- app: gate the config form on check --format capabilities (cd9ea9d)
- feat: add check --format for machine-readable capability probes (bcc2314)
- docs: document --x11 and the enable_x11 key (e446c17)
- app: write enable_x11 and read the old key as a fallback (a884275)
- refactor: rename --termux-x11 to --x11 and gate desktop X11 behind it (7b12749)
- daemon: forward client stdin to run with --stdin (1ab94e8)
- fix: let run survive ^C and report 130 like lxc-attach (a91e686)
- fix: size the enter pty before the shell starts (420b830)
- fix: return the command's real exit status from run and enter (1b2e4b9)
- refactor: trim dead code around enter and run (d8fa53d)
- fix: accept -- before the command in run (fb8a25d)
- net: stop leaking duplicate policy rules on kernels before 4.12 (33b93c4)
- post_extract_fixes: stop OpenWrt from locking apps out of the host's debugfs (92cee27)
- Add nomount based mount system recommendation to strings.xml (#343) (3a7b5e0)
- fix: report IPv6 NAT support truthfully and fail closed without MASQUERADE (33369d8)
- Translated using Weblate (Indonesian) (#342) (a2319c2)
- docs: CPU and process limits on GKI need every module rebuilt (ac38c11)
- app: warn that CPU and process limit options break the GKI kABI (b21ec4e)
- docs: explain a limit that is missing despite its kernel option (1339f38)
- fix: name cgroup_disable= when a resource limit is unavailable (321087d)
- app: fix: do not offer a limit whose controller is disabled at boot (7bb0fdf)
- refactor: group the optional checks by what they are for (6ba80ca)
- app: show the hostname on the container card without its label (4c32194)
- app: list CONFIG_CGROUP_CPUACCT in the kernel requirements (36a45b4)
- docs: list CONFIG_CGROUP_CPUACCT with the resource limit options (defbd4b)
- feat: check for CPU usage accounting, drop the plain IPv6 line (95be742)
- feat: give each container its own load average (96d7566)
- fix: give enter and run sessions the container's CPU set (093d6bc)
- fix: show the container's own CPU use in /proc/stat under a CPU limit (88ccf16)
- fix: report CPU use under a limit on kernels before 4.15 (8c57121)
- app: move Resource Limits after Integration & Hardware (b842178)
- app: fix: keep a limit's value on screen while its card closes (9bac37d)
- app: fix: stop the card below sliding under an expanding container card (9f08924)
- fix: name a gateway client's cable after the container, not its PID (916b94a)
- fix: wire a gateway client that boots at the same time as its gateway (e6f6724)
- fix: do not replace a working gateway client cable on gateway restart (1bdf98d)
- fix: let a forced-v1 container use a controller that cgroup v2 holds (bda64bd)
- docs: note that sysinfo() callers see host memory and load (13d7613)
- fix: refuse a PID limit the runtime cannot boot under (3a509bf)
- app: fix: use the memory icon for the memory limit (35e5163)
- fix: keep the monitor out of the container's cgroup and recreate it every boot (a9c3ce5)
- docs: document resource limits (aa57c8e)
- app: add resource limits to containers (551d569)
- feat: make resource limits work on Android and on cgroup v1 (6b06342)
- fix: attach enter/run beside init.scope, not inside it (eaf1fa6)
- fix: report a container as started only once init has exec'd (bd990de)
- net: keep the host off the gateway LAN over IPv6 (ef9a940)
- feat: report the container's IPv6 address in status output (efa274b)
- docs: update kernel version support range in README (b77842d)
- locales: add arabic config (2da0d77)
- fix: tear a container down with the config it booted with (dc1ad52)
- net: delete the previous boot cycle's veth on an internal reboot (f1c191c)
- net: treat an existing probe interface as proof of NAT support (f5ecb98)
- refactor: serialize container lifecycle with a per-container flock (b7634e7)
- fix: keep SIGCHLD away from the monitor's helper threads (c75e7b6)
- docs: NAT and Gateway modes are dual-stack (4fd6151)
- app: remove the forced Disable IPv6 toggle (c87d98c)
- net: add IPv6 to NAT mode with NAT66 and router advertisements (dcf13f0)
- Translated using Weblate (Chinese (Traditional Han script)) (#334) (434d795)
- Update Simplify Chinese translation of document (#335) (8a03135)
- mount: punch /proc/sys/user through the jail as an rw hole (ea9b68d)
- mount: expose proc user sysctls with sandboxing (#333) (2330246)
- app: fix: replace system DownloadManager with an in-app rootfs downloader (ff39a37)
- README: nuked redundant website URL (c83ee66)
- README: link the website and its documentation (#330) (36f4d55)
- docs: community-supported-devices: plain sentences, sentence-case headings, lists that render (4974ea8)
- docs: Usage-Android-App: plain sentences, sentence-case headings, lists that render (6e08c2e)
- docs: Uninstallation: plain sentences, sentence-case headings, lists that render (6df5940)
- docs: Troubleshooting: plain sentences, sentence-case headings, lists that render (ba490c5)
- docs: Nix-NixOS: plain sentences, sentence-case headings, lists that render (f3bd732)
- docs: Networking-From-Zero: plain sentences, sentence-case headings, lists that render (6e37d68)
- docs: Linux-CLI: plain sentences, sentence-case headings, lists that render (9c4ebce)
- docs: Kernel-Configuration: plain sentences, sentence-case headings, lists that render (f4f204b)
- docs: Installation-Linux: plain sentences, sentence-case headings, lists that render (ffdf10b)
- docs: Installation-Android: plain sentences, sentence-case headings, lists that render (e68106f)
- docs: Graphics-and-Audio: plain sentences, sentence-case headings, lists that render (b1045c9)
- docs: Features: plain sentences, sentence-case headings, lists that render (6d6cb16)
- docs: Cool-things-you-can-do: plain sentences, sentence-case headings, lists that render (c8bfc98)
- Translated using Weblate (Chinese (Traditional Han script)) (#325) (b24eec0)
- docs: add moto g(50) 5G (saipan / XT2149-1, MT6833) to the non-GKI supported devices (#327) (2f665d4)
Automated Release by Droidspaces CI