Exemplo n.º 1
0
def init_adb():
    device_id = os.getenv("ANDROID_SERIAL")
    global adb
    adb = ADB()
    adb.enable_debug()
    adb.set_adb_path()
    adb.set_target_device(device_id)
Exemplo n.º 2
0
def main():
    # creates the ADB object
    adb = ADB()

    # set ADB path, using a couple of popular addresses.
    try:
        adb.set_adb_path('~/android-sdk-linux/platform-tools/adb')
    except ADB.BadCall:
        adb.set_adb_path(r'C:\Android\android-sdk\platform-tools\adb.exe')

    print("Version: %s" % adb.get_version())

    print("Waiting for device...")
    adb.wait_for_device()

    dev = adb.get_devices()

    if len(dev) == 0:
        print("Unexpected error, may be you're a very fast guy?")
        return

    print("Selecting: %s" % dev[0])
    adb.set_target_device(dev[0])

    print("Executing 'ls' command")
    output, error = adb.shell_command('ls')

    if output:
        print("Output:\n  %s" % "\n  ".join(output))
    if error:
        print("Error:\n  %s" % error)
Exemplo n.º 3
0
def update_db():
	adb = ADB()
        adb.set_adb_path('adb')

	adb.connect_remote(smartphone_addr)

        cmd = "su -c 'cat /data/data/com.android.providers.telephony/databases/mmssms.db > /sdcard/mmssms.db'"
        adb.shell_command(cmd)

        adb.get_remote_file('/sdcard/mmssms.db','./')

        cmd = "su -c 'rm /sdcard/mmssms.db'"
        adb.shell_command(cmd)
Exemplo n.º 4
0
def main():
    # creates the ADB object
    adb = ADB()
    # set ADB path, using a couple of popular addresses.
    try:
        adb.set_adb_path('~/android-sdk-linux/platform-tools/adb')
    except ADB.BadCall:
        adb.set_adb_path(r'C:\Android\android-sdk\platform-tools\adb.exe')

    apps, error = adb.shell_command("pm list packages")
    for app in apps:
        path, error = adb.shell_command("pm path {}".format(app.split(':')[1]))
        print(("{}: {}".format(app, path)))
Exemplo n.º 5
0
def main():
    # creates the ADB object
    adb = ADB()
    # IMPORTANT: You should supply the absolute path to ADB binary
    if adb.set_adb_path(
            '/home/chema/.android-sdks/platform-tools/adb') is True:
        print("Version: %s" % adb.get_version())
    else:
        print("Check ADB binary path")

    print("Waiting for device...")
    adb.wait_for_device()
    err, dev = adb.get_devices()

    if len(dev) == 0:
        print("Unexpected error, may be you're a very fast guy?")
        return

    print("Selecting: %s" % dev[0])
    adb.set_target_device(dev[0])

    print("Executing 'ls' command")
    adb.shell_command('ls')

    print("Output:\n%s" % adb.get_output())
Exemplo n.º 6
0
def main():
    # creates the ADB object
    adb = ADB()
    # IMPORTANT: You should supply the absolute path to ADB binary 
    if adb.set_adb_path('/home/chema/.android-sdks/platform-tools/adb') is True:
        print "Version: %s" % adb.get_version()
    else:
        print "Check ADB binary path"
Exemplo n.º 7
0
def main():
    # creates the ADB object
    adb = ADB()
    # IMPORTANT: You should supply the absolute path to ADB binary
    if adb.set_adb_path(
            '/home/chema/.android-sdks/platform-tools/adb') is True:
        print("Version: %s" % adb.get_version())
    else:
        print("Check ADB binary path")
Exemplo n.º 8
0
def main():
    # creates the ADB object
    adb = ADB()
    # IMPORTANT: You should supply the absolute path to ADB binary
    if adb.set_adb_path('/usr/bin/adb') is True:
        print("Version: %s" % adb.get_version())
    else:
        print("Check ADB binary path")

    apps = adb.shell_command("pm list packages")
    for app in apps:
        path = adb.shell_command("pm path {}".format(app.split(':')[1]))
        print("{}: {}".format(app, path))
