The Android Debug Bridge (ADB) Cheatsheet

Nimit Sharma
7 min readApr 13, 2022

--

The Android Debug Bridge (ADB) is an easy way to interact with your device through the command line, which can be useful in troubleshooting and when you’re developing apps. However, while the basic commands are easy to follow, some of the more advanced features can be hard to remember, especially if you’re new to Android development. That’s why we created this ADB cheatsheet to make sure you know all the ins and outs of this useful tool.

adb shell screenrecord /sdcard/video.mp4

adb logcat -c : delete previous logs and copy current logs

screen recording: adb shell screenrecord /sdcard/video.mp4

screen capture: adb shell screencap /sdcard/image.png

automated commands : eg; to select recent app, select, clear from recent screen

adb shell input keyevent KEYCODE_APP_SWITCH

adb shell input keyevent 20

adb shell input keyevent DEL

battery low and reset

adb shell dumpsys battery set level 30

adb shell dumpsys battery reset

screen size and density: resolution

adb shell wm size

adb shell wm density

phone backup

adb backup -apk — shared -all -f back.ab

phone backup restore

adb restore back.ab

push to phone

adb push /sdcard/drag and drop

pull from phone

adb pull sdcard/download/ Downloads/Crash

adb shell input tap 610 1415

adb shell “dumpsys activity activities | grep mResumedActivity”

adb shell dumpsys window windows | grep -E ‘mCurrentFocus|mFocusedApp’

adb help : List all adb commands

Adb Server

adb kill-server

adb start-server

Adb Reboot

adb reboot

adb reboot

adb reboot-bootloader

adb root : restarts adb with root permissions

Shell

adb shell : Open or run commands in a terminal on the host Android device.

Devices

adb usbadb devices : show devices attached

adb devices -l : devices (product/model)

adb connect ip_address_of_device

Get device android version

adb shell getprop ro.build.version.release

LogCat

adb logcatadb logcat -c : clear :The parameter -c will clear the current logs on the device

adb logcat -d > [path_to_file] : Save the logcat output to a file on the local system.

adb bugreport > [path_to_file] : Will dump the whole device information like dumpstate, dumpsys and logcat output.

App install

adb -e install path/to/app.apk -d : directs command to the only connected USB device.

  • e — directs command to the only running emulator…
  • -s <serial number> …
  • -p <product name or path> …
  • The flag you decide to use has to come before the actual adb command: adb devices | tail -n +2 | cut -sf 1 | xargs -IX adb -s X install -r com.myAppPackage // Install the given app on all connected devices.

Uninstalling app from device

adb uninstall com.myAppPackage

adb uninstall <app .apk name>

adb uninstall -k <app .apk name> -> “Uninstall .apk withour deleting data”

adb shell pm uninstall com.example.MyApp

adb shell pm clear [package] // Deletes all data associated with a package.

adb devices | tail -n +2 | cut -sf 1 | xargs -IX

adb -s X uninstall com.myAppPackage : Uninstall the given app from all connected devices

Update app

adb install -r yourApp.apk : -r means re-install the app and keep its data on the device.

adb install –k <.apk file path on computer>

Home button

adb shell am start -W -c android.intent.category.HOME -a android.intent.action.MAIN

Activity Manager

adb shell am start -a android.intent.action.VIEW

adb shell am broadcast -a ‘my_action’ adb shell am start -a android.intent.action.CALL -d tel:+972527300294 : Make a call

Open send sms screen with phone number and the message:

adb shell am start -a android.intent.action.SENDTO -d sms:+972527300294 — es sms_body “Test — ez exit_on_sent false

Reset permissions

adb shell pm reset-permissions -p your.app.package

adb shell pm grant [packageName] [ Permission] : Grant a permission to an app. adb shell pm revoke [packageName] [ Permission] : Revoke a permission from an app.

Emulate device

adb shell wm size 2048x1536 adb shell wm density 288

And reset to default

adb shell wm size reset adb shell wm density reset

Print text

adb shell input text ‘Wow, it so cool feature’

Screenshot

adb shell screencap -p /sdcard/screenshot.png $ adb shell shell@ $ screencap /sdcard/screen.png shell@ $ exit $ adb pull /sdcard/screen.png

Key event

adb shell input keyevent 3 // Home btn

adb shell input keyevent 4 // Back btn

adb shell input keyevent 5 // Call

adb shell input keyevent 6 : End call

