Skip to content

Instantly share code, notes, and snippets.

@Pulimet
Last active March 28, 2024 15:08
Show Gist options
  • Save Pulimet/5013acf2cd5b28e55036c82c91bd56d8 to your computer and use it in GitHub Desktop.
Save Pulimet/5013acf2cd5b28e55036c82c91bd56d8 to your computer and use it in GitHub Desktop.
Adb useful commands list
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 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
---
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/
@muhammedbasilek
Copy link

Hi, How can I turn on airplane mode using adb commands !! I had tried many commands, but it actually only changing the icon, it is not turning off radio signal !!

Hi.

Interesting find.

Does the icon become brighter than usual when you use the command via adb in notification center for airplane_mode @muhammedbasilek ?

No, it slightly dim when it turns on.

Copy link

ghost commented Nov 12, 2022

@muhammedbasilek

Hi again, I finally I figured this out, please try:

Get airplane mode

adb shell cmd connectivity airplane-mode                                                  
disabled

Turn airplane mode enable/disable

adb shell cmd connectivity airplane-mode enable                     
adb shell cmd connectivity airplane-mode disable 

@muhammedbasilek
Copy link

muhammedbasilek commented Nov 14, 2022

@wuseman

Sorry it is still not working !!
Tested on OnePlus10T 5G.

Copy link

ghost commented Nov 14, 2022

@wuseman

Sorry it is still not working !! Tested on OnePlus10T 5G.

You must provide a little more information otherwise it is difficult to help.

  • Did: adb shell cmd connectivity airplane-mode - work or did you get any error message?

If command was ${{\color{green}{OK}}}$ did you try:

adb shell cmd connectivity airplane-mode enable

..If the command was ${{\color{cyan}{valid}}}$

adb shell cmd connectivity airplane-mode

Was the value changed in shell?

    1. Which Android version do you have installed?

@muhammedbasilek
Copy link

@wuseman
Sorry it is still not working !! Tested on OnePlus10T 5G.

You must provide a little more information otherwise it is difficult to help.

  • Did: adb shell cmd connectivity airplane-mode - work or did you get any error message?

If command was OK did you try:

adb shell cmd connectivity airplane-mode enable

..If the command was valid

adb shell cmd connectivity airplane-mode

Was the value changed in shell?

    1. Which Android version do you have installed?

Hi,
Thank you so much for the effort.
Actually it is working now. Used above command.
adb shell cmd connectivity airplane-mode enable
Thanks again !!

Copy link

ghost commented Nov 18, 2022

Cool, I thought it was a bit strange otherwise.
You welcome, cheers :)

@Gillinghammer
Copy link

Occasionally screencap stops working, producing a 0 filesize png file instead of one with data.
Right now the only way I can resolve this is by rebooting the device, but wondering if it's possible to restart this screencap service via adb shell somehow?

Copy link

ghost commented Jan 20, 2023

Occasionally screencap stops working, producing a 0 filesize png file instead of one with data. Right now the only way I can resolve this is by rebooting the device, but wondering if it's possible to restart this screencap service via adb shell somehow?

What command are you using when you using screencap and it gives you a 0 byte file?

@Gillinghammer
Copy link

adb shell screencap > screen.png

I’ve got a loop that fires that command once per second.

Works at first but after a few minutes of my script running the screen captures start coming in broken.

Copy link

ghost commented Jan 20, 2023

Ok, I just tried and it seems to works fine for one capture at least.

Try this inside your script:

adb exec-out screencap -p > screen.png

@Gillinghammer
Copy link

Gillinghammer commented Jan 20, 2023 via email

Copy link

ghost commented Jan 21, 2023

I see, if you would show us your script or the function for your screencap we probably can give you better support.

You want to take a screencap every second or what are you trying when it wont take captures anymore?

You running this in a while loop without delay?

@Gillinghammer
Copy link

I'm doing this in a while loop with a half-second delay. It will work for a few minutes and then ultimately the image file is corrupted and my script crashes, so I force a reboot on the device.

while run:
  try:
    loop += 1
    print('loop count ', loop)
    #save image to memory
    im_b64 = device1.exec_out('screencap -p | base64')
    im_bytes = base64.b64decode(im_b64)
    im_file = BytesIO(im_bytes)
    image = Image.open(im_file)
    # crop image
    image1 = image.crop((1520, 860, 1920, 980)) # left top right bottom
    im = numpy.asarray(image1)
    # extract text from image
    text = pytesseract.image_to_string(im)
    print(text)
    if "Skip" in text:
      device1.shell('input tap 1640 950')
      print("Skip clicked!")
      logging.info("Commercial Skipped")
      if loop > 1800: 
          # each loop is about 1s so 1800 is 30 minutes
          run = False
          logging.info("Skipper stopping after 30 minutes")
      time.sleep(0.5)
    except Exception as e:
        print(e)
        run = False
        logging.error('App Crashed: ' + e)
        # error with android device, reboot to fix
        device1.reboot()

