Android debug shell commands

ADB Shell Commands List and Detailed Cheat Sheet

ADB or Android Debug Bridge is a command-line tool developed to facilitate communication between a computer and a connected emulator or Android device. Using ADB and ADB Shell commands, we can perform various actions on a device. In order that you can execute ADB and Fastboot commands, the Android SDK Platform-tools package must be installed on your Windows, Linux, or macOS computer. In this article, we’ll explore a huge list of ADB Shell commands list with a cheat sheet.

Don’t forget to check out the detailed list of ADB commands explaining the function of each of them.

What is ADB Shell?

ADB commands can be used to debug Android devices, installing or uninstalling apps, and getting information about a connected device. ADB works with the aid of three components called Client, Daemon, and Server. If you are curious about how these 3 components work together to make ADB and ADB shell commands functions, see below:

  • Client: It’s is very computer on which you use a command-line terminal to issue an ADB command. which sends commands.
  • Daemon: Or, ADBD is a background process that runs on both the connected devices. It’s responsible for running commands on a connected emulator or Android device.
  • Server: It runs in the background and works as a bridge between the Client and the Daemon and manages the communication. which manages communication between the client and the daemon.

ADB Shell commands provide access to a Unix Shell that runs a command directly on your Android device. As soon as you execute an ‘adb shell’ command on the command terminal, it sends a signal to your Android device and triggers the remote shell command console. Thus ADB shell commands let you control your Android device.

Using ADB commands, you can reboot your device, push and pull files, create a backup and restore it, sideload an update zip package, or an APK. ADB Shell commands, however, work on a much deeper level. They can be used to change the resolution of your device display, uninstall bloatware or system apps, enable and disable features, modify the system files, and change their configuration directly using commands from your computer.

Actually, there are more tasks you can perform using these commands, and below we’ll check them all with examples. Please note that there are three prerequisites before you can make use of ADB, Fastboot, and ADB shell commands.

Now you can use Web ADB in a web browser window to run ADB commands on an Android device or computer without installing ADB and Fastboot tools and USB drivers.

Finally, without any further ado, let’s proceed with our list of ADB Shell commands.

Warning: Don’t use the commands mentioned on this page unless you know how to use them and have some prior knowledge or experience.

ADB Shell Commands List & Cheat Sheet

In this ADB shell commands cheat sheet, I’ll try to explain the function of all commands in simple language.

adb shell

This command activates the remote shell command console on the connected Android smartphone or tablet.

adb shell pm uninstall

This is really a very useful ADB Shell command. Using this, you can easily uninstall the unwanted system apps. To be able to execute it, you must issue ‘adb shell‘ command first. You can then use pm uninstall -k —user 0 or pm uninstall —user 0 followed by the Android app package name as shown below.

-k : Keep the app data and cache after package removal. If you want the app data to be cleared as well, use the following

If you don’t know the app package name for the apps you want to remove, you can use adb shell pm list packages to find it.

This command can help you if you want to remove all bloatware from your Android phone. Please note that most system apps don’t have the ‘Uninstall‘ option on the device but this command works magically.

adb shell cmd package install-existing

Using the above command, you can re-install an uninstalled system app.

adb shell pm disable- user — user 0

If you want to disable a system app on your Android device, you can execute the above command followed by the app package name

adb shell pm clear –user 0

Using this command, you can delete all data associated with an app.

adb shell pm clear –user 0 com.facebook.appmanager

adb shell pm hide –user 0

In case you want to hide an installed app on your Android device, you can execute this command line followed by the app package name.

adb shell pm list packages

Using the above ADB Shell command, you can print the list of the app package names for all apps installed on your Android device. You can use this command with different parameters to get a more specific list of app packages.

For instance, if you want to list the system apps only, use

In order to list all third-party apps installed on your Android phone or tablet, you issue the following command.

Do you want ADB Shell to show the list of all enabled or disabled apps on your device, try the command with parameters like ‘-d‘ (for disabled apps), ‘-e‘ (for enabled apps), and ‘-u‘ (for uninstalled apps).

To list app packages with specific keywords filter.

To find the list of apps along with their associated packages, execute the following command

You can easily get a list of group packages by a certain manufacturer, or come common term. For instance, if you want to list all apps by Google, you can use the following command.

Читайте также:  Очистка кэш андроид через меню

You can replace “google” with “samsung”, “huawei”, “xiaomi”, “miui”, “evenwell”, “android”, “facebook”, etc. to get desired list of packages.

