def has_fastboot_serial(serial, iterations=10): local_connection = connection_local() for i in range(iterations): (out, err) = local_connection.run_cmd(command="fastboot devices") if serial in out: return True time.sleep(1) return False
def get_var(var, serial=None): if serial: fastboot_cmd = "fastboot -s {0} getvar {1} 2>&1".format(serial, var) else: fastboot_cmd = "fastboot getvar {0} 2>&1".format(var) local_connection = connection_local() # Get the output of the command value = local_connection.run_cmd(command=fastboot_cmd) # Get the var value (if the fastboot var exists) var_value = [i for i in value if var in i and "UNKNOWN COMMAND" not in i] if len(var_value): return var_value[0].split('\n')[0].split(':')[-1].strip().lower() return None
def get_connected_android_devices(): local_connection = connection_local() connected_devices = {} connected_devices['android'] = local_connection.get_adb_devices( device_state="device", charging=False) connected_devices['charge_os'] = local_connection.get_adb_devices( device_state="device", charging=True) connected_devices['ptest'] = local_connection.get_adb_devices( device_state="device", ptest=True) connected_devices['recovery'] = local_connection.get_adb_devices( device_state="recovery") connected_devices['fastboot'] = local_connection.get_fastboot_devices() connected_devices['crashmode'] = local_connection.get_crashmode_devices() return connected_devices
def is_uiautomator_started(serial=None): """ description: checks if uiautomator RPC server is started on the device tags: utils, adb, android, version """ if serial: adb_connection = connection_adb(serial=serial) else: adb_connection = connection_adb() local_connection = connection_local() stdout, stderr = local_connection.run_cmd(command="curl -d \ '{\"jsonrpc\":\"2.0\",\ \"method\":\"deviceInfo\",\ \"id\":1}' \ localhost:9008/jsonrpc/0") return "android" in stdout
def wget(url, user=None, passwd=None, path_to_download=None, aditional_params=None, live_print=False, mode="sync"): local_connection = connection_local() wget_cmd = "wget " if user is not None: wget_cmd += " --user={0}".format(user) if passwd is not None: wget_cmd += " --password={0}".format(passwd) wget_cmd += " --no-check-certificate " if aditional_params is not None: wget_cmd += "{0} ".format(aditional_params) wget_cmd += url if path_to_download is not None: local_connection.cd(path=path_to_download) proc = subprocess.Popen(wget_cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) if mode == "async": return proc if live_print: while True: out = proc.stderr.readline() if "Not Found" in out: print out, return False if proc.poll() is not None: return proc print out, else: (stdout, stderror) = proc.communicate(input=None) return (stdout, stderror)
def __init__(self, **kwargs): self.local_connection = connection_local(**kwargs) base_step.__init__(self, **kwargs)
def get_fastboot_devices(): local_connection = connection_local() return local_connection.get_fastboot_devices()
def get_adb_devices(device_state="device"): local_connection = connection_local() return local_connection.get_adb_devices(device_state=device_state)
def has_adb_serial(serial, device_state="device"): local_connection = connection_local() return local_connection.check_adb(serial=serial, device_state=device_state)
def get_command_output(command, to_stderr=False): local_connection = connection_local() return local_connection.parse_cmd_output(cmd=command, to_stderr=to_stderr)