Exemplo n.º 9
0
def main():
    # creates the ADB object
    adb = ADB()
    # IMPORTANT: You should supply the absolute path to ADB binary 
    if adb.set_adb_path('/usr/bin/adb') is True:
        print ("Version: %s" % adb.get_version())
    else:
        print ("Check ADB binary path")

    apps = adb.shell_command("pm list packages")
    for app in apps:
        path = adb.shell_command("pm path {}".format(app.split(':')[1]))
        print ("{}: {}".format(app,path))
def get_user_plane_state():
    '''
    checks aether user plane connectivity with ping to 8.8.8.8
    '''
    adb = ADB()
    if adb.set_adb_path(CONF.adb.path) is False:
        err = "[ERROR]: " + CONF.adb.path + " not found"
        return State.error, err

    success, result = _run_adb_shell(adb, ADB_GET_COMMANDS['ping_result'])
    if not success or result is None:
        return State.error, result

    state = State.connected if result == "0" else State.disconnected
    return state, None
Exemplo n.º 11
0
def main():
    # creates the ADB object using the system adb
    adb = ADB()
    print("Version: %s" % adb.get_version())

    # Or create ADB object with specific version of adb
    path = '/home/chema/.android-sdks/platform-tools/adb'
    adb = ADB(path)

    if adb.set_adb_path(path):
        print("Version: %s" % adb.get_version())
    else:
        print("Check ADB binary path")
        return

    print(adb.get_devices())
def get_control_plane_state():
    '''
    check aether control plane works by toggling airplane mode
    '''
    adb = ADB()
    if adb.set_adb_path(CONF.adb.path) is False:
        err = "[ERROR]: " + CONF.adb.path + " not found"
        return State.error, err

    # get the current airplane mode
    success, result = _run_adb_shell(adb, ADB_GET_COMMANDS['apn_mode'])
    if not success or result is None:
        return State.error, result
    apn_mode_on = True if result == "1" else False

    # toggle the airplane mode
    for command in ADB_APN_COMMANDS.values():
        success, result = _run_adb_shell(adb, command)
        if not success:
            return State.error, result
    if not apn_mode_on:
        success, result = _run_adb_shell(adb, ADB_APN_COMMANDS['toggle'])
        if not success:
            return State.error, result

    # additional wait for UE to fully attach
    time.sleep(3)

    # get connection state
    state = State.connecting.value
    while state == State.connecting.value:
        success, result = _run_adb_shell(adb, ADB_GET_COMMANDS['lte_state'])
        if not success or result is None:
            return State.error, result
        state = result.split("=")[1]

    if not State.has_value(state):
        return State.error, None
    return State(state), None
Exemplo n.º 13
0
def main():
    # creates the ADB object
    adb = ADB()
    # IMPORTANT: You should supply the absolute path to ADB binary 
    if adb.set_adb_path('/home/chema/.android-sdks/platform-tools/adb') is True:
        print "Version: %s" % adb.get_version()
    else:
        print "Check ADB binary path"
    
    print "Waiting for device..."
    adb.wait_for_device()
    err,dev = adb.get_devices()
    
    if len(dev) == 0:
        print "Unexpected error, may be you're a very fast guy?"
        return
    
    print "Selecting: %s" % dev[0]
    adb.set_target_device(dev[0])
    
    print "Executing 'ls' command"
    adb.shell_command('ls')
    
    print "Output:\n%s" % adb.get_output()
