run.sh: ALLOWED_SERIALS pinnt rotierenden ip:port statt stabiler ro.serialno #6

Closed
opened 2026-05-30 12:42:33 +02:00 by Brummel · 0 comments
Owner

Beobachtung

clients/wearos/profiles.d/*.sh pinnen in ALLOWED_SERIALS den adb-Transport-Serial in der Form ip:port (z.B. 192.168.178.53:45837). WiFi-Debugging-Ports rotieren aber bei jedem Neustart des Wireless-Debugging auf der Watch. Folge: nach jedem Port-Wechsel lehnt verify_serial_allowed (run.sh:314) den Deploy ab, bis man das Profil von Hand editiert.

Konkret aufgetreten am 2026-05-30: gecachter Port 46349 tot, Watch meldete sich an 45837 -> Deploy blockiert, manueller Stopgap-Edit 46349->45837 in brummel-minerva.sh noetig. Dieser Wert ist morgen wieder veraltet.

Ursache

ALLOWED_SERIALS vermischt zwei Dinge:

  • Wie adb das Geraet gerade adressiert -> rotierender ip:port
  • Welche physische Watch das ist -> stabile Identitaet

Der Schutz-Guard will Zweiteres, prueft aber Ersteres.

Optionen

  • A (empfohlen): Allow-Check auf die stabile Hardware-Serial ro.serialno umstellen. Nach dem Aufloesen des Transports (run.sh:337, also wenn das Geraet ohnehin erreichbar ist) adb -s <transport> shell getprop ro.serialno abfragen und das gegen ALLOWED_SERIALS matchen. Profile listen dann z.B. 38231RTJWR88BX statt ip:port. Robust gegen Port-Rotation, Re-Pairing und IP-Wechsel. Kosten: 1 zusaetzlicher adb shell-Call pro Deploy; Doku + alle 3 Profile + krey-Stub anpassen.
  • B: Port-agnostisch nur auf die IP matchen. Schwaechere Identitaet (jedes Geraet an der IP passt; DHCP), bricht bei IP-Wechsel.
  • C: Allow-Liste streichen, nur explizites ADB_SERIAL-Pinning. Verliert den Wrong-Watch-Schutz (der Grund, warum der Guard existiert: Krey-Key nicht auf falsche Watch).

Bezug

Haengt an #3 (Multi-Tester Watch-Build) - Dr. Kreys Profil haette dasselbe Problem. Sinnvoll, beides zusammen zu denken. Das Connecten/Pairing bleibt ip:port-basiert (dafuer braucht man die Adresse), nur das Sicherheits-Gate wechselt auf die stabile Serial.

## Beobachtung `clients/wearos/profiles.d/*.sh` pinnen in `ALLOWED_SERIALS` den adb-**Transport-Serial** in der Form `ip:port` (z.B. `192.168.178.53:45837`). WiFi-Debugging-Ports rotieren aber bei jedem Neustart des Wireless-Debugging auf der Watch. Folge: nach jedem Port-Wechsel lehnt `verify_serial_allowed` (`run.sh:314`) den Deploy ab, bis man das Profil von Hand editiert. Konkret aufgetreten am 2026-05-30: gecachter Port `46349` tot, Watch meldete sich an `45837` -> Deploy blockiert, manueller Stopgap-Edit `46349`->`45837` in `brummel-minerva.sh` noetig. Dieser Wert ist morgen wieder veraltet. ## Ursache `ALLOWED_SERIALS` vermischt zwei Dinge: - **Wie adb das Geraet gerade adressiert** -> rotierender `ip:port` - **Welche physische Watch das ist** -> stabile Identitaet Der Schutz-Guard will Zweiteres, prueft aber Ersteres. ## Optionen - **A (empfohlen):** Allow-Check auf die stabile **Hardware-Serial** `ro.serialno` umstellen. Nach dem Aufloesen des Transports (`run.sh:337`, also wenn das Geraet ohnehin erreichbar ist) `adb -s <transport> shell getprop ro.serialno` abfragen und *das* gegen `ALLOWED_SERIALS` matchen. Profile listen dann z.B. `38231RTJWR88BX` statt `ip:port`. Robust gegen Port-Rotation, Re-Pairing und IP-Wechsel. Kosten: 1 zusaetzlicher `adb shell`-Call pro Deploy; Doku + alle 3 Profile + krey-Stub anpassen. - **B:** Port-agnostisch nur auf die IP matchen. Schwaechere Identitaet (jedes Geraet an der IP passt; DHCP), bricht bei IP-Wechsel. - **C:** Allow-Liste streichen, nur explizites `ADB_SERIAL`-Pinning. Verliert den Wrong-Watch-Schutz (der Grund, warum der Guard existiert: Krey-Key nicht auf falsche Watch). ## Bezug Haengt an #3 (Multi-Tester Watch-Build) - Dr. Kreys Profil haette dasselbe Problem. Sinnvoll, beides zusammen zu denken. Das Connecten/Pairing bleibt `ip:port`-basiert (dafuer braucht man die Adresse), nur das Sicherheits-Gate wechselt auf die stabile Serial.
Brummel added the feature label 2026-05-30 12:42:33 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Brummel/doctate#6