google ads placeholder
adb help // List all comands | |
== Adb Server | |
adb kill-server | |
adb start-server | |
== Adb Reboot | |
adb reboot | |
adb reboot recovery | |
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 usb | |
adb 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 logcat | |
adb 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. | |
== Files | |
adb push [source] [destination] // Copy files from your computer to your phone. | |
adb pull [device file location] [local file location] // Copy files from your phone to your computer. | |
== 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 2048×1536 | |
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 | |
— | |
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 | |
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 | |
== ShPref | |
# 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. | |
——————————————————————————– | |
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’ | |
——————————————————————————– | |
=== Few bash snippets === | |
@Source (https://jonfhancock.com/bash-your-way-to-better-android-development-1169bc3e0424) | |
=== Using tail -n | |
//Use tail to remove the first line. Actually two lines. The first one is just a newline. The second is “List of devices attached.” | |
$ adb devices | tail -n +2 | |
=== Using cut -sf | |
// Cut the last word and any white space off the end of each line. | |
$ adb devices | tail -n +2 | cut -sf -1 | |
=== Using xargs -I | |
// Given the -I option, xargs will perform an action for each line of text that we feed into it. | |
// We can give the line a variable name to use in commands that xargs can execute. | |
$ adb devices | tail -n +2 | cut -sf -1 | xargs -I X echo X aw yiss | |
=== Three options below together | |
// Will print android version of all connected devices | |
adb devices | tail -n +2 | cut -sf -1 | xargs -I X adb -s X shell getprop ro.build.version.release | |
=== 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/ |