Android Debug Bridge (adb) is a versatile command-line tool that lets you communicate with a device. The adb command facilitates a variety of device actions, such as installing and debugging apps, and it provides access to a Unix shell that you can use to run a variety of commands on a device.

When I first started playing around with adb, I quickly noticed it can be hard finding resources online demonstrating the list of commands available. I currently use adb to de-google my phone as well as remove location and bio metric features.  

Thanks to the book Operator Handbook here is a big list of useful adb commands.

The list includes:

Basics
Package Installation
Paths
File Operations
Phone Information
Package Information
Configure Settings
Device related Commands
Logs
Permissions

ADB BASICS

adb devices = lists connected devices

adb root = restarts add with root permissions

adb start-server =  starts the adb server

adb kill-server adb reboot = kills the adb server

adb reboot = reboots the device

adb devices -1 = list of devices by product/model

adb shell = starts the background terminal

exit = exits the background terminal

adb help = list all commands

adb -s <deviceName> <command> = redirect command to specific device

adb -d <command> = directs command to only attached USB device

adb -e <command> = directs command to only attached emulator


PACKAGE INSTALLATION

ad shell install <apk> = install app

adb shell install <path> = install app from phone path

adb shell install -r <path> = install app from phone path

adb shell uninstall <name> =  remove the app


PATHS

/data/data/<package>/databases = app databases

/data/data/<package/shared_prefs/ =  shared preferences

/data/app = apk installed by user

/system/app = pre-installed APK files

/mmt/asec = encrypted apps

/mmt/emmc = internal SD Card

/mmt/adcard = external/Internal SD Card

/mmt/adcard/external_sd = external SD Card

adb shell Is = list directory contents

adb shell ls -s = print size of each file

adb shell ls -R = list sub directories recursively


FILE OPERATIONS

adb push <local› <remote> = copy file/dir to device

adb pull <remote> <local> = copy file/dir from device

run-as <package> cat <file> = access the private package files


PHONE INFO

adb get-stat-p = print device state

adb get-serialno = get the serial number

adb shell dumpsys iphonesybinfo = get the IMEI

adb shell netstat = list TCP connectivity

adb shell pwd = print current working directory

adb shell dumpsys battery = battery status

adb shell pm list features = list phone features

adb shell service list = list all services

adb shell dumpsys activity <package>/<activity> = activity info

adb shell ps =  print process status

adb shell wm size = displays the current screen resolution

dumpsys window windows | grep -E 'mCurrentFocus | mFocusedApp' = print current app's opened activity


PACKAGE INFO

adb shell list packages = list package names

adb shell list packages -r = list package name + path to apks

adb shell list packages -3 = list third party package names

adb shell list packages -s = list only system packages

adb shell list packages - u = list package names + uninstalled

adb shell dumpsys package packages = list info on all apps

adb shell dump <name> = list info on one package

adb shell path <package> = path to the apk file


CONFIGURE SETTINGS

adb shell dumpsys battery set level <n> = change the level from 0 to 100

adb shell dumpsys battery set status<n> = change the level to unknown

adb shell dumpsys battery reset = reset the battery

adb shell dumpsys battery set usb <n> = change the status of USB connection. ON or OFF

adb shell wm size WxH = sets the resolution to WXH


adb reboot-recovery = reboot device into recovery mode

adb reboot fastboot = reboot device into recovery mode

adb shell screencap -p "/path/to/screenshot.png" = capture screenshot

adb shell screenrecord "/path/to/record.mp4" = record device screen

adb backup -apk -all -f backup.ab = backup settings and apps

adb backup -apk - shared -all -f backup.ab = backup settings

adb backup -apk -nosystem -all -f backup.ab = backup only non-system apps

adb restore backup.ab = restore a previous backup

adb shell am start | startservice | broadcast <INTENT> [<COMPONENT>] -a <ACTION>e.g. android.intent.action.VIEW -c <CATEGORY>e.g.android.intent.category.LAUNCHER = start activity intent

adb shell am start -a android.intent. action.VIEW -d URL = open URL

adb shell am start -t image/* -a android.intent.action.VIEW = opens gallery


LOGS

adb logcat [options] [filter] [filter] = view device log

adb bugreport = print bug reports


PERMISSIONS

adb shell permissions groups = list permission groups definitions

adb shell list permissions -g -r = list permissions details


For a lot more including Red Team, OSINT & Blue Team, check out:

Operator Handbook: Red Team + OSINT + Blue Team

Happy Days.