@0xMasud
Copy link

0xMasud commented Jun 20, 2023

Hi How I execute these command please.

24 --> "KEYCODE_VOLUME_UP"
25 --> "KEYCODE_VOLUME_DOWN"

@Pulimet
Copy link
Author

Pulimet commented Jun 21, 2023

Hi How I execute these command please.

24 --> "KEYCODE_VOLUME_UP" 25 --> "KEYCODE_VOLUME_DOWN"

adb shell input keyevent 24
adb shell input keyevent 25

@luizlugo
Copy link

A useful command to look at the running activities of a specific app:

adb shell dumpsys activity activities | grep [PACKAGE_NAME] | grep Hist

Copy link

ghost commented Jun 26, 2023

Hi How I execute these command please.

24 --> "KEYCODE_VOLUME_UP" 25 --> "KEYCODE_VOLUME_DOWN"

Sorry, I thought it was a private mail whatever I edited this post with some more alterantive:

Keyevent (Alternative 2, @Pulimet provided Alternative 1)

adb shell input keyevent KEYCODE_VOLUME_UP
adb shell input keyevent KEYCODE_VOLUME_DOWN

For long press

for i in {1..10}
do
   adb shell input keyevent KEYCODE_VOLUME_DOWN|KEYCODE_VOLUME_UP
done

Sendevent (this can vary depending on devices but generally it's 114 + 115)

adb shell sendevent /dev/input/eventX 1 115 1  # Volume Up key press event
adb shell sendevent /dev/input/eventX 1 114 1  # Volume Down key press event
adb shell sendevent /dev/input/eventX 0 0 0    # Synchronization event
adb shell sendevent /dev/input/eventX 1 115 0  # Volume Up key release event
adb shell sendevent /dev/input/eventX 1 114 0  # Volume Down key release event
adb shell sendevent /dev/input/eventX 0 0 0    # Synchronization event

Media session for your current streaming app

adb shell cmd media_session volume --set [0-15]
adb shell media volume --stream 0 --adj lower
adb shell cmd media_session volume --set 15
# will set volume to index=15
# Connecting to AudioService

adb shell cmd media_session volume --set 5
# will set volume to index=5
# Connecting to AudioService

adb shell cmd media_session volume --adj raise
# will adjust volume
# Connecting to AudioService

Copy link

ghost commented Jun 26, 2023

A useful command to look at the running activities of a specific app:

adb shell dumpsys activity activities | grep [PACKAGE_NAME] | grep Hist

I have created customized scripts specifically for activities, and I am confident that you will find them useful. Here is an example script that specifically targets activities.

To utilize the script, you can run it in any terminal with ADB installed, or directly on your device. Simply navigate through the graphical user interface (GUI) on your phone and explore different options and GUIs. Whenever you perform an action that triggers an activity, the script will provide you with a complete ADB command.

adb logcat | awk '                                                                                    
/act=android.intent.action.MAIN/ && /cmp=/ {
    match($0, /act=[^ ]+/);
    act="\033[95m" substr($0, RSTART+4, RLENGTH-4) "\033[0m";
    match($0, /cmp=[^ ]+/);
    cmp="\033[93m" substr($0, RSTART+4, RLENGTH-4) "\033[0m";
    print "adb shell am start -a '\''" act "'\'' -n '\''" cmp "'\''"
}'
create_adb_cmds_realtime.mp4

@diamondjohndroid
Copy link

diamondjohndroid commented Jun 26, 2023 via email

Copy link

ghost commented Jun 26, 2023

Reply to @diamondjohndroid Spam is commonly understood as unsolicited content that infiltrates various platforms, including inboxes, GitHub repositories, and comment sections. It becomes particularly problematic when individuals who have not made any meaningful contributions or attempts to share valuable knowledge engage in such behavior. Therefore, I respectfully request that you remove your comment, as it does not contribute to the ongoing discussion. I apologize for any inconvenience caused as a result of my initial misunderstanding, mistaking it for a private message. Upon realizing this, I proceeded to contribute in my usual manner, focusing on ADB-related topics. However, I have not come across any substantive input from you beyond the mention of "spam" in uppercase letters. If you possess no interest in the subject matter, such as the Android shell, I kindly ask that you refrain from assuming unwarranted authority without proper authorization.

Btw, to not being AFK and not contribute.

Long press is available by names with --longpress instead of the for loop for names

For find keyevents in future,below command can do things really simple. Press any button or key and you will find the right command for doing it in adb.

adb shell getevent -l | awk '{ system("adb shell input keyevent " $4) }'

Randomize Colors for Each Field in ~10 lines (Extended Range)

adb logcat -v brief | awk '{
    srand()  # Randomize the seed for each line
    for (i = 1; i <= NF; i++) {
        color = int(rand() * 6) + 31  # Generate random color code from 31 to 36
        printf "\033[%dm%s\033[0m ", color, $i
    }
    printf "\n"
}'

