adb_shell Documentation

Prebuilt wheel can be downloaded from

This Python package implements ADB shell and FileSync functionality. It originated from python-adb.


pip install adb-shell


To utilize the async version of this code, you must install into a Python 3.7+ environment via:

pip install adb-shell[async]

USB Support (Experimental)

To connect to a device via USB, install this package via:

pip install adb-shell[usb]

Example Usage

(Based on androidtv/

from adb_shell.adb_device import AdbDeviceTcp, AdbDeviceUsb
from adb_shell.auth.sign_pythonrsa import PythonRSASigner

# Load the public and private keys
adbkey = 'path/to/adbkey'
with open(adbkey) as f:
    priv =
with open(adbkey + '.pub') as f:
     pub =
signer = PythonRSASigner(pub, priv)

# Connect
device1 = AdbDeviceTcp('', 5555, default_transport_timeout_s=9.)
device1.connect(rsa_keys=[signer], auth_timeout_s=0.1)

# Connect via USB (package must be installed via `pip install adb-shell[usb])`
device2 = AdbDeviceUsb()
device2.connect(rsa_keys=[signer], auth_timeout_s=0.1)

# Send a shell command
response1 ='echo TEST1')
response2 ='echo TEST2')

Generate ADB Key Files

If you need to generate a key, you can do so as follows.

from adb_shell.auth.keygen import keygen


Indices and tables