ADB (Android Debug Bridge) is a command-line tool that lets your computer talk to an Android device. You install APKs, run shell commands, move files, read system logs, and change settings – all from a terminal.
TL;DR: ADB is a client-server tool in the Android SDK Platform Tools that lets your computer control an Android device from the terminal. The client talks to a background server on TCP port 5037, which relays commands to the
adbddaemon on the device. Connect over USB or, on Android 11+, over Wi-Fi with one-time pairing.
It ships inside the Android SDK Platform Tools package. If you debug Android apps, you already have it. If not, see the install guide: one download, no Android Studio required.
How it works: client, server, daemon
ADB runs three cooperating parts:
| Component | Location | Function | Port |
|---|---|---|---|
| Client | Your computer | Sends commands | – |
| Server | Your computer (background) | Manages communication | 5037 |
| Daemon (adbd) | Android device | Executes commands | Dynamic |
Client. When you type adb devices or adb install app.apk, you are using the client.
Server. A background process on your computer that routes between the client and the daemon. It starts automatically with your first ADB command and binds to TCP port 5037.
Daemon (adbd). Runs on the device. Executes the commands and returns results. It starts when you enable USB debugging.
One command’s journey:
- You type a command (client).
- The client connects to the server on port 5037.
- The server locates your device over USB or network.
- The server forwards the command to the daemon.
- The daemon executes it and results come back the same way.
Connection methods
| Method | Android version | Setup | Speed | Range |
|---|---|---|---|---|
| USB cable | All | Easy | Fast | Cable length (~3 m) |
| WiFi (pairing) | 11+ | Medium | Medium | WiFi range |
| WiFi (legacy tcpip) | All | Complex | Medium | WiFi range |
USB needs USB debugging enabled and the RSA authorization prompt accepted on first connect. WiFi on Android 11+ pairs with a QR code or a 6-digit code and uses dynamic ports.
Security notes
ADB is powerful access, so treat it that way:
- First connection prompts you. Android asks you to authorize each new computer, and it remembers your choice. Never approve a prompt you did not trigger.
- Don’t leave USB debugging on permanently. Enable it when you are debugging, disable it when you are done. It reduces what a physical attacker can do.
- Wireless debugging is network-exposed. Android 11+ protects it with pairing authentication, but turn it off when the session ends and never leave it on over public WiFi.
Key milestones
| Year | Milestone |
|---|---|
| 2008 | ADB ships with the first public Android SDK (1.0, released 23 September 2008) |
| 2017 | Android 8.0 Oreo replaces the global “unknown sources” switch with a per-app “Install unknown apps” permission |
| 2020 | Android 11 (API 30) introduces native wireless debugging: one-time pairing with a 6-digit code over TLS, no USB cable needed |
Key takeaways
- ADB is three parts: the
adbclient you type commands into, a background server on TCP port 5037, and theadbddaemon on the device. - It ships with the Android SDK Platform Tools, available standalone since the first SDK release in 2008 — no Android Studio required.
- Connect over USB or wirelessly: Android 11+ uses one-time 6-digit pairing with TLS encryption; older devices use legacy
adb tcpipon port 5555. - Every new computer triggers an authorization prompt on the device — never approve one you did not start, and turn off USB debugging when you are done.
References: Android Debug Bridge (adb) – Android Developers
>
Part of the series: The Complete ADB Guide — also in this series: Install ADB · Essential Commands · Wireless ADB · Troubleshooting
Was this useful?
Thanks for the feedback.
4 comments