adb shell pm path

This command displays the APK path on the device’s file system.

adb shell pm create-user

You can use this command to create a new user on your Android device.

adb shell pm remove-user

Just in case you want to remove a user from your device, you can use the above command with followed by the user_id as shown below.

adb shell pm get-max-users

By using this command, you can print the maximum number of users supported on an Android device.

adb shell pm list features

Use the above command to print all supported features of the system.

adb shell pm list permissions

This command prints the list of all known permissions, optionally only those in group . You can use it with the following parameters.

  • -g : Organize permissions by group
  • -f : Print all information
  • -s : Short summary of permissions
  • -d : List dangerous permissions only
  • -u : List the permissions seen by users only

adb shell settings

You can use this command to get information about certain settings on your Android device. By adding different parameters, you can find out the Android settings provider, current system volume level, notification sound, device ID, Bluetooth MAC address, current mobile data status, current WiFi status, etc.

adb shell dumpsys

It’s a very flexible command that can be used standalone or with various parameters to get data related to battery, display, CPU, RAM, storage, etc. The execution of this command will give you detailed information about the Android device’s software and hardware configuration.

Note: In order to use this tool don’t forget to add permission into your Android manifest automatically android.permission.DUMP

Other variations of the command are as follows:

Executing the ‘adb shell dumpsys cpuinfo‘ command, for instance, will print a list of CPU usage by the running processes and apps on your Android device as shown below:

adb shell wm density

The above command can be used to find out the pixel density of your Android device’s display.

adb shell dumpsys window displays

You’ll get a very detailed output on the command window with info like pixel resolution, FPS, and DPI of your phone’s display.

adb shell wm size

You can find out the display resolution of your phone with this command.

If you want to modify the screen resolution and the pixel density of your Android’s display. If you’re not sure about your device’s display resolution, execute the command given below. Suppose your phone’s display resolution is QHD+, you can easily change it to Full HD+ or HD+.

ADB Shell command to Send SMS screen

If you want to send a text message using a command, try the following code.

adb shell screencap

By using this command, you can capture a screenshot and download it to your computer using the ‘adb pull’ command as described above.

adb shell screenrecord

On Android devices running Android 4.4 KitKat and above, you can even record your phone or tablet’s screen and download the recorded video to your computer. Besides, you can also set conditions like video duration, resolution in pixels and video bitrate, etc.

You can stop screen recording using Ctrl+C. In case you want to record the screen in a specific resolution, the following command lets you set custom width and height in pixels.

By default, Android’s screen recorder’s duration is set to 180 seconds (3 minutes). You can decrease this time limit according to your needs (180 seconds is the maximum limit).

Similarly, you can also determine the bitrate of the video output. To set the bitrate to 4MBPS, for example, you can use the following value:

adb shell getprop & adb shell setprop

The ‘getprop‘ and ‘setprop‘ commands can be used to view and set or change the configuration of the ‘build.prop’ file on Android devices. The following command, for example, displays the Android system properties information.

Below are some more examples:

In case you want to change the value of an entry in the build.prop, you can use the ‘adb shell setprop‘ commands. See the examples below:

In the same way, if you want to change the configuration of the VMHeap size on your Android device, you can use the following command.

There are some more variations of the ‘adb shell getprop‘ command that let you see information about Android system properties, SDK API level, Android security patch version, Soc, Android version, device model, device manufacturer, ADB serial number, OEM unlock status, Android device build fingerprint, WiFi MAC address, etc.

adb -s shell getprop

If you want to check the full configuration, running services and information about your Android phone or tablet, you can use the above command. First off, run the adb devices command and copy the alpha-numeric value of your device ID from the output.

Then execute the following command. Don’t forget to replace the device ID highlighted in blue with the ID of your device.

adb shell cat /proc/cpuinfo

Use the above command to get complete information about the CPU on your phone or tablet.

Get an Android device properties

By running the following command, you can see the system properties.

adb shell cd

Change ADB shell directory using ‘cd

Then execute the following command:

adb shell rm

This command lets you easily delete a file or folder from your Android device’s storage. Launch the command window, execute the ‘adb shell’ command and then try the following command with ‘-f‘ (to delete a file) and ‘-d‘ (to remove a directory) parameters.

Note: Instead of ‘rm-d‘, you can also use ‘rmdir‘.

adb shell mkdir

Besides deleting an existing directory or folder, ADB Shell also lets you create a new directory or sub-directory. Not just that, you can set permissions for the newly created folder.

adb shell cp

