ADB Useful Commands List

AidenKoo
5 min readJun 10, 2020

--

This page is a collection of frequently used ADB commands. (Written by AidenKoo)

ADB ?

: The Android Debug Bridge (adb) is a command-line tool that helps app developers use a desktop computer to communicate with a connected Android device or run a device emulator.

ADB Command

[Pre-Step] : Add the path of SDK_ROOT\sdk\platform-tools to the system variable path.

Activity Stack Check

: dumpsys activity activities

How to Execute Activity

: adb shell am start -a android.intent.action.MAIN -n PackageName/Activity’s Class Name

(adb shell am start -a [ACTION] -n [Component(PackageName/ClassName)])

How to Execute Service

: adb shell am startservice -n PackageName/Activity’s Class Name

Broadcast History

: dumpsys activity broadcasts // dumpsys activity broadcasts history

SurfaceView

: adb shell dumpsys SurfaceFlinger

Packet Dump

: adb shell tcpdump -i any -p -s 0 -w /sdcard/capture.pcap ; adb pull /sdcard/capture.pcap

Installed Packages

: pm list packages -f

Broadcast

: adb shell am broadcast -a “Broadcast Name”

ADB Server Kill / Start

: adb kill-server

: adb start-server

For references : Add sudo command when no permission error occurs

ADB Shell STOP/START

: adb shell sync

: adb shell stop

: adb shell start

Screenshot

: adb shell screencap -p /sdcard/screen.png
: adb pull /sdcard/screen.png
: adb shell rm /sdcard/screen.png

Print connected devices

: adb devices

ADB connect / disconnect

: adb connect [DEVICE_IP]

: adb disconnect [DEVICE_IP]

Property SET

: setprop sys.usb.mode usb_device

Global DB Value SET

: settings put global adb_enabled 1

Global DB Value GET

: settings get global adb_enabled

How To Select a certain device when multiple devices are connected

: adb -d logcat (device)
: adb -e logcat (emulator)
: adb -s emulator-xxx logcat (device serial) (-s option : device’s unique number you want to approach)

Logcat

: logcat -s xxx:* (Ex. logcat -s LauncherActivity:*)

Shell

: adb -d shell

: For references → -d option : Use USB device

Install APK

1) adb install test.apk
2) adb shell → pm install /sdcard/test.apk

Re-Install

: adb install -r test.apk

How To Push APK To System Partition

: adb push test.apk /system/app

How To Input Text

: adb shell input text “xxx”

Test Something With Random Events

: adb shell monkey -v 1000 com.test.app1

How To Execute Activity Of An Another Process

: adb shell am start -a android.intent.action.MAIN -n com.android.settings/.Settings

: am start -a android.intent.action.VIEW -d facebook://facebook.com/inbox (Facebook)

: am start -a android.intent.action.VIEW -d file:///sdcard/me.vcard -t text/x-vcard (SDCard)

: am start -a android.intent.action.GET_CONTENT -t image/jpeg (Gallery)

: am start -a android.media.action.IMAGE_CAPTURE (Camera)

: am start -a android.intent.action.VIEW http://www.google.com (Show Google WebSite On Browser)

: am start -n com.android.calendar/com.android.calendar.LaunchActivity (Calendar)

How To Detect Key Event

: adb shell

: getevent -l

How To Input Key Event (20-Down, 23 OK)

: adb shell input keyevent 22

: adb shell input keyevent 6

<< ADB help >>

C:\Users\dwkoo>adb -help

Android Debug Bridge version 1.0.39

Revision 3db08f2c6889-android

Installed as C:\Users\dwkoo\Documents\eclipse\android-sdks\platform-tools\adb.exe

global options:

-a listen on all network interfaces, not just localhost

-d use USB device (error if multiple devices connected)

-e use TCP/IP device (error if multiple TCP/IP devices available)

-s SERIAL

use device with given serial number (overrides $ANDROID_SERIAL)

-p PRODUCT

name or path (‘angler’/’out/target/product/angler’);

default $ANDROID_PRODUCT_OUT

-H name of adb server host [default=localhost]

-P port of adb server [default=5037]

-L SOCKET listen on given socket for adb server [default=tcp:localhost:5037]

general commands:

devices [-l] list connected devices (-l for long output)

help show this help message

version show version num

networking:

connect HOST[:PORT] connect to a device via TCP/IP [default port=5555]

disconnect [HOST[:PORT]]

disconnect from given TCP/IP device [default port=5555], or all

forward — list list all forward socket connections

forward [ — no-rebind] LOCAL REMOTE

forward socket connection using:

tcp:<port> (<local> may be “tcp:0” to pick any open port)

localabstract:<unix domain socket name>

localreserved:<unix domain socket name>

localfilesystem:<unix domain socket name>

dev:<character device name>

jdwp:<process pid> (remote only)

forward — remove LOCAL remove specific forward socket connection

forward — remove-all remove all forward socket connections

ppp TTY [PARAMETER…] run PPP over USB

reverse — list list all reverse socket connections from device

reverse [ — no-rebind] REMOTE LOCAL

reverse socket connection using:

tcp:<port> (<remote> may be “tcp:0” to pick any open port)

localabstract:<unix domain socket name>

localreserved:<unix domain socket name>

localfilesystem:<unix domain socket name>

reverse — remove REMOTE remove specific reverse socket connection

reverse — remove-all remove all reverse socket connections from device

file transfer:

push LOCAL… REMOTE

copy local files/directories to device

pull [-a] REMOTE… LOCAL

copy files/dirs from device

-a: preserve file timestamp and mode

sync [DIR]

copy all changed files to device; if DIR is “system”, “vendor”, “oem”,

or “data”, only sync that partition (default all)

-l: list but don’t copy

shell:

shell [-e ESCAPE] [-n] [-Tt] [-x] [COMMAND…]

run remote shell command (interactive shell if no command given)

-e: choose escape character, or “none”; default ‘~’

-n: don’t read from stdin

-T: disable PTY allocation

-t: force PTY allocation

-x: disable remote exit codes and stdout/stderr separation

emu COMMAND run emulator console command

app installation:

install [-lrtsdg] PACKAGE

install-multiple [-lrtsdpg] PACKAGE…

push package(s) to the device and install them

-l: forward lock application

-r: replace existing application

-t: allow test packages

-s: install application on sdcard

-d: allow version code downgrade (debuggable packages only)

-p: partial application install (install-multiple only)

-g: grant all runtime permissions

uninstall [-k] PACKAGE

remove this app package from the device

‘-k’: keep the data and cache directories

backup/restore:

backup [-f FILE] [-apk|-noapk] [-obb|-noobb] [-shared|-noshared] [-all] [-system|-nosystem] [PACKAGE…]

write an archive of the device’s data to FILE [default=backup.adb]

package list optional if -all/-shared are supplied

-apk/-noapk: do/don’t back up .apk files (default -noapk)

-obb/-noobb: do/don’t back up .obb files (default -noobb)

-shared|-noshared: do/don’t back up shared storage (default -noshared)

-all: back up all installed applications

-system|-nosystem: include system apps in -all (default -system)

restore FILE restore device contents from FILE

debugging:

bugreport [PATH]

write bugreport to given PATH [default=bugreport.zip];

if PATH is a directory, the bug report is saved in that directory.

devices that don’t support zipped bug reports output to stdout.

jdwp list pids of processes hosting a JDWP transport

logcat show device log (logcat — help for more)

security:

disable-verity disable dm-verity checking on userdebug builds

enable-verity re-enable dm-verity checking on userdebug builds

keygen FILE

generate adb public/private key; private key stored in FILE,

public key stored in FILE.pub (existing files overwritten)

scripting:

wait-for[-TRANSPORT]-STATE

wait for device to be in the given state

State: device, recovery, sideload, or bootloader

Transport: usb, local, or any [default=any]

get-state print offline | bootloader | device

get-serialno print <serial-number>

get-devpath print <device-path>

remount

remount /system, /vendor, and /oem partitions read-write

reboot [bootloader|recovery|sideload|sideload-auto-reboot]

reboot the device; defaults to booting system image but

supports bootloader and recovery too. sideload reboots

into recovery and automatically starts sideload mode,

sideload-auto-reboot is the same but reboots after sideloading.

sideload OTAPACKAGE sideload the given full OTA package

root restart adbd with root permissions

unroot restart adbd without root permissions

usb restart adb server listening on USB

tcpip PORT restart adb server listening on TCP on PORT

internal debugging:

start-server ensure that there is a server running

kill-server kill the server if it is running

reconnect kick connection from host side to force reconnect

reconnect device kick connection from device side to force reconnect

environment variables:

$ADB_TRACE

comma-separated list of debug info to log:

all,adb,sockets,packets,rwx,usb,sync,sysdeps,transport,jdwp

$ADB_VENDOR_KEYS colon-separated list of keys (files or directories)

$ANDROID_SERIAL serial number to connect to (see -s)

$ANDROID_LOG_TAGS tags to be used by logcat (see logcat — help)

--

--