Here is another one for swiping, this command retrieves touch event coordinates using getevent, and then uses awk to construct a touchscreen swipe command for input. Here's a description for it:

This command reads the output of adb shell getevent -l and searches for lines containing EV_ABS (absolute position event) and EV_SYN (event synchronization). It captures the X and Y coordinates of the touch event and constructs a touchscreen swipe command for input. The command then prints the generated touchscreen swipe command with the captured coordinates.

The ABS_MT_POSITION_X and ABS_MT_POSITION_Y values are stored in the event array. When a line with EV_ABS is encountered, the corresponding X and Y coordinates are captured. When a line with EV_SYN is encountered, it checks if both X and Y coordinates are available. If so, it constructs the touchscreen swipe command with the captured coordinates and a duration of 1000 milliseconds.

This command is useful for simulating touch events on an Android device using input commands:

adb shell getevent -l | awk '
    /EV_ABS/ {
        event[$3] = strtonum("0x" $NF)
    }
    /EV_SYN/ {
        if (event["ABS_MT_POSITION_X"] && event["ABS_MT_POSITION_Y"]) {
            printf "adb shell input touchscreen swipe %d %d %d %d 1000\n",
                event["ABS_MT_POSITION_X"], event["ABS_MT_POSITION_Y"],
                event["ABS_MT_POSITION_X"], event["ABS_MT_POSITION_Y"]
        }
    }
'

The final generated command will be in the format:

adb shell input touchscreen swipe <start_x> <start_y> <end_x> <end_y> 1000

Sharing is caring.

// wuseman

@iyaz57
Copy link

iyaz57 commented Jun 29, 2023

can any one describe what this commands do or what their fonction and if they safe or not ?

adb shell pm compile -a -f --check-prof
false -m everything
adb shell pm compile -a -f --check-prof false --compile-layouts
adb shell pm bg-dexopt-job

@Khaja786431
Copy link

Can anyone suggest how to shutdown AndriodAuto using adb commands

Copy link

ghost commented Jul 6, 2023

Can anyone suggest how to shutdown AndriodAuto using adb commands

Please try:

adb shell am force-stop com.google.android.projection.gearhead

@Khaja786431
Copy link