Exemplo n.º 14
0
def main():
	APKTOOL = "/home/example/Downloads/apktool_2.0.0rc3.jar"  # APKTOOL Directory
	ADBTOOL = "/usr/bin/adb" # ADB Directory
	print "#################################################################################"
	print "#                                APKmole V1.0                                   #"
	print "# ADB & APKTool wrapper for application analysis located on an android device   #"
	print "# Author: Stas Volfus                                                           #"
	print "# the author isn't responsible for any damage caused by using this tool         #"                                                                              #"
	print "#################################################################################"
	print "\nADB Path: "+ADBTOOL
	print "APKtool Path: "+APKTOOL    
	print "\n\n[*] Setting up ADB.."
	adb = ADB()
	adb.set_adb_path(ADBTOOL) 	# path to adb..
	print "[*] Checking APKTool path.." ,
	if os.path.isfile(APKTOOL) is False:
		print R+"\t[FAILED] - path not found."+W
		exit(-1)
	print G+"\t[OK]"+W
	print "[*] Checking ADB path.." ,
	if adb.check_path() is False:
		print "\t"+R+"\t[FAILED] - ADB path doesn't exists..\n"+W
		exit(-2)
	print "\t"+G+"[OK]"+W
	print "[*] Restarting ADB server.." ,
	adb.restart_server()
	if adb.lastFailed():
		print "\t"+R+"[ERROR]"+W
		exit(-3)
	print "\t"+G+"[OK]"+W
	dev = 0
	while dev is 0:
		print "[*] Detecting devices..." ,
		error,devices = adb.get_devices()
		if error is 2:
			print R+"[-] You haven't enought permissions."+W
			exit(-3)
		print "\t"+G+"[OK]"+W
		dev = 1
		if len(devices) == 0:
			print C+"[-] No devices detected! waiting for devices.."+W
			adb.wait_for_device()
			error,devices = adb.get_devices()
			continue
	# devices...
	i = 0
	for dev in devices:
		print "\t%d: %s" % (i,dev)
		i += 1
	#more than one device..
	if i > 1:
		dev = i + 1
		while dev < 0 or dev > int(i - 1):
			print "\n[+] Select target device [0-%d]: " % int(i - 1) ,
			dev = int(stdin.readline())
	else:
		dev = 0
	try:
		adb.set_target_device(devices[dev])
	except Exception,e:
		print R+"\n[-] Error:\t- ADB: %s\t - Python: %s" % (adb.get_error(),e.args)
		exit(-5)
Exemplo n.º 15
0
        for size in self.__size_list:
            loop = 0
            print('=== %s ===\n' % size)
            fd.writelines('=== %s Size ===\n' % size)
            while loop < self.__times:
                self.__adb.shell_command('echo 3 > /proc/sys/vm/drop_caches')
                perf_out = self.__adb.shell_command(
                    '/data/lmdd if=%s of=internal move=%s fsync=1' %
                    (self.__target_path, size))
                print(perf_out)
                fd.writelines(perf_out)
                loop = loop + 1


if __name__ == '__main__':
    adb = ADB()
    adb.set_adb_path('/home/bigzhang/Android/Sdk/platform-tools/adb')
    # verity ADB path
    if adb.check_path() is False:
        print "ERROR"
        exit(-2)

    tester = LmddSpeed(None, None, adb)
    input_file = open('lmdd_perf_.log', 'wb+')

    tester.lmdd_header(input_file)
    tester.prepare_env()
    tester.lmdd_write(input_file)
    tester.lmdd_read(input_file)
    tester.finish()
