30 Essential ADB Commands Every Android Power User Should Know
A power-user reference for ADB: 30 commands covering install, uninstall, screen capture, scrcpy, logcat, dumpsys, backup, sideload, bootloader basics, and developer workflow examples.
Marcus Fielding 14 mai 2026
ADB (Android Debug Bridge) is the official command-line interface to Android. It ships with the Android SDK platform-tools and is the right tool for everything from installing an APK over USB to inspecting an app’s memory.
This is a power-user reference: 30 commands grouped by purpose, with the use case and the exact syntax for each. None of them require root. All of them have been tested on Android 13, 14, and 15 against a stock Pixel.
Before any of these work, three setup steps:
- Install platform-tools. Mac:
brew install android-platform-tools. Linux:sudo apt install android-tools-adbor the equivalent on your distro. Windows: download from developer.android.com/tools/releases/platform-tools. - On the phone: Settings > About phone > tap Build number 7 times to enable Developer Options. Then Settings > System > Developer options > USB debugging: on.
- Plug the phone into your computer. Tap “Allow USB debugging” when the prompt appears, and check “Always allow from this computer” on your own machine.
Verify with adb devices. You should see your device listed.
Install and uninstall
1. adb install app.apk
Install an APK onto the connected device. Returns Success or a specific failure code. Use -r to reinstall keeping data.
2. adb install --bypass-low-target-sdk-block app.apk
Install an APK that targets an SDK below the device’s minimum. Useful for older open-source projects that have not bumped target SDK in a while.
3. adb install -d app.apk
Allow downgrade. Installs a lower version code over a higher one. Sometimes useful for testing.
4. adb install-multiple base.apk split_config.arm64_v8a.apk split_config.en.apk
Install a split APK bundle. Most modern apps ship as an APK bundle (AAB), and the install requires the base APK plus all the splits for your architecture and locale.
5. adb uninstall com.example.app
Uninstall an app by package name. Use -k to keep user data.
6. adb shell pm uninstall -k --user 0 com.example.bloat
The single most useful ADB command for power users: remove pre-installed bloatware without root and without breaking OTA updates. The --user 0 flag uninstalls only for the current user; the system APK stays on disk.
7. adb shell pm list packages -d
List disabled packages. Pair with adb shell pm enable com.example.app to re-enable.
Capture and screen control
8. adb shell screencap -p /sdcard/screen.png && adb pull /sdcard/screen.png
Take a screenshot and pull it to your desktop. The -p flag forces PNG output.
9. adb shell screenrecord /sdcard/demo.mp4 --time-limit 30
Record the screen for up to 30 seconds. Default max is 180 seconds. Press Ctrl+C to stop early. Pull with adb pull afterwards.
10. scrcpy
Not strictly ADB, but it uses ADB underneath. Mirror your phone screen to your desktop with full keyboard and mouse input, low latency, recording support, and audio forwarding. Genymobile/scrcpy on GitHub. Indispensable for desktop-driven Android workflows.
11. adb shell input tap 500 1000
Simulate a tap at screen coordinates 500,1000. Useful for scripted UI testing.
12. adb shell input swipe 500 1500 500 500 200
Simulate a swipe from (500,1500) to (500,500) over 200ms. Useful for opening notification shade, scrolling lists, etc.
13. adb shell input text "hello"
Type text into the currently-focused field. Spaces need to be escaped as %s.
14. adb shell input keyevent KEYCODE_HOME
Send a key event. Common keycodes: HOME, BACK, MENU, POWER, VOLUME_UP, VOLUME_DOWN, CAMERA. Full list with adb shell input keyevent --help or in the Android docs.
Debug and inspect
15. adb logcat
Tail the system log. Pipe through grep for filtering. Use -c to clear the buffer first if you want a clean start: adb logcat -c && adb logcat.
16. adb logcat *:E
Show only error-level messages. Other levels: V (verbose), D (debug), I (info), W (warn), E (error), F (fatal).
17. adb logcat -d > log.txt
Dump the current log buffer and exit. Useful for post-incident analysis. Pair with --buffer all to include radio, events, and main buffers.
18. adb shell dumpsys battery
Dump the battery service state. Other useful dumpsys targets: meminfo, cpuinfo, wifi, gfxinfo, package com.example.app. The package variant is what you want for understanding an app’s permission state.
19. adb shell dumpsys notification
Dump the notification service. Shows every active notification, its priority, the channel it belongs to, and the sender. Useful for debugging “why am I getting this notification”.
20. adb shell top -m 10 -s 6
Show the top 10 processes sorted by RSS (column 6). Native top, not the Toybox variant. Useful for spotting an app that is using more memory than expected.
21. adb shell ps -A | grep com.example
Show all processes for a package. Useful when an app spawns multiple processes (most large apps do).
File transfer
22. adb push localfile /sdcard/remotefile
Copy a file from your desktop to the device. Works with directories too: adb push localdir /sdcard/remotedir.
23. adb pull /sdcard/remotefile localfile
Copy a file from the device to your desktop. Same with directories.
24. adb shell content query --uri content://media/external/images/media
Query the media database. Returns every image known to the system. Adapt the URI for video, audio, downloads.
Backup and sideload
25. adb backup -all -apk -obb -shared -f backup.ab
Full ADB backup. Stores APKs, OBB files, shared storage, and per-app data into a single .ab archive. The format is deprecated and not all apps cooperate, but it still works for many. Modern alternative: Seedvault on supported ROMs, or per-app backup tools such as Neo Backup (F-Droid) on rooted devices.
26. adb sideload update.zip
Sideload an OTA update or a ROM zip from recovery. Requires the device to be in recovery mode with “Apply update from ADB” selected. The canonical use case is applying a stock factory image OTA without going through the Play Services update channel.
Bootloader and recovery
27. adb reboot bootloader
Reboot into fastboot mode. The fastboot command-line tool takes over from here. This is the entry point for unlocking the bootloader (fastboot flashing unlock on Pixels), flashing a custom recovery, or installing a custom ROM such as GrapheneOS or LineageOS.
28. adb reboot recovery
Reboot into recovery mode. From recovery you can wipe data, apply OTAs, and on devices with custom recovery (TWRP, OrangeFox), do quite a lot more.
Developer workflow
29. adb shell am start -n com.example.app/.MainActivity
Launch an activity by explicit component name. Useful when you want to open an internal activity that is not in the launcher. Use am start-foreground-service or am startservice for services.
30. adb shell am force-stop com.example.app
Force-stop an app. Faster than killing it from the recents UI, and works for apps without a launcher icon. Use during debugging to start from a clean state.
A short note on safety
ADB is a powerful tool. Three habits worth keeping:
- Turn USB debugging off when not using it. Settings > System > Developer options > USB debugging. The default-off state is the right one.
- Revoke unknown ADB authorisations. Same screen, “Revoke USB debugging authorisations”. Useful if you have ever plugged your phone into a friend’s computer.
- Never run an ADB command you have not understood. Especially commands that involve
pmoramfrom random forum posts. The pattern of “paste this command to unlock secret feature” is a malware vector.
That covers the 30 commands worth knowing. The combination of ADB plus scrcpy is the closest Android comes to a developer-grade desktop tooling experience, and you can do quite a lot with just these.
FAQ
Do I need to root my phone to use ADB?
No. ADB works on every stock Android device once you enable Developer Options and USB debugging. Root expands what some commands can do (notably anything that writes to /data/data of other apps), but the 30 commands in this list all work without root, including uninstalling bloatware system apps via the pm uninstall --user flag.
Is ADB safe to use on my daily-driver phone?
Yes, with one caveat. ADB itself is the official tool from Google and is part of the Android SDK. The caveat is that USB debugging mode lets any computer your phone is plugged into request ADB authorisation. Keep USB debugging off when you are not actively using it, and revoke ADB authorisations periodically through Developer Options > Revoke USB debugging authorisations.
What is scrcpy and is it part of ADB?
Scrcpy is a separate open-source tool (Genymobile) that uses ADB under the hood to stream your phone screen to your desktop with low latency, accept keyboard and mouse input, and record screen sessions. It is not part of ADB but is the single most useful pairing for ADB workflows on macOS or Linux. Install via Homebrew (brew install scrcpy) or the official binary on GitHub.
How do I uninstall pre-installed bloatware without root?
Use pm uninstall -k --user 0 com.example.bloat over ADB. This removes the app for the current user without removing the underlying APK from the system partition, which means it does not require root and does not break OTA updates. The app comes back if you factory reset. For a curated list of safe-to-remove packages, the Universal Android Debloater Next Generation project (open-source on GitHub) ships a GUI on top of this exact ADB command.
FAQ
- Do I need to root my phone to use ADB?
- No. ADB works on every stock Android device once you enable Developer Options and USB debugging. Root expands what some commands can do (notably anything that writes to /data/data of other apps), but the 30 commands in this list all work without root, including uninstalling bloatware system apps via the pm uninstall user flag.
- Is ADB safe to use on my daily-driver phone?
- Yes, with one caveat. ADB itself is the official tool from Google and is part of the Android SDK. The caveat is that USB debugging mode lets any computer your phone is plugged into request ADB authorisation. Keep USB debugging off when you are not actively using it, and revoke ADB authorisations periodically through Developer Options > Revoke USB debugging authorisations.
- What is scrcpy and is it part of ADB?
- Scrcpy is a separate open-source tool (Genymobile) that uses ADB under the hood to stream your phone screen to your desktop with low latency, accept keyboard and mouse input, and record screen sessions. It is not part of ADB but is the single most useful pairing for ADB workflows on macOS or Linux. Install via Homebrew (brew install scrcpy) or the official binary on GitHub.
- How do I uninstall pre-installed bloatware without root?
- Use pm uninstall -k --user 0 com.example.bloat over ADB. This removes the app for the current user without removing the underlying APK from the system partition, which means it does not require root and does not break OTA updates. The app comes back if you factory reset. For a curated list of safe-to-remove packages, the Universal Android Debloater Next Generation project (open-source on GitHub) ships a GUI on top of this exact ADB command.