@wuseman
Can you please give command to restart AndriodAuto after shutdown
Thanks in Advance (:

Copy link

ghost commented Jul 8, 2023

@Khaja786431 Android Auto doesn't have a typical 'main' activity that can be started like a regular app. Android Auto is designed to be controlled via a compatible car's dashboard system or a phone docked in car mode.

How to start DHU from SDK tools instead

Enable Android Auto Developer and Debugging Settings:

  • Tap the three-dot menu and select "Developer settings".
  • Enable "Unknown sources" and "Start head unit server".

Forward the necessary port from your development machine to your Android device:

To forward the port required for DHU, use the following command in a command prompt or terminal:

adb forward tcp:<port> tcp:<port>

Replace <port> with the desired port number.

Launch the DHU on your machine:

  1. Navigate to the directory where your Android SDK is installed.

  2. Go to extras/google/auto/.

  3. Look for an executable file named desktop-head-unit.

  4. Launch the desktop-head-unit executable manually on your development machine.

PS: You can't launch the DHU through adb; it needs to be done manually on your computer.

However, you can launch settings and other features if that may help:

adb shell am start -n com.google.android.projection.gearhead/.companion.settings.DefaultSettingsActivity

@Khaja786431
Copy link

Can anyone suggest how to shutdown AndriodAuto using adb commands

Please try:

adb shell am force-stop com.google.android.projection.gearhead

I tried this one in vehicle but it's not working

Copy link

ghost commented Jul 18, 2023

Can anyone suggest how to shutdown AndriodAuto using adb commands

Please try:

adb shell am force-stop com.google.android.projection.gearhead

I tried this one in vehicle but it's not working

I'm sorry that the command didn't work; it may be outdated. However, I have now reviewed this more carefully, and here you can see what's happening on recent Android 13 release, it's not allowed unless you are root but you might have some luck with a command I forgot I stored on my cheatsheet page:

W ActivityManager: Permission Denial: not allowed to send broadcast android.app.action.EXIT_CAR_MODE from pid=5049, uid=2000
D **UiModeManager: enableCarMode: enabled at priority=0**
W ActivityManager: **Permission Denial: not allowed to send broadcast android.app.action.EXIT_CAR_MODE** from pid=5049, uid=2000
D UiModeManager: enableCarMode: enabled at priority=0, packageName=
I Telecom : **SystemStateHelper: ENTER_CAR_MODE_PRIORITIZED; priority=0, pkg=: SSH.oR@W3g**
I Telecom : **SystemStateHelper: Entering carmode: SSH.oR@W3g**
I Telecom : **InCallController: handleCarModeChange: packageName=, priority=0, isCarMode=true: SSH.oR@W3g**
I Telecom : InCallController: handleCarModeChange: not a valid InCallService; packageName=: SSH.oR@W3g
W FreecessController: !@*** unFreezeAllPackages for watchdog : **Start reset all state unfreezing!!!** - MARs FW Side (reason: CarMode)
W FreecessController: !@*** unFreezeAllPackages for watchdog : **End reset all state unfreezing!!!** - MARs FW Side (reason: CarMode)
I ChimeraSystemEventListener: onReceive() - action: android.app.action.ENTER_CAR_MODE
I EventReceiver_FLP: BroadcastReceiver, ENTER_CAR_MODE_INTENT
I EventReceiver_FLP: BroadcastReceiver, ENTER_CAR_MODE_INTENT
W BroadcastQueue: Background execution not allowed: receiving Intent { act=android.app.action.ENTER_CAR_MODE flg=0x10000010 (has extras) } to com.google.android.projection.gearhead/com.google.android.apps.auto.carservice.service.impl.GearheadCarServiceCallbacks$CarModeBroadcastReceiver
W BroadcastQueue: Background execution not allowed: receiving Intent { act=android.app.action.ENTER_CAR_MODE flg=0x10000010 (has extras) } to com.sec.android.app.dexonpc/.service.DOPUsbStateReceiver

Set car mode ON

adb shell cmd uimode car yes

Set car mode of OFF

adb shell cmd uimode car no

This command requires root:

adb shell su -c am broadcast -a android.app.action.EXIT_CAR_MODE
adb shell am broadcast -a android.app.action.ENTER_CAR_MODE \
-n com.google.android.projection.gearhead/com.google.android.apps.auto.carservice.service.impl.GearheadCarServiceCallbacks\$CarModeBroadcastReceiver 
07-18 23:42:54.106  1364  4771 W ActivityManager: Permission Denial: not allowed to send broadcast android.app.action.ENTER_CAR_MODE from pid=10919, uid=2000

But with root above works, but try "uimode car yes" and "no" at least.

@textnow-suresh
Copy link

Is there a way to mock location using adb ?

@ShevHK
Copy link

ShevHK commented Aug 17, 2023

Hello, i try to terminate all apps in task manager, how can i do it?
i got all names of packeges using next command:
adb shell dumpsys activity recents | Select-String "Recent #" | ForEach-Object { ($_ -match 'A=(\d+):([^ ]+)') | Out-Null; $Matches[2] }

com.google.android.dialer}
com.google.android.dialer}
com.android.settings.FallbackHome}
com.android.chrome}
com.google.android.apps.photos}
com.google.android.youtube}

than i try few comands to stop this packeges but it is not work:
adb shell am force-stop com.google.android.youtube
it doesnt work, i have to terminate all the tasks from task maneger, how can i do it?

@muhammedbasilek
Copy link

Hi,
Is there any adb command to turn on/off mobile data !?

Copy link

ghost commented Aug 30, 2023

Hi, Is there any adb command to turn on/off mobile data !?

Toggling mobile data typically requires system-level permissions that aren't accessible through ADB in recent versions (although svc data was available in the past, as one of several examples). However, there is still one way to achieve this via settings, specifically using settings/global (content can also be used for settings/global).

Here are the commands to perform this:

  • To dump the current mobile data status (1=on, 0=off):
adb shell settings get global mobile_data
  • To turn mobile data on:
adb shell settings put global mobile_data 1
  • To turn mobile data off:
adb shell settings put global mobile_data 0

Note: These commands may not work on android versions that is released after this post.

Copy link

ghost commented Aug 30, 2023

