understanding-adb-architecture
Installation
SKILL.md
Understanding ADB Architecture — Client, Server, Daemon
ADB is one binary that wears three hats. Most "adb is being weird" reports come from misunderstanding which hat is misbehaving (the local CLI, the long-lived host server on port 5037, or the on-device adbd), or from two different adb binaries fighting over the same port. This skill grounds the mental model so the rest of the ADB skill set has a stable foundation.
When to use this skill
- The user sees
* daemon not running; starting now at tcp:5037 *and assumes it is an error. - The user sees
adb server version (XX) doesn't match this client (YY); killing...after Studio updates its bundled platform-tools. - The user wants to enable verbose ADB logging (
ADB_TRACE) or set up a CI runner with a preinstalled vendor key. - The user asks why deleting
~/.android/adbkeybreaks every other paired device. - The user is debugging port 5037 collisions, multiple adb installs, or libusb-related transport failures on Linux.
When NOT to use this skill
- The user is troubleshooting a specific connected device (USB authorization,
unauthorized,no permissions) — use../../devices/connecting-to-devices/SKILL.md. - The user is setting up wireless / Wi-Fi ADB — use
../../devices/connecting-over-wifi/SKILL.md. - The user is running
adb shell am instrumentfor tests — use../../tests/running-instrumented-tests-via-adb/SKILL.md.