#!/usr/bin/env bash # HPOS — ADB über WLAN verbinden, ohne USB-Kabel. # # Android 11 und neuer bringen "Wireless Debugging" mit: einmal per sechsstelligem # Code koppeln, danach verbindet sich adb über das Netz. Ein Kabel wird nie gebraucht. # # Die Ports vergibt Android bei jedem Einschalten neu — deshalb werden sie hier per # mDNS gesucht statt abgetippt. Wichtig: Kopplungs- und Verbindungsport sind zwei # verschiedene Dinge, das ist die häufigste Verwechslung. # # Aufruf: ./provision/adb-wireless.sh set -uo pipefail source "$(dirname "$0")/lib.sh" kopf "Werkzeug" if adb_einrichten; then ok "adb $(adb_version "$ADB_BIN") — kann WLAN-Kopplung" hinweis "$ADB_BIN" else fehl "Ohne 'adb pair' ist eine Kopplung über WLAN nicht möglich." hinweis "Entweder aktuelle platform-tools installieren, oder doch ein Kabel besorgen." exit 1 fi adb start-server >/dev/null 2>&1 # Sucht einen mDNS-Dienst und gibt HOST:PORT zurück. Der Kopplungsdienst wird nur # angekündigt, solange der Kopplungsdialog auf dem Telefon offen ist — deshalb wird # wiederholt gesucht statt einmal. suche_dienst() { local typ="$1" versuche="${2:-20}" i zeile for ((i = 1; i <= versuche; i++)); do zeile=$(adb mdns services 2>/dev/null | awk -v t="$typ" '$2 == t {print $3; exit}') if [ -n "$zeile" ]; then printf '%s' "$zeile"; return 0; fi printf '.' >&2 sleep 1 done return 1 } # ── Schon verbunden? ───────────────────────────────────────────────────────── kopf "Aktueller Stand" VERBUNDEN=$(adb devices | grep -w 'device$' | wc -l) if [ "$VERBUNDEN" -gt 0 ]; then adb devices | grep -w 'device$' | sed 's/^/ /' ok "Es ist bereits ein Gerät verbunden." hinweis "Weiter mit: ./provision/provision.sh" exit 0 fi hinweis "Kein Gerät verbunden — Kopplung wird eingerichtet." # ── Anleitung ──────────────────────────────────────────────────────────────── kopf "Auf dem Telefon" cat <<'TEXT' 1. Sicherstellen, dass Telefon und dieser Rechner im SELBEN WLAN sind. Ein Gäste-WLAN oder eine aktive Client-Isolierung verhindert die Verbindung. 2. Einstellungen → System → Entwickleroptionen → "Drahtloses Debugging" EIN 3. Dort auf "Gerät mit Kopplungscode koppeln" tippen. Es erscheint ein sechsstelliger Code und eine Adresse. Dieses Fenster BITTE OFFEN LASSEN, bis die Kopplung durch ist — der Kopplungsdienst verschwindet sonst sofort wieder. TEXT printf '\n Wenn das Fenster mit dem Code offen ist, hier Enter drücken > ' read -r _ ' read -r PAIR_ZIEL ' read -r CODE ' read -r CONNECT_ZIEL