cp‘ stands for ‘copy’. You can use this command to copy files and directories located on your Android device. Again, you need to start with the ‘adb shell‘ command first.

To copy files and then paste them, by mentioning the source and destination locations as shown below:

adb shell mv

mv‘ stands for ‘move’. This command can be used to move a file stored on your device from a source location to a destination location.

The following command will allow you to move a file with a new name.

adb shell top

To display the list of top CPU processes on an Android phone or tablet, you can use the above command. CPU processes monitor can be stopped using Ctrl+C.

Читайте также:  Диспетчер планшета андроид что это такое

adb shell ip

Find out the WiFi IP address of the of an Android phone or tablet.

adb shell netstat

Displays the network statistics of Android phones.

ADB Shell KeyEvent commands

Android devices support KeyEvent commands that can let you perform certain actions that require you to press a hardware button or tap an app or UI option. You can control your Android phone or tablet device simply by using these KeyEvent commands. These commands might come in handy if the hardware keys on your device are not functioning properly due to some damage.

You can learn more about KeyEvent commands on the Google developers portal.

Finally, it’s time to wrap up the ADB shell commands cheat sheet. In case you need this ADB shell commands list directory for future reference, you can download this PDF file.

Источник

ADB Shell Commands

In this document

The Android Debug Bridge (adb) provides a Unix shell that you can use to run a variety of commands on an emulator or connected device. The command binaries are stored in the file system of the emulator or device, at /system/bin/.

Issuing Shell Commands

You can use the shell command to issue commands, with or without entering the adb remote shell on the emulator/device. To issue a single command without entering a remote shell, use the shell command like this:

Or enter a remote shell on an emulator/device like this:

When you are ready to exit the remote shell, press CTRL+D or type exit .

Using activity manager (am)

Within an adb shell, you can issue commands with the activity manager ( am ) tool to perform various system actions, such as start an activity, force-stop a process, broadcast an intent, modify the device screen properties, and more. While in a shell, the syntax is:

You can also issue an activity manager command directly from adb without entering a remote shell. For example:

Table 2. Available activity manager commands

Command Description
start [options] Start an Activity specified by .

Options are:

  • -D : Enable debugging.
  • -W : Wait for launch to complete.
  • —start-profiler : Start profiler and send results to .
  • -P : Like —start-profiler , but profiling stops when the app goes idle.
  • -R : Repeat the activity launch times. Prior to each repeat, the top activity will be finished.
  • -S : Force stop the target app before starting the activity.
  • —opengl-trace : Enable tracing of OpenGL functions.
  • —user | current : Specify which user to run as; if not specified, then run as the current user.
startservice [options] Start the Service specified by .

Options are:

  • —user | current : Specify which user to run as; if not specified, then run as the current user.
force-stop

Force stop everything associated with

(the app’s package name).

kill [options]

Kill all processes associated with

(the app’s package name). This command kills only processes that are safe to kill and that will not impact the user experience.

Options are:

  • —user | all | current : Specify user whose processes to kill; all users if not specified.
kill-all Kill all background processes.
broadcast [options] Issue a broadcast intent.

Options are:

  • [—user | all | current] : Specify which user to send to; if not specified then send to all users.
instrument [options] Start monitoring with an Instrumentation instance. Typically the target is the form / .

Options are:

  • -r : Print raw results (otherwise decode ). Use with [-e perf true] to generate raw output for performance measurements.
  • -e : Set argument to . For test runners a common form is -e [, . ] .
  • -p : Write profiling data to .
  • -w : Wait for instrumentation to finish before returning. Required for test runners.
  • —no-window-animation : Turn off window animations while running.
  • —user | current : Specify which user instrumentation runs in; current user if not specified.
profile start

Start profiler on

, write results to .

profile stop

Stop profiler on

.

dumpheap [options]

Dump the heap of

Options are:

  • —user [ |current] : When supplying a process name, specify user of process to dump; uses current user if not specified.
  • -n : Dump native heap instead of managed heap.
set-debug-app [options]

Set application

Options are:

  • -w : Wait for debugger when application starts.
  • —persistent : Retain this value.
clear-debug-app Clear the package previous set for debugging with set-debug-app .
monitor [options] Start monitoring for crashes or ANRs.

Options are:

  • —gdb : Start gdbserv on the given port at crash/ANR.
screen-compat [on|off]

Control screen compatibility mode of

display-size [reset| ] Override emulator/device display size. This command is helpful for testing your app across different screen sizes by mimicking a small screen resolution using a device with a large screen, and vice versa.

