androidtv.adb_manager.adb_manager_sync module

Classes to manage ADB connections.

  • ADBPythonSync utilizes a Python implementation of the ADB protocol.

  • ADBServerSync utilizes an ADB server to communicate with the device.

class androidtv.adb_manager.adb_manager_sync.ADBPythonSync(host, port, adbkey='', signer=None)[source]

Bases: object

A manager for ADB connections that uses a Python implementation of the ADB protocol.

Parameters:
  • host (str) – The address of the device; may be an IP address or a host name

  • port (int) – The device port to which we are connecting (default is 5555)

  • adbkey (str) – The path to the adbkey file for ADB authentication

  • signer (PythonRSASigner, None) – The signer for the ADB keys, as loaded by ADBPythonSync.load_adbkey()

property available

Check whether the ADB connection is intact.

Returns:

Whether or not the ADB connection is intact

Return type:

bool

close()[source]

Close the ADB socket connection.

connect(log_errors=True, auth_timeout_s=10.0, transport_timeout_s=1.0)[source]

Connect to an Android TV / Fire TV device.

Parameters:
  • log_errors (bool) – Whether errors should be logged

  • auth_timeout_s (float) – Authentication timeout (in seconds)

  • transport_timeout_s (float) – Transport timeout (in seconds)

Returns:

Whether or not the connection was successfully established and the device is available

Return type:

bool

static load_adbkey(adbkey)[source]

Load the ADB keys.

Parameters:

adbkey (str) – The path to the adbkey file for ADB authentication

Returns:

The PythonRSASigner with the key files loaded

Return type:

PythonRSASigner

pull(local_path, device_path)[source]

Pull a file from the device using the Python ADB implementation.

Parameters:
  • local_path (str) – The path where the file will be saved

  • device_path (str) – The file on the device that will be pulled

push(local_path, device_path)[source]

Push a file to the device using the Python ADB implementation.

Parameters:
  • local_path (str) – The file that will be pushed to the device

  • device_path (str) – The path where the file will be saved on the device

screencap()[source]

Take a screenshot using the Python ADB implementation.

Returns:

The screencap as a binary .png image

Return type:

bytes

shell(cmd)[source]

Send an ADB command using the Python ADB implementation.

Parameters:

cmd (str) – The ADB command to be sent

Returns:

The response from the device, if there is a response

Return type:

str, None

class androidtv.adb_manager.adb_manager_sync.ADBServerSync(host, port=5555, adb_server_ip='', adb_server_port=5037)[source]

Bases: object

A manager for ADB connections that uses an ADB server.

Parameters:
  • host (str) – The address of the device; may be an IP address or a host name

  • port (int) – The device port to which we are connecting (default is 5555)

  • adb_server_ip (str) – The IP address of the ADB server

  • adb_server_port (int) – The port for the ADB server

property available

Check whether the ADB connection is intact.

Returns:

Whether or not the ADB connection is intact

Return type:

bool

close()[source]

Close the ADB server socket connection.

Currently, this doesn’t do anything except set self._available = False.

connect(log_errors=True)[source]

Connect to an Android TV / Fire TV device.

Parameters:

log_errors (bool) – Whether errors should be logged

Returns:

Whether or not the connection was successfully established and the device is available

Return type:

bool

pull(local_path, device_path)[source]

Pull a file from the device using an ADB server.

Parameters:
  • local_path (str) – The path where the file will be saved

  • device_path (str) – The file on the device that will be pulled

push(local_path, device_path)[source]

Push a file to the device using an ADB server.

Parameters:
  • local_path (str) – The file that will be pushed to the device

  • device_path (str) – The path where the file will be saved on the device

screencap()[source]

Take a screenshot using an ADB server.

Returns:

The screencap as a binary .png image, or None if there was an IndexError exception

Return type:

bytes, None

shell(cmd)[source]

Send an ADB command using an ADB server.

Parameters:

cmd (str) – The ADB command to be sent

Returns:

The response from the device, if there is a response

Return type:

str, None

androidtv.adb_manager.adb_manager_sync.LOCK_KWARGS = {'timeout': 3.0}

Use a timeout for the ADB threading lock if it is supported

androidtv.adb_manager.adb_manager_sync._acquire(lock)[source]

Handle acquisition and release of a threading.Lock object with LOCK_KWARGS keyword arguments.

Parameters:

lock (threading.Lock) – The lock that we will try to acquire

Yields:

acquired (bool) – Whether or not the lock was acquired

Raises:

LockNotAcquiredException – Raised if the lock was not acquired