Hello, i try to terminate all apps in task manager, how can i do it? i got all names of packeges using next command: adb shell dumpsys activity recents | Select-String "Recent #" | ForEach-Object { ($_ -match 'A=(\d+):([^ ]+)') | Out-Null; $Matches[2] }

com.google.android.dialer} com.google.android.dialer} com.android.settings.FallbackHome} com.android.chrome} com.google.android.apps.photos} com.google.android.youtube}

than i try few comands to stop this packeges but it is not work: adb shell am force-stop com.google.android.youtube it doesnt work, i have to terminate all the tasks from task maneger, how can i do it?


Note
Im not a windows user, but I think the below works other wise do it manually. System applications or applications that is set to auto restart will not be able to force stop like this, but you can try

Get list of recent apps

$recentApps = adb shell dumpsys activity recents | Select-String "Recent #" | ForEach-Object { ($_ -match 'A=(\d+):([^ ]+)') | Out-Null; $Matches[2] }

Loop through each recent app to terminate it

foreach ($app in $recentApps) {
# Clean up package name
$packageName = $app -replace '[\{\}]', ''

# Force-stop the app
adb shell am force-stop $packageName
}

Is there a way to mock location using adb ?

Not by default - When the paclage/app is in debug mode, then yes. This is how you can send latitude/longitude coordinates and allow mock location

adb shell cmd appops set 0 androidmock_location allow
adb shell appops set <Your App's Package Name> android:mock_location allow
adb shell pm grant <Your App's Package Name> android.permission.ACCESS_FINE_LOCATION
adb shell pm grant <Your App's Package Name> android.permission.ACCESS_COARSE_LOCATION
adb shell am broadcast -a com.android.intent.action.SET_MOCK_LOCATION --es lat "<Latitude>" --es lon "<Longitude>"

@jporquez077
Copy link

jporquez077 commented Sep 1, 2023

Is there a way to use adb command to enable "USB debugging (security settings)"?
I need to enable it in-order to control it with scrcpy.

(this image below is from another device)
Screenshot_2023-09-01-19-14-52-780_com miui gallery-edit

@Adil7767
Copy link

Is there a way to mock location using adb ?

if any body knows plz mention here

@textnow-suresh
Copy link

Is there a way to mock location using adb ?

if any body knows plz mention here

@Adil7767 I got the below response from @wuseman . just need to try it out in my debug app.

adb shell cmd appops set 0 androidmock_location allow
adb shell appops set <Your App's Package Name> android:mock_location allow
adb shell pm grant <Your App's Package Name> android.permission.ACCESS_FINE_LOCATION
adb shell pm grant <Your App's Package Name> android.permission.ACCESS_COARSE_LOCATION
adb shell am broadcast -a com.android.intent.action.SET_MOCK_LOCATION --es lat "" --es lon ""

@dione1232
Copy link

any commnand to erase the OS? i need unninstall the current OS to install another one.

Copy link

ghost commented Sep 20, 2023

any commnand to erase the OS? i need unninstall the current OS to install another one.

Before I provide instructions, could you please let me know what device you're using?

@muhammedbasilek
Copy link

Hi
Can I know is there any adb command to check dark mode set or not, or is there any way to set dark/light mode

Thanks in advance

@Ngoziuche51
Copy link

Please how can I enable dsds in Infinix smart 7 plus using adb

@wuseman
Copy link

wuseman commented Oct 13, 2023

Set UI Mode to Night Mode (Dark Theme) Permanently

adb shell cmd uimode night yes

Set UI Mode to Day Mode (Light Theme) Permanently

adb shell cmd uimode night no

Set UI Mode to Automatic

  • Allows the device to switch between day and night modes based on the system settings.
adb shell cmd uimode night auto

@MichaelJoshE
Copy link

MichaelJoshE commented Oct 17, 2023

hi can u help me, i cant open my Font Style in settings menu, the settings app always crashed when i try opening it, im using samsung device one Ui 5.1
maybe there is a adb command for changing font style, thanks for the help

@macamba
Copy link

macamba commented Oct 20, 2023

Hi all,

There is some command to set audio output enable HDMI?
Sometimes when I restart my Android TV this option goes to dismarked and I have to go to audio preference and activate this option to can get audio by HDMI

Thanks

@Jaff0
Copy link

Jaff0 commented Nov 19, 2023

Hello,
Is there a way to display the "apps & channel" menu on the Fire TV?

Thanks.

@mmdevlpr
Copy link

mmdevlpr commented Dec 4, 2023

Hi,
Thank you for the beautiful and informative list you have provided!

