Skip to main content

Pure python implementation of the adb client

Project description

This is pure-python implementation of the ADB client.

You can use it to communicate with adb server (not the adb daemon on the device/emulator).

Installation

$pip install -U pure-python-adb

Examples

Connect to adb server and get the version

from adb.client import Client as AdbClient
# Default is "127.0.0.1" and 5037
client = AdbClient(host="127.0.0.1", port=5037)
print(client.version())

>>> 39

Connect to a device

from adb.client import Client as AdbClient
# Default is "127.0.0.1" and 5037
client = AdbClient(host="127.0.0.1", port=5037)
device = client.device("emulator-5554")

List all devices ( adb devices ) and install/uninstall an APK on all devices

from adb.client import Client as AdbClient

apk_path = "example.apk"

# Default is "127.0.0.1" and 5037
client = AdbClient(host="127.0.0.1", port=5037)
devices = client.devices()

for device in devices:
    device.install(apk_path)

# Check apk is installed
for device in devices:
    print(device.is_installed("example.package"))

# Uninstall
for device in devices:
    device.uninstall("example.package)

adb shell

from adb.client import Client as AdbClient
# Default is "127.0.0.1" and 5037
client = AdbClient(host="127.0.0.1", port=5037)
device = client.device("emulator-5554")
device.shell("echo hello world !")
def dump_logcat(connection):
    while True:
        data = connection.read(1024)
        if not data:
            break
        print(data.decode('utf-8')))

    connection.close()

from adb.client import Client as AdbClient
# Default is "127.0.0.1" and 5037
client = AdbClient(host="127.0.0.1", port=5037)
device = client.device("emulator-5554")
device.shell("logcat", handler=dump_logcat)

Screenshot

from adb.client import Client as AdbClient
client = AdbClient(host="127.0.0.1", port=5037)
device = client.device("emulator-5554")
result = device.screencap()
with open("screen.png", "wb") as fp:
    fp.write(result)

Push

from adb.client import Client as AdbClient
client = AdbClient(host="127.0.0.1", port=5037)
device = client.device("emulator-5554")

device.push("example.apk", "/sdcard/example.apk")

Pull

from adb.client import Client as AdbClient
client = AdbClient(host="127.0.0.1", port=5037)
device = client.device("emulator-5554")

device.shell("screencap -p /sdcard/screen.png")
device.pull("/sdcard/screen.png", "screen.png")

1.0.0 (2018-06-23)

  • First release on PyPI.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pure-python-adb-0.1.3.dev0.tar.gz (12.1 kB view details)

Uploaded Source

File details

Details for the file pure-python-adb-0.1.3.dev0.tar.gz.

File metadata

File hashes

Hashes for pure-python-adb-0.1.3.dev0.tar.gz
Algorithm Hash digest
SHA256 9256549336001e9a67a5cc5041d0777ff2d59368779a613d636f36fecb2ae4bd
MD5 d3c1a797cd89802ba7f8c8c606af0de9
BLAKE2b-256 ba87c6b5bc6f4b0d3064365b66b354e30c08fb971bdbc792c9c61ce8204d3375

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page