diff --git a/CLAUDE.md b/CLAUDE.md index c7da1fd..c58137e 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -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`.