-
-
Save Ercilan/66888c1c9c4831e13aedc93ce7759a4b to your computer and use it in GitHub Desktop.
Adb useful shell commands list
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # == Get device android version | |
| adb shell getprop ro.build.version.release | |
| adb shell getprop ro.build.version.sdk | |
| adb shell uname -r | |
| adb shell getprop ro.build.display.id | |
| adb shell getprop ro.build.version.security_patch | |
| adb shell getprop ro.boot.verifiedbootstate | |
| adb shell pm uninstall com.example.MyApp | |
| adb shell pm clear [package] # Deletes all data associated with a package. | |
| # == Actions | |
| # View help | |
| adb shell svc | |
| # Control WiFi | |
| adb shell svc wifi enable | |
| adb shell svc wifi disable | |
| # Control data connection | |
| adb shell svc data enable | |
| adb shell svc data disable | |
| # Control battery charge status (some systems require root) | |
| adb shell svc power stayon true | |
| adb shell svc power stayon false | |
| # == 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 | |
| # You need to pull to download it manually | |
| adb shell screencap -p /sdcard/screenshot.png | |
| --- | |
| adb shell screenrecord /sdcard/NotAbleToLogin.mp4 | |
| # == 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 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 | |
| 0 --> "KEYCODE_0" | |
| 1 --> "KEYCODE_SOFT_LEFT" | |
| 2 --> "KEYCODE_SOFT_RIGHT" | |
| 3 --> "KEYCODE_HOME" | |
| 4 --> "KEYCODE_BACK" | |
| 5 --> "KEYCODE_CALL" | |
| 6 --> "KEYCODE_ENDCALL" | |
| 7 --> "KEYCODE_0" | |
| 8 --> "KEYCODE_1" | |
| 9 --> "KEYCODE_2" | |
| 10 --> "KEYCODE_3" | |
| 11 --> "KEYCODE_4" | |
| 12 --> "KEYCODE_5" | |
| 13 --> "KEYCODE_6" | |
| 14 --> "KEYCODE_7" | |
| 15 --> "KEYCODE_8" | |
| 16 --> "KEYCODE_9" | |
| 17 --> "KEYCODE_STAR" | |
| 18 --> "KEYCODE_POUND" | |
| 19 --> "KEYCODE_DPAD_UP" | |
| 20 --> "KEYCODE_DPAD_DOWN" | |
| 21 --> "KEYCODE_DPAD_LEFT" | |
| 22 --> "KEYCODE_DPAD_RIGHT" | |
| 23 --> "KEYCODE_DPAD_CENTER" | |
| 24 --> "KEYCODE_VOLUME_UP" | |
| 25 --> "KEYCODE_VOLUME_DOWN" | |
| 26 --> "KEYCODE_POWER" | |
| 27 --> "KEYCODE_CAMERA" | |
| 28 --> "KEYCODE_CLEAR" | |
| 29 --> "KEYCODE_A" | |
| 30 --> "KEYCODE_B" | |
| 31 --> "KEYCODE_C" | |
| 32 --> "KEYCODE_D" | |
| 33 --> "KEYCODE_E" | |
| 34 --> "KEYCODE_F" | |
| 35 --> "KEYCODE_G" | |
| 36 --> "KEYCODE_H" | |
| 37 --> "KEYCODE_I" | |
| 38 --> "KEYCODE_J" | |
| 39 --> "KEYCODE_K" | |
| 40 --> "KEYCODE_L" | |
| 41 --> "KEYCODE_M" | |
| 42 --> "KEYCODE_N" | |
| 43 --> "KEYCODE_O" | |
| 44 --> "KEYCODE_P" | |
| 45 --> "KEYCODE_Q" | |
| 46 --> "KEYCODE_R" | |
| 47 --> "KEYCODE_S" | |
| 48 --> "KEYCODE_T" | |
| 49 --> "KEYCODE_U" | |
| 50 --> "KEYCODE_V" | |
| 51 --> "KEYCODE_W" | |
| 52 --> "KEYCODE_X" | |
| 53 --> "KEYCODE_Y" | |
| 54 --> "KEYCODE_Z" | |
| 55 --> "KEYCODE_COMMA" | |
| 56 --> "KEYCODE_PERIOD" | |
| 57 --> "KEYCODE_ALT_LEFT" | |
| 58 --> "KEYCODE_ALT_RIGHT" | |
| 59 --> "KEYCODE_SHIFT_LEFT" | |
| 60 --> "KEYCODE_SHIFT_RIGHT" | |
| 61 --> "KEYCODE_TAB" | |
| 62 --> "KEYCODE_SPACE" | |
| 63 --> "KEYCODE_SYM" | |
| 64 --> "KEYCODE_EXPLORER" | |
| 65 --> "KEYCODE_ENVELOPE" | |
| 66 --> "KEYCODE_ENTER" | |
| 67 --> "KEYCODE_DEL" | |
| 68 --> "KEYCODE_GRAVE" | |
| 69 --> "KEYCODE_MINUS" | |
| 70 --> "KEYCODE_EQUALS" | |
| 71 --> "KEYCODE_LEFT_BRACKET" | |
| 72 --> "KEYCODE_RIGHT_BRACKET" | |
| 73 --> "KEYCODE_BACKSLASH" | |
| 74 --> "KEYCODE_SEMICOLON" | |
| 75 --> "KEYCODE_APOSTROPHE" | |
| 76 --> "KEYCODE_SLASH" | |
| 77 --> "KEYCODE_AT" | |
| 78 --> "KEYCODE_NUM" | |
| 79 --> "KEYCODE_HEADSETHOOK" | |
| 80 --> "KEYCODE_FOCUS" | |
| 81 --> "KEYCODE_PLUS" | |
| 82 --> "KEYCODE_MENU" | |
| 83 --> "KEYCODE_NOTIFICATION" | |
| 84 --> "KEYCODE_SEARCH" | |
| 85 --> "KEYCODE_MEDIA_PLAY_PAUSE" | |
| 86 --> "KEYCODE_MEDIA_STOP" | |
| 87 --> "KEYCODE_MEDIA_NEXT" | |
| 88 --> "KEYCODE_MEDIA_PREVIOUS" | |
| 89 --> "KEYCODE_MEDIA_REWIND" | |
| 90 --> "KEYCODE_MEDIA_FAST_FORWARD" | |
| 91 --> "KEYCODE_MUTE" | |
| 92 --> "KEYCODE_PAGE_UP" | |
| 93 --> "KEYCODE_PAGE_DOWN" | |
| 94 --> "KEYCODE_PICTSYMBOLS" | |
| ... | |
| 122 --> "KEYCODE_MOVE_HOME" | |
| 123 --> "KEYCODE_MOVE_END" | |
| # https://developer.android.com/reference/android/view/KeyEvent.html | |
| # == 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 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) | |
| adb shell cat /proc/meminfo | |
| adb shell dumpsys meminfo system | |
| # == Wifi | |
| adb shell dumpsys wifi | |
| # == 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 shell screencap -p "/path/to/screenshot.png" (capture screenshot) | |
| adb shell screenrecord "/path/to/record.mp4" (record device screen) | |
| 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) | |
| -------------------------------------------------------------------------------- | |
| 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' | |
| -------------------------------------------------------------------------------- | |
| # === Developement | |
| # Trace the system call of a command, which is not available on all devices. | |
| adb shell strace ls /sdcard | |
| adb shell strace -e trace=file ls /sdcard | |
| # View network interfaces | |
| adb shell ndc interface list | |
| # Managing Routes | |
| adb shell ndc resolver getnetdns <netId> | |
| # Add/Delete Rules | |
| ndc ipfwd enable <internal> <external> | |
| svc | |
| bugreport | |
| # === Few bash snippets # === | |
| @Source (https://jonfhancock.com/bash-your-way-to-better-android-development-1169bc3e0424) | |
| # === Using alias | |
| -- Example 1 | |
| alias tellMeMore=echo | |
| tellMeMore "hi there" | |
| Output => hi there | |
| -- Example 2 | |
| # Define alias | |
| alias apkinstall="adb devices | tail -n +2 | cut -sf 1 | xargs -I X adb -s X install -r $1" | |
| # And you can use it later | |
| apkinstall ~/Downloads/MyAppRelease.apk # Install an apk on all devices | |
| -- Example 3 | |
| alias rmapp="adb devices | tail -n +2 | cut -sf 1 | xargs -I X adb -s X uninstall $1" | |
| rmapp com.example.myapp # Uninstall a package from all devices | |
| -- Example 4 | |
| alias clearapp="adb devices | tail -n +2 | cut -sf 1 | xargs -I X adb -s X shell pm clear $1" | |
| clearapp com.example.myapp # Clear data on all devices (leave installed) | |
| -- Example 5 | |
| alias startintent="adb devices | tail -n +2 | cut -sf 1 | xargs -I X adb -s X shell am start $1" | |
| startintent https://twitter.com/JonFHancock # Launch a deep link on all devices | |
| # Setting up your .bash_profile | |
| # Finally, to make this all reusable even after rebooting your computer (aliases only last through the current session), we have to add these to your .bash_profile. You might or might not already have a .bash_profile, so let’s # make sure we append to it rather than overwriting it. Just open a terminal, and run the following command | |
| touch .bash_profile && open .bash_profile | |
| # This will create it if it doesn’t already exist, and open it in a text editor either way. Now just copy and paste all of the aliases into it, save, and close. | |
| alias startintent="adb devices | tail -n +2 | cut -sf 1 | xargs -I X adb -s X shell am start $1" | |
| alias apkinstall="adb devices | tail -n +2 | cut -sf 1 | xargs -I X adb -s X install -r $1" | |
| alias rmapp="adb devices | tail -n +2 | cut -sf 1 | xargs -I X adb -s X uninstall $1" | |
| alias clearapp="adb devices | tail -n +2 | cut -sf 1 | xargs -I X adb -s X shell pm clear $1" | |
| # =============================================================== | |
| Sources: | |
| - Internet | |
| - https://www.automatetheplanet.com/adb-cheat-sheet/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment