adb: The Android Debug Bridge and Commands

1. What is ADB?

    ADB stands for Android Debug Bridge, it is a command line tool (a client-server program) which helps a developer to communicate with an Android device (Phone/Tablet/TV/Watch) to get important log information to debug and test an Android application.

    The adb can be used to run commands on a device.

2. What are the components of adb?

    The adb consists of 3 compoments:

    The ADB Components - Client - Daemon - Server - Android Device - Developer Device
    1. Client: The client runs on the developer's machine and is used to send commands to the Android device.
    2. Daemon: It is also known as atbd (Android Debug Bridge Daemon) which is a background service/process that runs on the device used to run the commands sent by the client.
    3. Server: The server is a program that runs as a background service/process that runs on the developer's device. It is used to manage communication between the client and the daemon (atbd).

3. Where is adb available?

    The adb is available Android SDK Platform Tools package.

    adb location on Mac (macOS)

    You can find adb under /Users/user-name/Library/Android/sdk/platform-tools

    % cd ~/Library/Android/sdk/platform-tools
    % ls -ltrh
    total 49520
    -rwxr-xr-x@ 1 c2ctechtv  staff   235K Jul 13 23:13 dmtracedump
    -rwxr-xr-x@ 1 c2ctechtv  staff   1.5M Jul 13 23:13 mke2fs
    drwxr-xr-x@ 3 c2ctechtv  staff    96B Jul 13 23:13 lib64
    -rwxr-xr-x@ 1 c2ctechtv  staff   549K Jul 13 23:13 make_f2fs_casefold
    -rw-r--r--@ 1 c2ctechtv  staff    38B Jul 13 23:13
    -rw-r--r--@ 1 c2ctechtv  staff   1.1K Jul 13 23:13 mke2fs.conf
    -rwxr-xr-x@ 1 c2ctechtv  staff    13M Jul 13 23:13 adb
    -rwxr-xr-x@ 1 c2ctechtv  staff   656K Jul 13 23:13 etc1tool
    -rwxr-xr-x@ 1 c2ctechtv  staff   3.9M Jul 13 23:13 fastboot
    -rwxr-xr-x@ 1 c2ctechtv  staff   549K Jul 13 23:13 make_f2fs
    -rwxr-xr-x@ 1 c2ctechtv  staff   2.7M Jul 13 23:13 sqlite3
    -rwxr-xr-x@ 1 c2ctechtv  staff   131K Jul 13 23:13 hprof-conv
    -rw-r--r--@ 1 c2ctechtv  staff   1.0M Jul 13 23:13 NOTICE.txt
    -rw-r--r--@ 1 c2ctechtv  staff    18K Jul 13 23:13 package.xml
    ADB Location on Mac - macOS

    adb location on Windows

    On Windows you can find adb under C:\Users\user-name\AppData\Local\Android\Sdk\platform-tools\adb.exe


4. What port does the adb server run on?

    The adb server runs on the TCP port 5037. The adb clients make use of the port 5037 to communicate with the adb server.

5. How to enable adb debugging on your device using USB Cable

    1. Enable USB debugging on the Android device under Developer options (which is disabled by default, needs to be enabled)
    2. Connect your device with USB to the developer's computer.
    3. You can verify the device is connected successfully using the adb devices command.
      ./adb devices
      * daemon not running; starting now at tcp:5037
      * daemon started successfully
      List of devices attached
      - Google Pixel 6A
      - Samsung Galaxy S10

6. How to enable adb debugging on your device using Wifi Connection

    Note: Wifi Debugging is supported from Android 11 (API level 30) and higher.

    1. Make sure the developer's option is enabled on your Android device.
    2. In Android Studio go to Run -> Run Configurations -> Pair Devices Using Wi-Fi
    3. Now Pair devices over Wi-Fi using the QR code
    4. Now on your device enable - Wireless debugging.
    5. Once connected, run and deploy your app to the device.

7. ADB Commands with Examples

Command Description Example Sample Output
adb devices To list all connected Android devices adb devices List of devices attached
emulator-5554 device
adb shell To open an interactive shell on the device adb shell shell@device:/ $
adb install <path_to_apk> To install an Android application adb install app.apk Success
Package installed
adb uninstall <package_name> To uninstall an installed application adb uninstall Success
Uninstall succeeded
adb push <local_path> <device_path> To copy a file from your computer to the device adb push file.txt /sdcard/ [100%] /sdcard/file.txt
adb pull <device_path> <local_path> To copy a file from the device to your computer adb pull /sdcard/file.txt /path/to/save/ /sdcard/file.txt: 1 file pulled
adb logcat To display the device log messages adb logcat Log messages from the device
adb reboot To reboot the device adb reboot Device reboots
adb shell screencap <filename> To capture a screenshot of the device's screen adb shell screencap /sdcard/screenshot.png -
adb shell screenrecord <filename> To record the device's screen as a video adb shell screenrecord /sdcard/video.mp4 -
adb shell am start -n <package/activity> To launch an activity of a specific package on the device adb shell am start -n -
adb shell pm list packages To list all installed packages on the device adb shell pm list packages List of installed packages
adb forward <local> <remote> To forward a local port to a remote port on the device adb forward tcp:8080 tcp:8080 -
adb reverse <remote> <local> To reverse port forwarding from a remote to a local port adb reverse tcp:8080 tcp:8080 -
adb backup <package> To create a full backup of the specified package adb backup Now unlock your device and confirm the backup operation
adb restore <backup_file> To restore a backup previously created with adb adb restore backup.ab Now unlock your device and confirm the restore operation
adb shell pm grant <package> <permission> To grant permission to a specified package on the device adb shell pm grant android.permission.CAMERA -
adb shell pm revoke <package> <permission> To revoke permission from a specified package on the device adb shell pm revoke android.permission.CAMERA -

8. ADB Commands List

Copyright © Code2care 2023 | Privacy Policy | About Us | Contact Us | Sitemap