Example:
am display-size 1280×800

display-density Override emulator/device display density. This command is helpful for testing your app across different screen densities on high-density screen environment using a low density screen, and vice versa.

Example:
am display-density 480

to-uri Print the given intent specification as a URI.

See the Specification for arguments.

to-intent-uri Print the given intent specification as an intent: URI.

Specification for arguments

For activity manager commands that take a argument, you can specify the intent with the following options:

-a Specify the intent action, such as «android.intent.action.VIEW». You can declare this only once. -d Specify the intent data URI, such as «content://contacts/people/1». You can declare this only once. -t Specify the intent MIME type, such as «image/png». You can declare this only once. -c Specify an intent category, such as «android.intent.category.APP_CONTACTS». -n Specify the component name with package name prefix to create an explicit intent, such as «com.example.app/.ExampleActivity». -f Add flags to the intent, as supported by setFlags() . —esn Add a null extra. This option is not supported for URI intents. -e|—es Add string data as a key-value pair. —ez Add boolean data as a key-value pair. —ei Add integer data as a key-value pair. —el Add long data as a key-value pair. —ef Add float data as a key-value pair. —eu Add URI data as a key-value pair. —ecn Add a component name, which is converted and passed as a ComponentName object. —eia [, Add an array of integers. —ela [, Add an array of longs. —efa [, Add an array of floats. —grant-read-uri-permission Include the flag FLAG_GRANT_READ_URI_PERMISSION . —grant-write-uri-permission Include the flag FLAG_GRANT_WRITE_URI_PERMISSION . —debug-log-resolution Include the flag FLAG_DEBUG_LOG_RESOLUTION . —exclude-stopped-packages Include the flag FLAG_EXCLUDE_STOPPED_PACKAGES . —include-stopped-packages Include the flag FLAG_INCLUDE_STOPPED_PACKAGES . —activity-brought-to-front Include the flag FLAG_ACTIVITY_BROUGHT_TO_FRONT . —activity-clear-top Include the flag FLAG_ACTIVITY_CLEAR_TOP . —activity-clear-when-task-reset Include the flag FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET . —activity-exclude-from-recents Include the flag FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS . —activity-launched-from-history Include the flag FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY . —activity-multiple-task Include the flag FLAG_ACTIVITY_MULTIPLE_TASK . —activity-no-animation Include the flag FLAG_ACTIVITY_NO_ANIMATION . —activity-no-history Include the flag FLAG_ACTIVITY_NO_HISTORY . —activity-no-user-action Include the flag FLAG_ACTIVITY_NO_USER_ACTION . —activity-previous-is-top Include the flag FLAG_ACTIVITY_PREVIOUS_IS_TOP . —activity-reorder-to-front Include the flag FLAG_ACTIVITY_REORDER_TO_FRONT . —activity-reset-task-if-needed Include the flag FLAG_ACTIVITY_RESET_TASK_IF_NEEDED . —activity-single-top Include the flag FLAG_ACTIVITY_SINGLE_TOP . —activity-clear-task Include the flag FLAG_ACTIVITY_CLEAR_TASK . —activity-task-on-home Include the flag FLAG_ACTIVITY_TASK_ON_HOME . —receiver-registered-only Include the flag FLAG_RECEIVER_REGISTERED_ONLY . —receiver-replace-pending Include the flag FLAG_RECEIVER_REPLACE_PENDING . —selector Requires the use of -d and -t options to set the intent data and type.

You can directly specify a URI, package name, and component name when not qualified by one of the above options. When an argument is unqualified, the tool assumes the argument is a URI if it contains a «:» (colon); it assumes the argument is a component name if it contains a «/» (forward-slash); otherwise it assumes the argument is a package name.

Using package manager (pm)

Within an adb shell, you can issue commands with the package manager ( pm ) tool to perform actions and queries on application packages installed on the device. While in a shell, the syntax is:

You can also issue a package manager command directly from adb without entering a remote shell. For example:

Table 3. Available package manager commands.

Command Description
list packages [options] Prints all packages, optionally only those whose package name contains the text in .

Options:

  • -f : See their associated file.
  • -d : Filter to only show disabled packages.
  • -e : Filter to only show enabled packages.
  • -s : Filter to only show system packages.
  • -3 : Filter to only show third party packages.
  • -i : See the installer for the packages.
  • -u : Also include uninstalled packages.
  • —user : The user space to query.