Exemplo n.º 16
0
def main():
    APKTOOL = "/home/example/Downloads/apktool_2.0.0rc3.jar"  # APKTOOL Directory
    ADBTOOL = "/usr/bin/adb"  # ADB Directory
    print "#################################################################################"
    print "#                                APKmole V1.0                                   #"
    print "# ADB & APKTool wrapper for application analysis located on an android device   #"
    print "# Author: Stas Volfus                                                           #"
    print "# the author isn't responsible for any damage caused by using this tool         #"  #"
    print "#################################################################################"
    print "\nADB Path: " + ADBTOOL
    print "APKtool Path: " + APKTOOL
    print "\n\n[*] Setting up ADB.."
    adb = ADB()
    adb.set_adb_path(ADBTOOL)  # path to adb..
    print "[*] Checking APKTool path..",
    if os.path.isfile(APKTOOL) is False:
        print R + "\t[FAILED] - path not found." + W
        exit(-1)
    print G + "\t[OK]" + W
    print "[*] Checking ADB path..",
    if adb.check_path() is False:
        print "\t" + R + "\t[FAILED] - ADB path doesn't exists..\n" + W
        exit(-2)
    print "\t" + G + "[OK]" + W
    print "[*] Restarting ADB server..",
    adb.restart_server()
    if adb.lastFailed():
        print "\t" + R + "[ERROR]" + W
        exit(-3)
    print "\t" + G + "[OK]" + W
    dev = 0
    while dev is 0:
        print "[*] Detecting devices...",
        error, devices = adb.get_devices()
        if error is 2:
            print R + "[-] You haven't enought permissions." + W
            exit(-3)
        print "\t" + G + "[OK]" + W
        dev = 1
        if len(devices) == 0:
            print C + "[-] No devices detected! waiting for devices.." + W
            adb.wait_for_device()
            error, devices = adb.get_devices()
            continue
    # devices...
    i = 0
    for dev in devices:
        print "\t%d: %s" % (i, dev)
        i += 1
    #more than one device..
    if i > 1:
        dev = i + 1
        while dev < 0 or dev > int(i - 1):
            print "\n[+] Select target device [0-%d]: " % int(i - 1),
            dev = int(stdin.readline())
    else:
        dev = 0
    try:
        adb.set_target_device(devices[dev])
    except Exception, e:
        print R + "\n[-] Error:\t- ADB: %s\t - Python: %s" % (adb.get_error(),
                                                              e.args)
        exit(-5)
Exemplo n.º 17
0
def main():

    adb = ADB()

    # set ADB path
    adb.set_adb_path('~/android-sdk-linux/platform-tools/adb')

    print("[+] Using PyADB version %s" % adb.pyadb_version())

    # verity ADB path
    print("[+] Verifying ADB path...", )
    if adb.check_path() is False:
        print("ERROR")
        exit(-2)
    print("OK")

    # print(ADB Version)
    print("[+] ADB Version: %s" % adb.get_version())

    print("")

    # restart server (may be other instances running)
    print("[+] Restarting ADB server...")
    adb.restart_server()
    if adb.last_failed():
        print("\t- ERROR\n")
        exit(-3)

    # get detected devices
    dev = 0
    while dev is 0:
        print("[+] Detecting devices...", )
        error, devices = adb.get_devices()

        if error is 1:
            # no devices connected
            print("No devices connected")
            print("[+] Waiting for devices...")
            adb.wait_for_device()
            continue
        elif error is 2:
            print("You haven't enought permissions!")
            exit(-3)

        print("OK")
        dev = 1

    # this should never be reached
    if len(devices) == 0:
        print("[+] No devices detected!")
        exit(-4)

    # show detected devices
    i = 0
    for dev in devices:
        print("\t%d: %s" % (i, dev))
        i += 1

    # if there are more than one devices, ask to the user to choose one of them
    if i > 1:
        dev = i + 1
        while dev < 0 or dev > int(i - 1):
            print("\n[+] Select target device [0-%d]: " % int(i - 1), )
            dev = int(stdin.readline())
    else:
        dev = 0

    # set target device
    try:
        adb.set_target_device(devices[dev])
    except Exception as e:
        print("\n[!] Error:\t- ADB: %s\t - Python: %s" %
              (adb.get_error(), e.args))
        exit(-5)

    print("\n[+] Using \"%s\" as target device" % devices[dev])

    # check if 'su' binary is available
    print("[+] Looking for 'su' binary: ", )
    supath = adb.find_binary("su")

    if supath is not None:
        print("%s" % supath)
    else:
        print("Error: %s" % adb.get_error())

    # 'su' binary has been found
    if supath is not None:
        print("[+] Checking if 'su' binary can give root access:")
        rootid = adb.shell_command('%s -c id' % supath)
        if adb.last_failed() is False and 'root' in rootid.replace(
                '(', ')').split(')'):  # it can provide root privileges
            print("\t- Yes")
            get_whatsapp_root(adb, supath)
        else:  # only have normal-user
            print("\t- No: %s" % adb.get_error())
            get_whatsapp_nonroot(adb)
    else:
        get_whatsapp_nonroot(adb)

    exit(0)
