01 · THE TOOL

A debug bridge, not a rooting tool.

ADB talks to a debug service on your phone over USB or the network. It does not grant root, and it does not require an unlocked bootloader.

Three components: the client on your computer, a server process that brokers connections, and a daemon on the device. Most confusing failures are the server on your machine, not the phone.

What you can genuinely do with it:

  • Install and uninstall applications, including ones not on the store.
  • Read live system logs — the single best tool for understanding why an app misbehaves.
  • Copy files in both directions without the file-transfer mode.
  • Record the screen and take screenshots at native resolution.
  • Inspect battery, network and package state.
  • Disable preinstalled applications for your user, without root, with the caveats in section five.

Turn USB debugging off when you are done. It is a debug interface. Leaving it enabled on a phone you carry around is a small, real increase in what someone with physical access can do.

02 · INSTALLATION

Platform-tools, PATH, and nothing else.

Skip the packages that bundle ADB with a driver installer of unknown origin. The official archive is small and needs no installation.

POWERSHELL · INSTALL AND PATH
# Simplest route
winget install Google.PlatformTools

# Or extract the official platform-tools zip yourself, then add it to PATH
$tools = "C:\Android\platform-tools"
[Environment]::SetEnvironmentVariable(
  "Path",
  [Environment]::GetEnvironmentVariable("Path", "User") + ";$tools",
  "User")

# New terminal, then verify
adb version

On the phone

  • Settings, About phone, tap Build number seven times. Developer options appear, usually under System.
  • Enable USB debugging. On some manufacturers you must also enable an install-via-USB option before ADB can install packages.
  • Use a data cable. Charge-only cables are the single most common cause of a device that never appears. If nothing is detected, change the cable before anything else.
  • Accept the prompt on the phone. Tick “always allow from this computer” unless it is a machine you do not control.
SHELL · FIRST CONTACT
adb devices -l
# List of devices attached
# R58N12ABCDE  device  product:... model:SM_G991B

If the state says unauthorized, the prompt was not accepted. If it says offline, the daemon needs restarting. Both are covered in the last section.

03 · OVER THE NETWORK

Wireless debugging, which is better than it sounds.

On Android 11 and later, wireless debugging pairs with a code and does not require a cable at all. Once set up it is the more pleasant way to work.

SHELL · PAIR AND CONNECT (ANDROID 11+)
# On the phone: Developer options, Wireless debugging, Pair device with pairing code
adb pair 192.168.1.50:41234
# Enter the six-digit code shown on the phone

# Then connect, using the port from the wireless debugging screen
adb connect 192.168.1.50:5555
adb devices
SHELL · THE OLDER ROUTE, VIA USB ONCE
adb tcpip 5555
# Unplug the cable, then
adb connect 192.168.1.50:5555
  • Both devices must be on the same network, and client isolation on guest Wi-Fi will block it silently.
  • The pairing port changes each time the pairing dialog opens. Read it from the screen rather than reusing an old one.
  • The connection drops when the phone sleeps deeply or changes network. adb connect again; nothing is broken.
  • Do not leave it enabled on an untrusted network. Wireless debugging is authenticated, but it is still an open debug interface.

04 · THE COMMANDS

Fifteen that earn their place.

SHELL · PACKAGES AND FILES
# Install, replacing an existing version and keeping data
adb install -r app.apk

# Install a split APK bundle
adb install-multiple base.apk config.arm64_v8a.apk

# Remove an app
adb uninstall com.example.app

# List installed packages, filtered
adb shell pm list packages | findstr example

# Copy a file off the device, and onto it
adb pull /sdcard/Download/report.pdf .
adb push localfile.txt /sdcard/Download/
SHELL · DIAGNOSTICS
# Live log, filtered to one app's process
adb logcat --pid=$(adb shell pidof -s com.example.app)

# Clear the buffer, then watch only errors
adb logcat -c
adb logcat *:E

# Battery, network and package state
adb shell dumpsys battery
adb shell dumpsys package com.example.app