list permission-groups Prints all known permission groups.
list permissions [options] Prints all known permissions, optionally only those in .

Options:

  • -g : Organize by group.
  • -f : Print all information.
  • -s : Short summary.
  • -d : Only list dangerous permissions.
  • -u : List only the permissions users will see.
list instrumentation List all test packages.

Options:

  • -f : List the APK file for the test package.
  • : List test packages for only this app.
list features Prints all features of the system.
list libraries Prints all the libraries supported by the current device.
list users Prints all users on the system.
path

Print the path to the APK of the given

.

install [options]

Installs a package (specified by

Options:

  • -l : Install the package with forward lock.
  • -r : Reinstall an exisiting app, keeping its data.
  • -t : Allow test APKs to be installed.
  • -i : Specify the installer package name.
  • -s : Install package on the shared mass storage (such as sdcard).
  • -f : Install package on the internal system memory.
  • -d : Allow version code downgrade.
uninstall [options]

Removes a package from the system.

Options:

  • -k : Keep the data and cache directories around after package removal.
clear

Deletes all data associated with a package.
enable

Enable the given package or component (written as «package/class»).
disable

Disable the given package or component (written as «package/class»).
disable-user [options]

Options:

  • —user : The user to disable.
grant

Grant permissions to applications. Only optional permissions the application has declared can be granted.
revoke

Revoke permissions to applications. Only optional permissions the application has declared can be revoked.
set-install-location Changes the default install location. Location values:

  • 0 : Auto—Let system decide the best location.
  • 1 : Internal—install on internal device storage.
  • 2 : External—install on external media.

Note: This is only intended for debugging; using this can cause applications to break and other undesireable behavior.

get-install-location Returns the current install location. Return values:
  • 0 [auto] : Lets system decide the best location
  • 1 [internal] : Installs on internal device storage
  • 2 [external] : Installs on external media
set-permission-enforced

[true|false]

Specifies whether the given permission should be enforced.
trim-caches Trim cache files to reach the given free space.
create-user Create a new user with the given , printing the new user identifier of the user.
remove-user Remove the user with the given , deleting all data associated with that user
get-max-users Prints the maximum number of users supported by the device.

Taking a device screenshot

The screencap command is a shell utility for taking a screenshot of a device display. While in a shell, the syntax is:

To use the screencap from the command line, type the following:

Here’s an example screenshot session, using the adb shell to capture the screenshot and the pull command to download the file from the device:

Recording a device screen

The screenrecord command is a shell utility for recording the display of devices running Android 4.4 (API level 19) and higher. The utility records screen activity to an MPEG-4 file.

Note: Audio is not recorded with the video file.

A developer can use this file to create promotional or training videos. While in a shell, the syntax is:

To use screenrecord from the command line, type the following:

Stop the screen recording by pressing Ctrl-C, otherwise the recording stops automatically at three minutes or the time limit set by —time-limit .

To begin recording your device screen, run the screenrecord command to record the video. Then, run the pull command to download the video from the device to the host computer. Here’s an example recording session:

The screenrecord utility can record at any supported resolution and bit rate you request, while retaining the aspect ratio of the device display. The utility records at the native display resolution and orientation by default, with a maximum length of three minutes.

There are some known limitations of the screenrecord utility that you should be aware of when using it:

  • Some devices may not be able to record at their native display resolution. If you encounter problems with screen recording, try using a lower screen resolution.
  • Rotation of the screen during recording is not supported. If the screen does rotate during recording, some of the screen is cut off in the recording.

Table 4. screenrecord options

Options Description
—help Displays command syntax and options
—size Sets the video size: 1280×720 . The default value is the device’s native display resolution (if supported), 1280×720 if not. For best results, use a size supported by your device’s Advanced Video Coding (AVC) encoder.
—bit-rate Sets the video bit rate for the video, in megabits per second. The default value is 4Mbps. You can increase the bit rate to improve video quality, but doing so results in larger movie files. The following example sets the recording bit rate to 6Mbps:
—time-limit Sets the maximum recording time, in seconds. The default and maximum value is 180 (3 minutes).
—rotate Rotates the output 90 degrees. This feature is experimental.
—verbose Displays log information on the command-line screen. If you do not set this option, the utility does not display any information while running.

Other shell commands

For a list of all the available shell programs, use the following command:

Help is available for most of the commands.

Table 5 lists some of the more common adb shell commands.

Table 5. Some other adb shell commands

Источник

Читайте также:  Фирма самсунг это андроид
Оцените статью