import subprocess ADB_PATH="adb" def adbdevices(adbpath=ADB_PATH): return set([device.split('\t')[0] for device in subprocess.check_output([adbpath, 'devices']).splitlines() if str(device).endswith('\tdevice')]) def adbdevicesa(adbpath=ADB_PATH): for device in subprocess.check_output([adbpath, 'devices']).splitlines(): #print(device) #print(type(device)) #print(device.decode('utf-8')) if "device" in device.decode('utf-8') and "List" not in device.decode('utf-8') : print(device.decode('utf-8')) #if str(device).endswith('\tdevice')]) def adbshell(command, serial=None, adbpath=ADB_PATH): args = [adbpath] if serial is not None: args.extend(['-s', serial]) args.extend(['shell', command]) return subprocess.check_output(args) def pmpath(pname, serial=None, adbpath=ADB_PATH): return adbshell('pm path {}'.format(pname), serial=serial, adbpath=adbpath) adbdevicesa()