# A full bug report, which is what you attach to an issue
adb bugreport report.zip
SHELL · CAPTURE AND CONTROL
# Screenshot straight to your machine
adb exec-out screencap -p > screen.png

# Record the screen, then pull it
adb shell screenrecord /sdcard/demo.mp4
adb pull /sdcard/demo.mp4

# An interactive shell on the device
adb shell

# Restart the daemon when things get strange
adb kill-server
adb start-server

If you learn one command, make it logcat filtered by process. Watching an application’s own log while you reproduce a problem answers more questions than any amount of guessing from the outside.

05 · PREINSTALLED APPS

Removing manufacturer apps without root, carefully.

ADB can uninstall a package for your user only. The system copy remains, so a factory reset restores it — which is what makes this reversible and therefore reasonable.

SHELL · PER-USER REMOVAL
# Find the exact package name first
adb shell pm list packages | findstr vendor

# Remove for the current user, keeping the system copy
adb shell pm uninstall -k --user 0 com.vendor.someapp

# Put it back
adb shell cmd package install-existing com.vendor.someapp

Do not paste a package list from a forum. Vendors ship framework components with names that look like bloatware, and removing the wrong one can break the camera, the dialler, notifications, or leave the device in a boot loop. Remove one package at a time, reboot, and use the phone normally before removing another.

A safer procedure

  • Identify the app first. Open its settings entry on the phone and read the package name from the app info screen rather than guessing from a list.
  • Prefer disabling to removing where the option exists in Settings. Same practical effect, easier to undo.
  • Never touch anything named for the framework, the launcher, telephony, media provider or the package installer.
  • Keep a list of what you removed. When something breaks a week later, this is the only way to find the cause.
  • Expect updates to restore some of them. A system update can reinstate a package you removed per user.

06 · TROUBLESHOOTING

The six failures, in order of how often they happen.

SymptomCauseFix
No devices listed at allA charge-only cableSwap the cable before anything else. This is most of the cases.
Device shows as unauthorizedThe authorisation prompt was not acceptedUnlock the phone, replug, accept. If no prompt appears, revoke USB debugging authorisations in developer options and retry.
Device shows as offlineStale daemon stateadb kill-server then adb start-server; toggle USB debugging off and on
Detected on one machine but not anotherMissing OEM USB driver on WindowsInstall the manufacturer USB driver, or the Google USB driver from the SDK manager
Wireless connect refusedWrong port, or client isolation on the networkReread the port from the wireless debugging screen; test on a normal network rather than guest Wi-Fi
adb is not recognisedPATH not applied to the open terminalOpen a new terminal after changing PATH; confirm with adb version
SHELL · THE RESET SEQUENCE
adb kill-server
adb start-server
adb devices -l

# On the phone: Developer options, Revoke USB debugging authorisations
# Then replug and accept the prompt again

07 · QUICK ANSWERS

ADB, briefly.

Do I need Android Studio to use ADB?

No. Download the Android SDK platform-tools package on its own, extract it, and add the folder to your PATH. It is a small download with no installer. Avoid third-party bundles that package ADB with driver installers of unknown origin.

Why does my device show as unauthorized?

The authorisation prompt on the phone was not accepted. Unlock the screen, reconnect, and accept it, ticking always allow for a computer you own. If no prompt appears, use Revoke USB debugging authorisations in developer options and reconnect, then restart the ADB server.

Why is my phone not detected at all?

Most often the cable. Many USB cables carry power but no data, and they give no indication of the difference. Swap it for a known data cable first. After that, check that USB debugging is enabled and that the manufacturer USB driver is installed on Windows.

Is it safe to remove system apps with ADB?

It is reversible, which makes it reasonable, but it is not risk free. Removing a package for the current user leaves the system copy intact so a factory reset restores it, and cmd package install-existing brings it back immediately. The real risk is removing a framework component whose name looks like a vendor app. Remove one at a time and reboot between removals.

Does ADB require root or an unlocked bootloader?

No. ADB is a debug interface that works on a standard, locked device with USB debugging enabled. Root grants additional capabilities inside the shell, but everything in this guide, including per-user package removal, works without it.