Please add to the list (before line # 215):

96 --> "KEYCODE_BUTTON_A"
97 --> "KEYCODE_BUTTON_B"
98 --> "KEYCODE_BUTTON_C"
99 --> "KEYCODE_BUTTON_X"
100 --> "KEYCODE_BUTTON_Y"
101 --> "KEYCODE_BUTTON_Z"
102 --> "KEYCODE_BUTTON_L1"
103 --> "KEYCODE_BUTTON_R1"
104 --> "KEYCODE_BUTTON_L2"
105 --> "KEYCODE_BUTTON_R2"
106 --> "KEYCODE_BUTTON_THUMBL"
107 --> "KEYCODE_BUTTON_THUMBR"
108 --> "KEYCODE_BUTTON_START"
109 --> "KEYCODE_BUTTON_SELECT"
110 --> "KEYCODE_BUTTON_MODE"
111 --> "KEYCODE_ESCAPE"
112 --> "KEYCODE_DEL"
113 --> "KEYCODE_CTRL_LEFT"
114 --> "KEYCODE_CTRL_RIGHT"
115 --> "KEYCODE_CAPS_LOCK"
116 --> "KEYCODE_SCROLL_LOCK"
117 --> "KEYCODE_META_LEFT"
118 --> "KEYCODE_META_RIGHT"
119 --> "KEYCODE_FUNCTION"
120 --> "KEYCODE_SYSRQ"
121 --> "KEYCODE_BREAK"

Thanks

@SanjeevKumarC
Copy link

Any command for hotspot turn on and off

@wuseman
Copy link

wuseman commented Dec 4, 2023

Any command for hotspot turn on and off

Yes!

Start Hotspot

Note that the shell command doesn't activate internet tethering

adb shell cmd wifi start-softap <ssid> (open|wpa2|wpa3|wpa3_transition|owe|owe_transition) <passphrase> [-b 2|5|6|any|bridged|bridged_2_5|bridged_2_6|bridged_5_6] [-x] [-f <int> [<int>]]

Stop Hotspot

adb shell cmd wifi stop-softap

More examples: https://adb-shell.com/android/wifi/#stop-softap-hotspot

@macamba
Copy link

macamba commented Dec 4, 2023

Hi all,

There is some command to set audio output enable HDMI? Sometimes when I restart my Android TV this option goes to dismarked and I have to go to audio preference and activate this option to can get audio by HDMI

Thanks

Hi all,

I responde to myself, I didn't find any command but I got using the follow code to use in application Android/java;
As you can see you can set one by one or all together

AudioManager audioManager = (AudioManager) getApplicationContext().getSystemService(Context.AUDIO_SERVICE); //audioManager.setParameters("audio_devices_out_active=AUDIO_CODEC"); //audioManager.setParameters("audio_devices_out_active=AUDIO_HDMI"); //audioManager.setParameters("audio_devices_out_active=AUDIO_SPDIF"); audioManager.setParameters("audio_devices_out_active=AUDIO_HDMI,AUDIO_CODEC,AUDIO_SPDIF");

Regards

@wuseman
Copy link

wuseman commented Dec 4, 2023

Hi all,
There is some command to set audio output enable HDMI? Sometimes when I restart my Android TV this option goes to dismarked and I have to go to audio preference and activate this option to can get audio by HDMI
Thanks

Hi all,

I responde to myself, I didn't find any command but I got using the follow code to use in application Android/java; As you can see you can set one by one or all together

AudioManager audioManager = (AudioManager) getApplicationContext().getSystemService(Context.AUDIO_SERVICE); //audioManager.setParameters("audio_devices_out_active=AUDIO_CODEC"); //audioManager.setParameters("audio_devices_out_active=AUDIO_HDMI"); //audioManager.setParameters("audio_devices_out_active=AUDIO_SPDIF"); audioManager.setParameters("audio_devices_out_active=AUDIO_HDMI,AUDIO_CODEC,AUDIO_SPDIF");

Regards

What Android is installed our tv?

@macamba
Copy link

macamba commented Dec 4, 2023

Hi all,
There is some command to set audio output enable HDMI? Sometimes when I restart my Android TV this option goes to dismarked and I have to go to audio preference and activate this option to can get audio by HDMI
Thanks

Hi all,
I responde to myself, I didn't find any command but I got using the follow code to use in application Android/java; As you can see you can set one by one or all together
AudioManager audioManager = (AudioManager) getApplicationContext().getSystemService(Context.AUDIO_SERVICE); //audioManager.setParameters("audio_devices_out_active=AUDIO_CODEC"); //audioManager.setParameters("audio_devices_out_active=AUDIO_HDMI"); //audioManager.setParameters("audio_devices_out_active=AUDIO_SPDIF"); audioManager.setParameters("audio_devices_out_active=AUDIO_HDMI,AUDIO_CODEC,AUDIO_SPDIF");
Regards

What Android is installed our tv?

I tested this code in Android 7, exactly in Beelink GS1, it really is not Android TV, it's usually android versions used for tableds

Regard

@macamba
Copy link

macamba commented Dec 4, 2023

I tested this code in Android 7, exactly in Beelink GS1, it really is not Android TV, it's usually android versions used for tableds
Regard

Check your settings for hdmi.

audioManager.setParameters("audio_devices_out_active=AUDIO_HDMI"); | This line sets the active audio output device to HDMI.

I think you must go low level for succeed with this and it is really hard to know but if you are really a hardcode hacker and wanna go deep monitor /proc and /sys dirs when you changing output and you willl probably see wich file has been updated recently if you are quick.

Howevert, using setParameters() with custom string parameters is somewhat unconventional and may not be officially supported or documented by Android. This means the behavior could vary between devices or Android versions, and there is a risk that it might not work consistently across all Android TV devices.

You might can find something useful with:

echo "system\nglobal\nsecure" | xargs -n 1 settings list|grep audio 

Please notice to make the settings updated in realtime you should use content input or output for content insert --uri content://system/settings/... in adb for example

Thanks for help 😀, this level is so high for, anyway I got work in this device and I gave it to my brother, so I can't test on this device

@Yasser-Jemli
Copy link

is there any command to set current_user name ?

@abdullahO2
Copy link

how can i do "adb install --bypass-low-target-sdk-block /storage/emulated/0/1.apk" from adb shell, i did tried "pm install --bypass-low-target-sdk-block /storage/6235-3232/1.apk" but did not work

@CyberRazerX
Copy link

Hi!
I was wondering if there's any way to enable (or actually force) OTG compatibility via ADB, I'm on Android 12 without root, not sure if it helps but the device is a Tecno Pova 4.

Regards

@JeffHD
Copy link

JeffHD commented Jan 9, 2024

Hey i have a FireTV and want to turn off the tv it is connected to. I have the FireTV in my HomeAssistant and im sending adb commands trough it. If i power it off trough HA the stick only goes in standby and the tv is still powered on. I know its possible the the stick turns off the tv since i can say to alexa "turn off tv" and the stick turns the tv off. I tried some commands like input or echo 0x40 0x36 but nothing worked so far. Any suggestions what i could else do?

@macamba
Copy link

macamba commented Jan 9, 2024

Why not use FireStick remote contro?

Hey i have a FireTV and want to turn off the tv it is connected to. I have the FireTV in my HomeAssistant and im sending adb commands trough it. If i power it off trough HA the stick only goes in standby and the tv is still powered on. I know its possible the the stick turns off the tv since i can say to alexa "turn off tv" and the stick turns the tv off. I tried some commands like input or echo 0x40 0x36 but nothing worked so far. Any suggestions what i could else do?

@JeffHD
Copy link

JeffHD commented Jan 9, 2024

Because i want to automate some things and i cant do that with the remote

Why not use FireStick remote contro?

Hey i have a FireTV and want to turn off the tv it is connected to. I have the FireTV in my HomeAssistant and im sending adb commands trough it. If i power it off trough HA the stick only goes in standby and the tv is still powered on. I know its possible the the stick turns off the tv since i can say to alexa "turn off tv" and the stick turns the tv off. I tried some commands like input or echo 0x40 0x36 but nothing worked so far. Any suggestions what i could else do?

@macamba
Copy link

macamba commented Jan 12, 2024

Hey i have a FireTV and want to turn off the tv it is connected to. I have the FireTV in my HomeAssistant and im sending adb commands trough it. If i power it off trough HA the stick only goes in standby and the tv is still powered on. I know its possible the the stick turns off the tv since i can say to alexa "turn off tv" and the stick turns the tv off. I tried some commands like input or echo 0x40 0x36 but nothing worked so far. Any suggestions what i could else do?

You can try using adb shell the command getevent, maybe it can capture event poweroff from remote control and then use sendevent to replicate event

@wuseman
Copy link

wuseman commented Jan 13, 2024

Here is a script of mine you can use for getevent , it will capture all touches and create the adb shell commands in realtime.

  • Generator
adb shell getevent -l | awk '
    /EV_ABS/ {
        event[$3] = strtonum("0x" $NF)
    }
    /EV_SYN/ {
        if (event["ABS_MT_POSITION_X"] && event["ABS_MT_POSITION_Y"]) {
            printf "adb shell input touchscreen swipe %d %d %d %d 1000\n",
                event["ABS_MT_POSITION_X"], event["ABS_MT_POSITION_Y"],
                event["ABS_MT_POSITION_X"], event["ABS_MT_POSITION_Y"]
        }
    }

@tudor007
Copy link

Hi.
There is a way to push a file (via adb push) to system/etc folder, on non-rooted Android 14 (Samsung S22)? The system is read-only, so there is no way to push a file, right? Or push function is another thing than copy/paste?

@vinodjayachandran
Copy link

Hello, Is there a way to display the "apps & channel" menu on the Fire TV?

Thanks.

adb shell am start -d "amzn://apps/android?a_lib"

@wuseman
Copy link

wuseman commented Jan 18, 2024

Hi. There is a way to push a file (via adb push) to system/etc folder, on non-rooted Android 14 (Samsung S22)? The system is read-only, so there is no way to push a file, right? Or push function is another thing than copy/paste?

You are correct, there is no way to bypass this. /system path holds locksettings.db and other folders so that would be a big security issue if that was possible.

@Tschukedi
Copy link

How do I find the full path for executing the adb pull command when I plug my Android phone to my windows machine?

adb pull [device file location] [local file location] // Copy files from your phone to your computer.

What do I have to do to find the "device file location" ?

@ItzKazuki
Copy link

How do I find the full path for executing the adb pull command when I plug my Android phone to my windows machine?

adb pull [device file location] [local file location] // Copy files from your phone to your computer.

What do I have to do to find the "device file location" ?

you can use /sdcard/[yourfile here] or /storage/self/primary/(internal storage located near the file /storage, you can find the internal storage first). ex: u want store file yourfile.png to /sdcard/pictures/ u must use this command adb pull /sdcard/pictures /[wherethepictures]/yourfile.png

@HarshNarayanJha
Copy link

Is there anyway to idendify at which coordinates the screen was touch in a specific app in a given timeframe?

@wuseman
Copy link

wuseman commented Feb 11, 2024

How do I find the full path for executing the adb pull command when I plug my Android phone to my windows machine?

adb pull [device file location] [local file location] // Copy files from your phone to your computer.

What do I have to do to find the "device file location" ?

I'm not sure if I get this right maybe @ItzKazuki answer is the one you looking for, however if you want to find a file and where it is stored on the device, you can use find

adb shell find /sdcard -iname "*file*" -type f 

When the file is found, use the above command from @ItzKazuki for "pull" the file to your pc

@Tschukedi
Copy link

How do I find the full path for executing the adb pull command when I plug my Android phone to my windows machine?
adb pull [device file location] [local file location] // Copy files from your phone to your computer.
What do I have to do to find the "device file location" ?

you can use /sdcard/[yourfile here] or /storage/self/primary/(internal storage located near the file /storage, you can find the internal storage first). ex: u want store file yourfile.png to /sdcard/pictures/ u must use this command adb pull /sdcard/pictures /[wherethepictures]/yourfile.png

Thank you so much. I dont even have a sdcard, but the path worked fine. I did a adb pull request on my 110 GB large DCIM folder and it took me like 4 hours to transfer the files.

What would I do if I want to do another backup but without copying all over again?
Maybe also copying only the files that are different from the old stack and also put the new files into another directory so the folder gets not bigger and bigger each time?

You guys are very smart, I like that!

@RaymanMartin
Copy link

Hi guys.
Thanks for the instructions.
Im still seeking some instructions about adb shell cmd function list.
Any suggestions or references?

@wuseman
Copy link

wuseman commented Feb 24, 2024

Hi guys. Thanks for the instructions. Im still seeking some instructions about adb shell cmd function list. Any suggestions or references?

What are your suggestions? Want me to jazz up the command options, wuseman style?

Check this out, it's blazing fast, over 100% quicker than the boring old default.

Execute -h on all options in cmd list for find valid commands in shell

cmd -l | xargs -n 1 -P $(( $(nproc) + 1 )) sh -c 'cmd "$0" -h'  2>/dev/null

Dump all cmd commands with -h option ready to use

cmd -l | xargs -n 1 -P $(( $(nproc) + 1 )) sh -c 'echo "cmd $0" -h' 2>/dev/null

@DARK7BEA5T
Copy link

is there a way to allow access to android\data folder? i have android 14, can access, even with pc, copy paste fails.
plz tell a way, it should work without pc, even if it does only work with PC.

Copy link

ghost commented Mar 19, 2024

is there a way to allow access to android\data folder? i have android 14, can access, even with pc, copy paste fails. plz tell a way, it should work without pc, even if it does only work with PC.

Impossible I guess?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment