https://github.com/JeffLIrion/adb_shell
A Python implementation of ADB with shell and FileSync functionality.
https://github.com/JeffLIrion/adb_shell
adb python
Last synced: 16 days ago
JSON representation
A Python implementation of ADB with shell and FileSync functionality.
- Host: GitHub
- URL: https://github.com/JeffLIrion/adb_shell
- Owner: JeffLIrion
- License: apache-2.0
- Created: 2019-09-16T14:34:10.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-10-29T04:27:51.000Z (6 months ago)
- Last Synced: 2024-11-06T11:54:21.521Z (6 months ago)
- Topics: adb, python
- Language: Python
- Homepage:
- Size: 478 KB
- Stars: 540
- Watchers: 14
- Forks: 60
- Open Issues: 27
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
- awesome-rainmana - JeffLIrion/adb_shell - A Python implementation of ADB with shell and FileSync functionality. (Python)
- awesome-hacking-lists - JeffLIrion/adb_shell - A Python implementation of ADB with shell and FileSync functionality. (Python)
README
adb\_shell
==========.. image:: https://travis-ci.com/JeffLIrion/adb_shell.svg?branch=master
:target: https://travis-ci.com/JeffLIrion/adb_shell.. image:: https://coveralls.io/repos/github/JeffLIrion/adb_shell/badge.svg?branch=master
:target: https://coveralls.io/github/JeffLIrion/adb_shell?branch=master.. image:: https://pepy.tech/badge/adb-shell
:target: https://pepy.tech/project/adb-shellDocumentation 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 `_.
Installation
------------.. code-block::
pip install adb-shell
Async
*****To utilize the async version of this code, you must install into a Python 3.7+ environment via:
.. code-block::
pip install adb-shell[async]
USB Support (Experimental)
**************************To connect to a device via USB, install this package via:
.. code-block::
pip install adb-shell[usb]
Example Usage
-------------(Based on `androidtv/adb_manager.py `_)
.. code-block:: python
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')Generate ADB Key Files
**********************If you need to generate a key, you can do so as follows.
.. code-block:: python
from adb_shell.auth.keygen import keygen
keygen('path/to/adbkey')