Exemplo n.º 18
0
    parser.add_option('-d', '--dest', dest = "target",
                      help = "The target test path, data or sdcard or sdcard1",
                      type = "string")

    (options, args) = parser.parse_args()

    # get adb path for config file.
    adb_conf = open('adb.conf', 'r')
    adbpath = adb_conf.readlines()
    adb_conf.close()
    if adbpath == []:
        print "Please config ADB PATH!"
        exit(0)
    adb = ADB()
    adb.set_adb_path(adbpath[0])
    # verity ADB path
    if adb.check_path() is False:
        print "ERROR: ADB PATH NOT Correct."
        exit(-2)

    # get detected devices
    dev = 0
    while dev is 0:
        print "Detecting devices..." ,
        error,devices = adb.get_devices()

        if len(devices) == 0:
            print "[+] No devices detected!"
            print "Waiting for devices..."
            adb.wait_for_device()
Exemplo n.º 19
0
def main():

    adb = ADB()

    # set ADB path
    adb.set_adb_path('~/android-sdk-linux/platform-tools/adb')

    print("[+] Using PyADB version %s" % adb.pyadb_version())

    # verity ADB path
    print("[+] Verifying ADB path...",)
    if adb.check_path() is False:
        print("ERROR")
        exit(-2)
    print("OK")

    # print(ADB Version)
    print("[+] ADB Version: %s" % adb.get_version())

    print("")

    # restart server (may be other instances running)
    print("[+] Restarting ADB server...")
    adb.restart_server()
    if adb.last_failed():
        print("\t- ERROR\n")
        exit(-3)

    # get detected devices
    dev = 0
    while dev is 0:
        print("[+] Detecting devices..." ,)
        error,devices = adb.get_devices()

        if error is 1:
            # no devices connected
            print("No devices connected")
            print("[+] Waiting for devices...")
            adb.wait_for_device()
            continue
        elif error is 2:
            print("You haven't enought permissions!")
            exit(-3)

        print("OK")
        dev = 1

    # this should never be reached
    if len(devices) == 0:
        print("[+] No devices detected!")
        exit(-4)

    # show detected devices
    i = 0
    for dev in devices:
        print("\t%d: %s" % (i,dev))
        i += 1

    # if there are more than one devices, ask to the user to choose one of them
    if i > 1:
        dev = i + 1
        while dev < 0 or dev > int(i - 1):
            print("\n[+] Select target device [0-%d]: " % int(i - 1) ,)
            dev = int(stdin.readline())
    else:
        dev = 0

    # set target device
    try:
        adb.set_target_device(devices[dev])
    except Exception as e:
        print("\n[!] Error:\t- ADB: %s\t - Python: %s" % (adb.get_error(),e.args))
        exit(-5)

    print("\n[+] Using \"%s\" as target device" % devices[dev])

    # check if 'su' binary is available
    print("[+] Looking for 'su' binary: ",)
    supath = adb.find_binary("su")

    if supath is not None:
        print("%s" % supath)
    else:
        print("Error: %s" % adb.get_error())

    # 'su' binary has been found
    if supath is not None:
        print("[+] Checking if 'su' binary can give root access:")
        rootid = adb.shell_command('%s -c id' % supath)
        if adb.last_failed() is False and 'root' in rootid.replace('(',')').split(')'): # it can provide root privileges
            print("\t- Yes")
            get_whatsapp_root(adb,supath)
        else: # only have normal-user
            print("\t- No: %s" % adb.get_error())
            get_whatsapp_nonroot(adb)
    else:
        get_whatsapp_nonroot(adb)

    exit(0)
