Documentation for this package can be found at https://adb-shell.readthedocs.io/.
Prebuilt wheel can be downloaded from nightly.link.
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]
To connect to a device via USB, install this package via:
pip install adb-shell[usb]
(Based on androidtv/adb_manager.py)
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 = f.read() with open(adbkey + '.pub') as f: pub = f.read() signer = PythonRSASigner(pub, priv) # Connect device1 = AdbDeviceTcp('192.168.0.222', 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 = device1.shell('echo TEST1') response2 = device2.shell('echo TEST2')
If you need to generate a key, you can do so as follows.
from adb_shell.auth.keygen import keygen keygen('path/to/adbkey')