Commands

CommandDescr
adb kill-serverkill serve
adb start-serverstart server
adb rebootreboot
adb reboot recoveryreboot + recover
adb reboot-bootloaderreboot + bootloader
adb rootrestarts adb with root permissions (doesn’t work)
adb shellOpen or run commands in a terminal on the host Android device.
adb usblist usb devices
adb devicesshow devices attached
adb devices -ldevices (product/model)
adb connect <ip_address_of_device>connect to ip
adb shell getprop ro.build.version.releaseandroid device version
Logcat
adb logcatcat logs
adb logcat -c clearThe 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]Dump all information like dumpstate, dumpsys and logcat output.
Files
adb push [source] [destination]computer -> phone
adb pull [device file location] [local file location]phone -> computer.
adb shell input text 'Wow, it so cool feature'print text

Monkey

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

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:

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.

// Uninstall the given app from all connected devices
adb devices | tail -n +2 | cut -sf 1 | xargs -IX adb -s X uninstall com.myAppPackage

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>

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

Screenshot

adb shell screencap -p /sdcard/screenshot.png

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

---
adb shell screenrecord /sdcard/NotAbleToLogin.mp4

$ adb shell
shell@ $ screenrecord --verbose /sdcard/demo.mp4
(press Control + C to stop)
shell@ $ exit
$ adb pull /sdcard/demo.mp4

Key event

  • Ref: https://developer.android.com/reference/android/view/KeyEvent.html

      adb shell input keyevent 187 // APP SWITCHER
      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 26  // Turn Android device ON and OFF. It will toggle device to on/off status.
      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
    

Shared Preferences

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'

Device onformation

CategoryCommand
Device Informationadb get-statе (print device state)
Device Informationadb get-serialno (get the serial number)
Device Informationadb shell dumpsys iphonesybinfo (get the IMEI)
Device Informationadb shell netstat (list TCP connectivity)
Device Informationadb shell pwd (print current working directory)
Device Informationadb shell dumpsys battery (battery status)
Device Informationadb shell pm list features (list phone features)
Device Informationadb shell service list (list all services)
Device Informationadb shell dumpsys activity <package>/<activity> (activity info)
Device Informationadb shell ps (print process status)
Device Informationadb shell wm size (displays the current screen resolution)
Package infoadb shell list packages (list package names)
Package infoadb shell list packages -r (list package name + path to apks)
Package infoadb shell list packages -3 (list third party package names)
Package infoadb shell list packages -s (list only system packages)
Package infoadb shell list packages -u (list package names + uninstalled)
Package infoadb shell dumpsys package packages (list info on all apps)
Package infoadb shell dump <name> (list info on one package)
Package infoadb shell path <package> (path to the apk file)
Settingsadb shell dumpsys battery set level <n> (change the level from 0 to 100)
Settingsadb shell dumpsys battery set status<n> (change the level to unknown, charging, discharging, not charging or full)
Settingsadb shell dumpsys battery reset (reset the battery)
Settingsadb shell dumpsys battery set usb <n> (change the status of USB connection. ON or OFF)
Settingsadb shell wm size WxH (sets the resolution to WxH)
Deviceadb reboot-recovery (reboot device into recovery mode)
Deviceadb reboot fastboot (reboot device into recovery mode)
Deviceadb shell screencap -p "/path/to/screenshot.png" (capture screenshot)
Deviceadb shell screenrecord "/path/to/record.mp4" (record device screen)
Deviceadb backup -apk -all -f backup.ab (backup settings and apps)
Deviceadb backup -apk -shared -all -f backup.ab (backup settings, apps and shared storage)
Deviceadb backup -apk -nosystem -all -f backup.ab (backup only non-system apps)
Deviceadb restore backup.ab (restore a previous backup)
Device-a <ACTION> e.g. android.intent.action.VIEW
Device-c <CATEGORY> e.g. android.intent.category.LAUNCHER (start activity intent)
Deviceadb shell am start -a android.intent.action.VIEW -d URL (open URL)
Deviceadb shell am start -t image/* -a android.intent.action.VIEW (opens gallery)
Logsadb logcat [options] [filter] [filter] (view device log)
Logsadb bugreport (print bug reports)
Miscadb backup - Create a full backup of your phone and save to the computer.
Miscadb restore- Restore a backup to your phone.
Miscadb sideload - Push and flash custom ROMs and zips from your computer.