Exemplo n.º 20
0
Arquivo: adb.py Projeto: bigzz/moniter
def main():

    adb = ADB()

    # set ADB path
    adb.set_adb_path('/home/bigzhang/Android/Sdk/platform-tools/adb')

    print "[+] Using PyADB version %s" % adb.pyadb_version()

    # verity ADB path
    print "[+] Verifying ADB path...",
    if adb.check_path() is False:
        print "ERROR"
        exit(-2)
    print "OK"

    # print ADB Version
    print "[+] ADB Version: %s" % adb.get_version()

    print ""

    # restart server (may be other instances running)
    print "[+] Restarting ADB server..."
    adb.restart_server()
    if adb.lastFailed():
        print "\t- ERROR\n"
        exit(-3)

    # get detected devices
    dev = 0
    while dev is 0:
        print "[+] Detecting devices..." ,
        error,devices = adb.get_devices()

        if error is 1:
            # no devices connected
            print "No devices connected"
            print "[+] Waiting for devices..."
            adb.wait_for_device()
            continue
        elif error is 2:
            print "You haven't enought permissions!"
            exit(-3)

        print "OK"
        dev = 1

    # this should never be reached
    if len(devices) == 0:
        print "[+] No devices detected!"
        exit(-4)

    # show detected devices
    i = 0
    for dev in devices:
        print "\t%d: %s" % (i,dev)
        i += 1

    # if there are more than one devices, ask to the user to choose one of them
    if i > 1:
        dev = i + 1
        while dev < 0 or dev > int(i - 1):
            print "\n[+] Select target device [0-%d]: " % int(i - 1) ,
            dev = int(stdin.readline())
    else:
        dev = 0

    # set target device
    try:
        adb.set_target_device(devices[dev])
    except Exception,e:
        print "\n[!] Error:\t- ADB: %s\t - Python: %s" % (adb.get_error(),e.args)
        exit(-5)
Exemplo n.º 21
0
    def lmdd_read(self, fd):
        fd.writelines('=============== lmdd read test ===============\n')
        for size in self.__size_list:
            loop = 0
            print('=== %s ===\n' %size)
            fd.writelines('=== %s Size ===\n' %size)
            while loop < self.__times:
                self.__adb.shell_command('echo 3 > /proc/sys/vm/drop_caches')
                perf_out = self.__adb.shell_command('/data/lmdd if=/data/dumb of=internal move=%s fsync=1' % size)
                print(perf_out)
                fd.writelines(perf_out)
                loop = loop + 1

if __name__ == '__main__':
    adb = ADB()
    adb.set_adb_path('/home/bigzhang/Android/Sdk/platform-tools/adb')
    # verity ADB path
    if adb.check_path() is False:
        print "ERROR"
        exit(-2)

    tester = LmddSpeed(None,None,adb)
    input_file = open('lmdd_perf_.log', 'wb+')

    tester.lmdd_header(input_file)
    tester.prepare_env()
    tester.lmdd_write(input_file)
    tester.lmdd_read(input_file)
    tester.finish()