adb shell input keyevent 27 : Camera

adb shell input keyevent 64 : Open browser

adb shell input keyevent 66 : Enter

adb shell input keyevent 67 : Delete (backspace)

adb shell input keyevent 207 : Contacts

adb shell input keyevent 220 / 221 : Brightness down/up

adb shell input keyevent 277 / 278 /279 : Cut/Copy/Paste

replace org.example.app with your application id

Add a value to default shared preferences.

adb shell ‘am broadcast -a org.example.app.sp.PUT — es key key_name — es value “hello world!”’

Remove a value to default shared preferences.

adb shell ‘am broadcast -a org.example.app.sp.REMOVE — es key key_name’

Clear all default shared preferences.

adb shell ‘am broadcast -a org.example.app.sp.CLEAR — es key key_name’

It’s also possible to specify shared preferences file.

adb shell ‘am broadcast -a org.example.app.sp.PUT — es name Game — es key level — ei value 10’

Data types

adb shell ‘am broadcast -a org.example.app.sp.PUT — es key string — es value “hello world!”’

adb shell ‘am broadcast -a org.example.app.sp.PUT — es key boolean — ez value true’

adb shell ‘am broadcast -a org.example.app.sp.PUT — es key float — ef value 3.14159’

adb shell ‘am broadcast -a org.example.app.sp.PUT — es key int — ei value 2015’

adb shell ‘am broadcast -a org.example.app.sp.PUT — es key long — el value 9223372036854775807’

Restart application process after making changes

adb shell ‘am broadcast -a org.example.app.sp.CLEAR — ez restart true’

Monkey

adb shell monkey -p com.myAppPackage -v 10000 -s 100 // monkey tool is generating 10.000 random events on the real device

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) (App2SD)

/mmt/emmc (internal SD Card)

/mmt/adcard (external/Internal SD Card)

/mmt/adcard/external_sd (external SD Card)

adb shell ls (list directory contents)

adb shell ls -s (print size of each file)

adb shell ls -R (list subdirectories recursively)

Device onformation

adb get-statе (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 Commands

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, charging, discharging, not charging or full)

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)

Device Related Commands

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, apps and shared storage)

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)

Other

adb backup // Create a full backup of your phone and save to the computer.

adb restore // Restore a backup to your phone.

adb sideload // Push and flash custom ROMs and zips from your computer.

fastboot devices

// Check connection and get basic information about devices connected to the computer.

// This is essentially the same command as adb devices from earlier.

//However, it works in the bootloader, which ADB does not. Handy for ensuring that you have properly established a connection.

Add a value to default shared preferences.

adb shell ‘am broadcast -a org.example.app.sp.PUT — es key key_name — es value “hello world!”’

Remove a value to default shared preferences.

adb shell ‘am broadcast -a org.example.app.sp.REMOVE — es key key_name’

Clear all default shared preferences.

adb shell ‘am broadcast -a org.example.app.sp.CLEAR — es key key_name’

It’s also possible to specify shared preferences file.

adb shell ‘am broadcast -a org.example.app.sp.PUT — es name Game — es key level — ei value 10’

Data types

adb shell ‘am broadcast -a org.example.app.sp.PUT — es key string — es value “hello world!”’

adb shell ‘am broadcast -a org.example.app.sp.PUT — es key boolean — ez value true’

adb shell ‘am broadcast -a org.example.app.sp.PUT — es key float — ef value 3.14159’

adb shell ‘am broadcast -a org.example.app.sp.PUT — es key int — ei value 2015’

adb shell ‘am broadcast -a org.example.app.sp.PUT — es key long — el value 9223372036854775807’

Restart application process after making changes

adb shell ‘am broadcast -a org.example.app.sp.CLEAR — ez restart true’ adb shell monkey -p com.superkings.parchisi.star -v 10000 -s 100 adb shell monkey -p org.cocos2dx.cpp.AppActivity t228 -v 10000 -s 100

org.cocos2dx.cpp.AppActivity t228

  1. Connect phone with usb cable to PC.
  2. Issue command: adb usb
  3. Issue command: adb tcpip 5555
  4. Issue command: adb connect xxx.xxx.xxx.xxx
import subprocess
subprocess.call("adb devices",shell=True)

adb shell am instrument -w

adb cmd to start app

adb shell am start -n

--

--

Nimit Sharma

QA By Profession. Enthusiastic , Explorer & Contributor.