CLAUDE.md: document the beacon + the Shizuku-kills-adb finding

Verified live: starting Shizuku (non-root, via wireless debugging) hijacks
the debug channel — adb drops and adbd advertises a stale mDNS port, so the
beacon can't auto-recover. Workaround: toggle wireless debugging off/on
after starting Shizuku (it keeps running). Baked into the dev notes so the
Shizuku-tier build loop plans around it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
mrambossek
2026-07-31 22:23:58 +02:00
co-authored by Claude Opus 5
parent 16836ea7b1
commit 96422dd58c
+13
View File
@@ -83,6 +83,19 @@ First build downloads AGP/Compose/Shizuku from Google Maven + Maven Central.
- Known devices: OnePlus 15 (CPH2747, A16) — Shizuku UserService works;
Lenovo TB330FU (A15, multi-user) — UserService never binds, the `newProcess` fallback carries
it. Full history in build-status.md.
- **Wireless-adb beacon** (`echolot-app/adb-beacon` + `tools/adb-beacon/receiver.py`): the
wireless-debug port rotates every couple of minutes on these devices; the beacon reads the live
port from adbd's own mDNS (`_adb-tls-connect._tcp`, filtered to the device's own IP) and POSTs
it to fmr:443 (cleartext allowed; over a validated net); a PC connector polls and reconnects.
Bootstrap needs one manual adb connection to install it, then it self-heals. Existing adb
connections survive port rotation — only fresh connects need the new port.
- **Shizuku start kills the adb bridge and the beacon can't auto-recover it.** Shizuku's non-root
start pairs over wireless debugging and runs its starter through adb, hijacking the channel:
adb goes device→offline→refused, and adbd keeps advertising the now-dead port over mDNS (stale),
so the beacon reports a port that no longer accepts connections. Workaround: after starting
Shizuku, **toggle Wireless debugging off/on** — Shizuku keeps running (separate process), a fresh
port + mDNS record appear, and the beacon/connector recover. Plan the Shizuku-tier dev loop
around this (or USB, if ever available).
- As of the AGP 9.2.0 / Gradle 9.6.0 / Kotlin 2.2.10 bump, JDK 17+ (including 25) works —
AGP 9 requires Gradle 9.1.0+ and Kotlin 2.2.10+ as its minimum KGP version. On machines with
Android Studio, its `jbr` directory works as `JAVA_HOME`.