Exemplo n.º 22
0
def main():
    logging.basicConfig(level=logging.WARNING)
    adb = ADB()

    # set ADB path, using a couple of popular addresses.
    try:
        adb.set_adb_path('~/android-sdk-linux/platform-tools/adb')
    except ADB.BadCall:
        adb.set_adb_path(r'C:\Android\android-sdk\platform-tools\adb.exe')

    print("[+] Using PyADB version %s" % adb.pyadb_version())

    # verity ADB path
    print("[+] Verifying ADB path...", end='')
    if not adb.check_path():
        print("ERROR")
        exit(-2)
    print("OK")

    # print ADB Version
    print("[+] ADB Version: %s" % adb.get_version())

    print("")

    # restart server (may be other instances running)
    print("[+] Restarting ADB server...")
    try:
        adb.restart_server()
    except Exception as err:
        print("\t- ERROR\n", err)
        exit(-3)

    # get detected devices
    while True:
        print("[+] Detecting devices...", end=' ')
        try:
            devices = adb.get_devices()
        except adb.PermissionsError:
            devices = None
            print("You haven't enough permissions!")
            exit(-3)

        if devices:
            print("OK")
            break

        # no devices connected
        print("No devices connected")
        print("[+] Waiting for devices...")
        adb.wait_for_device()

    # this should never be reached
    if len(devices) == 0:
        print("[+] No devices detected!")
        exit(-4)

    # show detected devices
    i = 0
    for dev in devices:
        print("\t%d: %s" % (i, dev))
        i += 1

    # if there are more than one devices, ask to the user to choose one of them
    if i > 1:
        dev = i + 1
        while dev < 0 or dev > int(i - 1):
            print("\n[+] Select target device [0-%d]: " % int(i - 1), end=' ')
            dev = int(stdin.readline())
    else:
        dev = 0

    # set target device
    try:
        adb.set_target_device(devices[dev])
    except Exception as e:
        print("\n[!] Error: " % e)
        exit(-5)

    print("\n[+] Using \"%s\" as target device" % devices[dev])

    # check if 'su' binary is available
    print("[+] Looking for 'su' binary: ", end=' ')

    try:
        supath = adb.find_binary("su")
    except ADB.AdbException as err:
        if str(err) != "'su' was not found":
            print("Error: %s" % err)
            exit(-6)
        supath = None

    if supath is not None:
        # 'su' binary has been found

        print("[+] Checking if 'su' binary can give root access:")
        try:
            rootid = adb.shell_command('%s -c id' % supath)
            if 'root' in rootid.replace('(', ')').split(')'):
                # it can provide root privileges
                print("\t- Yes")
                get_whatsapp_root(adb, supath)
            else:
                print("\t- No: %s" % rootid)
                get_whatsapp_nonroot(adb)
        except adb.AdbException as err:
            print("\t- No: %s" % err)
            get_whatsapp_nonroot(adb)
    else:
        print("Not found.")
        get_whatsapp_nonroot(adb)

    exit(0)
Exemplo n.º 23
0
def main():

    adb = ADB()

    # set ADB path
    adb.set_adb_path('~/android-sdk-linux/platform-tools/adb')

    print "[+] Using PyADB version %s" % adb.pyadb_version()

    # verity ADB path
    print "[+] Verifying ADB path...",
    if adb.check_path() is False:
        print "ERROR"
        exit(-2)
    print "OK"

    # print ADB Version
    print "[+] ADB Version: %s" % adb.get_version()

    print ""

    # restart server (may be other instances running)
    print "[+] Restarting ADB server..."
    adb.restart_server()
    if adb.lastFailed():
        print "\t- ERROR\n"
        exit(-3)

    # get detected devices
    dev = 0
    while dev is 0:
        print "[+] Detecting devices...",
        error, devices = adb.get_devices()

        if error is 1:
            # no devices connected
            print "No devices connected"
            print "[+] Waiting for devices..."
            adb.wait_for_device()
            continue
        elif error is 2:
            print "You haven't enought permissions!"
            exit(-3)

        print "OK"
        dev = 1

    # this should never be reached
    if len(devices) == 0:
        print "[+] No devices detected!"
        exit(-4)

    # show detected devices
    i = 0
    for dev in devices:
        print "\t%d: %s" % (i, dev)
        i += 1

    # if there are more than one devices, ask to the user to choose one of them
    if i > 1:
        dev = i + 1
        while dev < 0 or dev > int(i - 1):
            print "\n[+] Select target device [0-%d]: " % int(i - 1),
            dev = int(stdin.readline())
    else:
        dev = 0

    # set target device
    try:
        adb.set_target_device(devices[dev])
    except Exception, e:
        print "\n[!] Error:\t- ADB: %s\t - Python: %s" % (adb.get_error(),
                                                          e.args)
        exit(-5)