op adb: forward all openpilot service ports (#36518)

* op adb: forward all openpilot service ports

* cleanup
pull/36514/head
Adeeb Shihadeh 1 week ago committed by GitHub
parent 47d0a95fd6
commit 2e636458a6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 41
      tools/scripts/adb_ssh.sh

@ -1,7 +1,42 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -e set -euo pipefail
# this is a little nicer than "adb shell" since # Forward all openpilot service ports
# "adb shell" doesn't do full terminal emulation mapfile -t SERVICE_PORTS < <(python3 - <<'PY'
from cereal.services import SERVICE_LIST
FNV_PRIME = 0x100000001b3
FNV_OFFSET_BASIS = 0xcbf29ce484222325
START_PORT = 8023
MAX_PORT = 65535
PORT_RANGE = MAX_PORT - START_PORT
MASK = 0xffffffffffffffff
def fnv1a(endpoint: str) -> int:
h = FNV_OFFSET_BASIS
for b in endpoint.encode():
h ^= b
h = (h * FNV_PRIME) & MASK
return h
ports = set()
for name in SERVICE_LIST.keys():
port = START_PORT + fnv1a(name) % PORT_RANGE
ports.add((name, port))
for name, port in sorted(ports):
print(f"{name} {port}")
PY
)
for entry in "${SERVICE_PORTS[@]}"; do
name="${entry% *}"
port="${entry##* }"
adb forward "tcp:${port}" "tcp:${port}" > /dev/null
done
# Forward SSH port first for interactive shell access.
adb forward tcp:2222 tcp:22 adb forward tcp:2222 tcp:22
# SSH!
ssh comma@localhost -p 2222 "$@" ssh comma@localhost -p 2222 "$@"

Loading…
Cancel
Save