edf#1
Merged
Merged
Conversation
…device and organization (#222) * Update community-supported devices list This commit adds Motorola Moto G Stylus 5G (2022) [milanf/XT2215] to the list of supported devices. Additionally, it reorganizes the table to be sorted by kernel version instead of whenever the device was added to the list, improving readability and maintenance. Tests performed: None (Documentation update) * Group devices by kernel version in docs Add kernel-version group headers to Documentation/community-supported-devices.md (5.4, 5.10, 5.15, 6.1, 6.6, 6.12) to improve readability and organization of the device compatibility table. Minor table formatting adjustments were made for a few device rows to align them under the new sections.
Added translation using Weblate (Tamil) Translated using Weblate (Chinese (Traditional Han script)) Currently translated at 100.0% (502 of 502 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (502 of 502 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (502 of 502 strings) Translated using Weblate (German) Currently translated at 97.6% (490 of 502 strings) Translate-URL: https://hosted.weblate.org/projects/droidspaces/strings/de/ Translate-URL: https://hosted.weblate.org/projects/droidspaces/strings/zh_Hans/ Translate-URL: https://hosted.weblate.org/projects/droidspaces/strings/zh_Hant/ Translation: Droidspaces/Strings Co-authored-by: Jung Chi Wang <snowwolf725@gmail.com> Co-authored-by: MonkiFantasy <execvp@qq.com> Co-authored-by: Sandmann79 <sandmann79@gmx.net> Co-authored-by: தமிழ்நேரம் <tamilneram247@gmail.com>
Updated by "Remove blank strings" add-on in Weblate. Update translation files Updated by "Remove blank strings" add-on in Weblate. Translated using Weblate (Tamil) Currently translated at 100.0% (502 of 502 strings) Translated using Weblate (Tamil) Currently translated at 100.0% (502 of 502 strings) Translated using Weblate (Tamil) Currently translated at 100.0% (3 of 3 strings) Translated using Weblate (Pangasinan (pag_PH)) Currently translated at 45.6% (229 of 502 strings) Translated using Weblate (Pangasinan (pag_PH)) Currently translated at 45.6% (229 of 502 strings) Translated using Weblate (Iloko (ilo_PH)) Currently translated at 45.6% (229 of 502 strings) Translated using Weblate (Iloko (ilo_PH)) Currently translated at 45.6% (229 of 502 strings) Translated using Weblate (Filipino) Currently translated at 45.6% (229 of 502 strings) Translated using Weblate (Filipino) Currently translated at 45.6% (229 of 502 strings) Translated using Weblate (Cebuano (ceb_PH)) Currently translated at 45.6% (229 of 502 strings) Translated using Weblate (Cebuano (ceb_PH)) Currently translated at 45.6% (229 of 502 strings) Translated using Weblate (cbk_PH (generated) (cbk_PH)) Currently translated at 45.6% (229 of 502 strings) Translated using Weblate (cbk_PH (generated) (cbk_PH)) Currently translated at 45.6% (229 of 502 strings) Translated using Weblate (Portuguese) Currently translated at 49.4% (248 of 502 strings) Translated using Weblate (Portuguese) Currently translated at 49.4% (248 of 502 strings) Translated using Weblate (Chinese (Traditional Han script)) Currently translated at 100.0% (502 of 502 strings) Translated using Weblate (Chinese (Traditional Han script)) Currently translated at 100.0% (502 of 502 strings) Translated using Weblate (Italian) Currently translated at 86.4% (434 of 502 strings) Translated using Weblate (Italian) Currently translated at 86.4% (434 of 502 strings) Translated using Weblate (Indonesian) Currently translated at 99.4% (499 of 502 strings) Translated using Weblate (Indonesian) Currently translated at 99.4% (499 of 502 strings) Translated using Weblate (Indonesian) Currently translated at 66.6% (2 of 3 strings) Translated using Weblate (Japanese) Currently translated at 82.2% (413 of 502 strings) Translated using Weblate (Japanese) Currently translated at 82.2% (413 of 502 strings) Translated using Weblate (Japanese) Currently translated at 66.6% (2 of 3 strings) Translated using Weblate (Sinhala) Currently translated at 33.3% (1 of 3 strings) Translated using Weblate (Khmer (Central)) Currently translated at 89.8% (451 of 502 strings) Translated using Weblate (Khmer (Central)) Currently translated at 89.8% (451 of 502 strings) Translated using Weblate (Romanian) Currently translated at 72.9% (366 of 502 strings) Translated using Weblate (Romanian) Currently translated at 72.9% (366 of 502 strings) Translated using Weblate (Romanian) Currently translated at 66.6% (2 of 3 strings) Translated using Weblate (Sinhala) Currently translated at 62.7% (315 of 502 strings) Translated using Weblate (Sinhala) Currently translated at 62.7% (315 of 502 strings) Translated using Weblate (Turkish) Currently translated at 62.3% (313 of 502 strings) Translated using Weblate (Turkish) Currently translated at 62.3% (313 of 502 strings) Translated using Weblate (Turkish) Currently translated at 62.3% (313 of 502 strings) Translated using Weblate (Turkish) Currently translated at 33.3% (1 of 3 strings) Translated using Weblate (Russian) Currently translated at 33.3% (1 of 3 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 33.3% (1 of 3 strings) Translated using Weblate (Hindi) Currently translated at 33.3% (1 of 3 strings) Translated using Weblate (French) Currently translated at 33.3% (1 of 3 strings) Translated using Weblate (Spanish) Currently translated at 33.3% (1 of 3 strings) Translated using Weblate (Russian) Currently translated at 45.0% (226 of 502 strings) Translated using Weblate (Russian) Currently translated at 45.0% (226 of 502 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 45.0% (226 of 502 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 45.0% (226 of 502 strings) Translated using Weblate (Hindi) Currently translated at 46.8% (235 of 502 strings) Translated using Weblate (Hindi) Currently translated at 46.8% (235 of 502 strings) Translated using Weblate (French) Currently translated at 45.0% (226 of 502 strings) Translated using Weblate (French) Currently translated at 45.0% (226 of 502 strings) Translated using Weblate (Spanish) Currently translated at 45.0% (226 of 502 strings) Translated using Weblate (Spanish) Currently translated at 45.0% (226 of 502 strings) Translated using Weblate (German) Currently translated at 97.6% (490 of 502 strings) Translated using Weblate (German) Currently translated at 97.6% (490 of 502 strings) Translate-URL: https://hosted.weblate.org/projects/droidspaces/plurals/ Translate-URL: https://hosted.weblate.org/projects/droidspaces/plurals/es/ Translate-URL: https://hosted.weblate.org/projects/droidspaces/plurals/fr/ Translate-URL: https://hosted.weblate.org/projects/droidspaces/plurals/hi/ Translate-URL: https://hosted.weblate.org/projects/droidspaces/plurals/id/ Translate-URL: https://hosted.weblate.org/projects/droidspaces/plurals/ja/ Translate-URL: https://hosted.weblate.org/projects/droidspaces/plurals/pt_BR/ Translate-URL: https://hosted.weblate.org/projects/droidspaces/plurals/ro/ Translate-URL: https://hosted.weblate.org/projects/droidspaces/plurals/ru/ Translate-URL: https://hosted.weblate.org/projects/droidspaces/plurals/si/ Translate-URL: https://hosted.weblate.org/projects/droidspaces/plurals/ta/ Translate-URL: https://hosted.weblate.org/projects/droidspaces/plurals/tr/ Translate-URL: https://hosted.weblate.org/projects/droidspaces/strings/ Translate-URL: https://hosted.weblate.org/projects/droidspaces/strings/cbk_PH/ Translate-URL: https://hosted.weblate.org/projects/droidspaces/strings/ceb_PH/ Translate-URL: https://hosted.weblate.org/projects/droidspaces/strings/de/ Translate-URL: https://hosted.weblate.org/projects/droidspaces/strings/es/ Translate-URL: https://hosted.weblate.org/projects/droidspaces/strings/fil/ Translate-URL: https://hosted.weblate.org/projects/droidspaces/strings/fr/ Translate-URL: https://hosted.weblate.org/projects/droidspaces/strings/hi/ Translate-URL: https://hosted.weblate.org/projects/droidspaces/strings/id/ Translate-URL: https://hosted.weblate.org/projects/droidspaces/strings/ilo_PH/ Translate-URL: https://hosted.weblate.org/projects/droidspaces/strings/it/ Translate-URL: https://hosted.weblate.org/projects/droidspaces/strings/ja/ Translate-URL: https://hosted.weblate.org/projects/droidspaces/strings/km/ Translate-URL: https://hosted.weblate.org/projects/droidspaces/strings/pag_PH/ Translate-URL: https://hosted.weblate.org/projects/droidspaces/strings/pt/ Translate-URL: https://hosted.weblate.org/projects/droidspaces/strings/pt_BR/ Translate-URL: https://hosted.weblate.org/projects/droidspaces/strings/ro/ Translate-URL: https://hosted.weblate.org/projects/droidspaces/strings/ru/ Translate-URL: https://hosted.weblate.org/projects/droidspaces/strings/si/ Translate-URL: https://hosted.weblate.org/projects/droidspaces/strings/ta/ Translate-URL: https://hosted.weblate.org/projects/droidspaces/strings/tr/ Translate-URL: https://hosted.weblate.org/projects/droidspaces/strings/zh_Hant/ Translation: Droidspaces/Plurals Translation: Droidspaces/Strings Co-authored-by: Ravindu Deshan <Droidcasts@protonmail.com> Co-authored-by: Yusuf <ersemyus23@gmail.com> Co-authored-by: தமிழ்நேரம் <tamilneram247@gmail.com>
A delegated-LAN (gateway-mode) client loses its router whenever its gateway container reboots: the gateway's netns dies and takes the gateway-side veth with it, so the client's app veth survives on the bridge but the segment has no router. Clients also could not be wired at all until their gateway happened to be up. Make the gateway own the wiring, end to end: - gateway_wire_client() does the whole client wiring from the host side - bridge + gateway uplink, the app veth, a stable MAC, and the in-netns eth0 rename/up - so it behaves identically whether the client is just starting or already running. The gateway-mode child only brings up lo. - On every boot cycle the gateway container's monitor calls ds_net_rewire_gateway_clients(), which scans the running containers and runs gateway_wire_client() for each one that delegates to it. That re-establishes the gateway-side cable and every client's eth0 in the gateway's current netns, with no client restart. - A client started while its gateway is down now wires nothing and defers entirely to the gateway. This also closes a race: the client can no longer bake in gateway/LAN settings that the user edits before the gateway starts - the gateway wires each client from its current config. Supporting fixes: - Drop NLM_F_ACK on RTM_GETLINK: a successful GETLINK already replies with RTM_NEWLINK, so the extra ACK left a stray datagram in the socket buffer that desynced the next request's reply (ds_nl_link_exists false positives). Keep reading until our sequence matches. - Give gateway clients distinct veth prefixes (ds-c/ds-q) so the NAT last-container refcount cannot miscount them as live NAT containers. - Pin a stable, segment-derived MAC on the gateway-side cable and move+rename it into the gateway atomically, so OpenWrt's netifd sees one persistent eth1 instead of a churning random-MAC device. Signed-off-by: ravindu644 <droidcasts@protonmail.com>
Drop -f from e2fsck: it now exits fast on a clean image and only runs a full repair when the fs is actually marked unclean. Signed-off-by: ravindu644 <droidcasts@protonmail.com>
Optional manual override for NAT mode. When --upstream is set, the WAN is forced through the listed interface(s) and automatic uplink detection is disabled entirely - it never hops to whatever interface netd marks as the active default network. Within the pinned list it does still fail over in priority (list) order: the route monitor re-resolves on every link/route change and selects the first listed interface that is up and has a default route. So a pin like "wlan0,rmnet*" prefers Wi-Fi and falls back to mobile data when Wi-Fi drops - the hop stays inside the user's chosen set, never outside it. Literals and wildcards are both supported (use rmnet* for mobile data, whose interface number is not stable across reconnects). If no pinned interface is up at start, or the active one disappears mid-run, the FROM rule is removed (so traffic can't leak onto a recycled table) and reinstalled automatically when one returns. Unset = today's automatic detection, unchanged. The CSV parser is shared between the CLI and config loader; the app restores the upstream-interface picker as optional with a pinning hint (string keys renamed to upstream_interface_title/_hint across locales). Signed-off-by: ravindu644 <droidcasts@protonmail.com>
Signed-off-by: ravindu644 <droidcasts@protonmail.com>
Signed-off-by: ravindu644 <droidcasts@protonmail.com>
Signed-off-by: ravindu644 <droidcasts@protonmail.com>
Signed-off-by: ravindu644 <droidcasts@protonmail.com>
…dge kernels Signed-off-by: ravindu644 <droidcasts@protonmail.com>
Signed-off-by: ravindu644 <droidcasts@protonmail.com>
Signed-off-by: ravindu644 <droidcasts@protonmail.com>
… pinning Signed-off-by: ravindu644 <droidcasts@protonmail.com>
Signed-off-by: ravindu644 <droidcasts@protonmail.com>
Signed-off-by: ravindu644 <droidcasts@protonmail.com>
Signed-off-by: ravindu644 <droidcasts@protonmail.com>
Signed-off-by: ravindu644 <droidcasts@protonmail.com>
Move ds_net_rewire_gateway_clients() ahead of the DONE handshake write. The DONE write unblocks the container init to pivot_root and exec the real init (procd/netifd); plugging client LAN cables (eth1) after it hot-plugged them into a gateway whose netifd was already booting, racing its LAN bring-up. Wire the client cables first, then unblock, so the gateway execs its init with every client cable already present - mirroring how a client's eth0 is wired before its own DONE. Signed-off-by: ravindu644 <droidcasts@protonmail.com>
Fixes OpenWRT external and internal reboot.
On shutdown/reboot OpenWRT remounts its root read-only, leaving our
mount point under /mnt/Droidspaces/<name> read-only too. External and
internal reboots never unmount the rootfs.img (to keep restarts fast),
so the next boot reuses that still-read-only mount and pivot_root fails
to create .old_root ("Read-only file system") - the container never
booted.
Force the image mount read-write in internal_boot() right after the
rootfs self-bind - the single point every boot path funnels through.
Skipped for directory rootfs and volatile mode; no-op if already RW.
Signed-off-by: ravindu644 <droidcasts@protonmail.com>
Signed-off-by: ravindu644 <droidcasts@protonmail.com>
Use the short commit hash instead of the build date, and default the tag component to CI instead of test for non-release builds. Signed-off-by: ravindu644 <droidcasts@protonmail.com>
Match the CI apk naming: droidspaces-v<version>-<commit>.tar.gz. Falls back to the date when not in a git checkout. Signed-off-by: ravindu644 <droidcasts@protonmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.