Exemplo n.º 1
0
def kernel_version():
    client = AdbClient(host="127.0.0.1", port=5037)
    device = client.device(options.device)
    result = device.shell("uname -r")
    #result = result.encode('ascii','ignore')
    logging.info(" kernel_version() : result is %s", result)
    result = result.split(".")
    ver = result[0] + '.' + result[1]
    ver = float(ver)

    offset_selinux = []
    # case kernel version is <= 3.10
    if ver <= 3.10:
        offset_to_comm = 0x288
        offset_to_parent = 0xe0
        offset_selinux.append(0xC0A77548)
        offset_selinux.append(0xC0A7754C)
        offset_selinux.append(0xC0A77550)
        ps_cmd = "ps"

    # case kernel version is > 3.10 et <=3.18
    elif ver > 3.10 and ver <= 3.18:
        offset_to_comm = 0x444
        offset_to_parent = 0xe0
        offset_selinux.append(0xC0C4F288)
        offset_selinux.append(0xC0C4F28C)
        offset_selinux.append(0XC0C4F280)
        ps_cmd = "ps -A"

    else:
        logging.info("Sorry. Android kernel version %s not supported yet", ver)
        raise NotImplementedError(
            "Sorry. Android kernel version %s not supported yet", ver)
    return ver, offset_to_comm, offset_to_parent, offset_selinux, ps_cmd
Exemplo n.º 2
0
def main():
    try:
        from adb.client import Client as AdbClient
        import sys
        if len(sys.argv) < 3:
            print(
                "Error: Syntax: Python logger.py filename [cache clear (Y/N)]")
        apps = [
            "com.android.chrome", "com.yandex.browser", "com.microsoft.emmx",
            "org.mozilla.firefox"
        ]

        client = AdbClient(host="127.0.0.1", port=5037)
        devices = client.devices()
        isCacheClear = sys.argv[2]
        for device in devices:
            if isCacheClear == 'Y':
                for app in apps:
                    clearAppFromCache(app, device)
            clearLog(device)
            saving_log = save_log(sys.argv[1])
            time = 30
            for i in apps:
                open_app(i, time)
            saving_log.wait()
    except Exception as e:
        print("Error in  main!")
Exemplo n.º 3
0
    def __init__(self, interval=0):
        super(Clicking, self).__init__()
        self.interval = interval
        self.client = AdbClient(host="127.0.0.1", port=5037)
        self.device = self.client.devices()[0]

        self.x, self.y = None, None
Exemplo n.º 4
0
 def __init__(self):
     client = AdbClient(host="127.0.0.1", port=5037)
     devices = client.devices()
     if len(devices) <= 0:
         raise ValueError("No device connected")
     self.device = client.device(str(devices[0].get_serial_no()))
     self.settings = Settings("config.cfg")
     self.adbscreen = ADBScreen(self.device)
Exemplo n.º 5
0
 def adb_connect(self):
     try:
         client = AdbClient(host="127.0.0.1", port=5037)
         self.adb_device = client.devices()[0]
     except Exception as e:
         self.adb_device = ""
         self.err = str(e)
     return self.adb_device
Exemplo n.º 6
0
 def __init__(self):
     # Default is "127.0.0.1" and 5037
     client = AdbClient(host="127.0.0.1", port=5037)
     self.device = client.device("ZY2239Q9MP")
     self.GREEN = '\033[92m'
     self.BLUE = '\033[94m'
     self.YELLOW = '\033[93m'
     self.RED = '\033[91m'
     self.ENDC = '\033[0m'
def setConfig(cfg):
    global config_dict, movementCount, client, device
    config_dict = cfg
    print(config_dict)
    movementCount = random.choice(
        range(config_dict["movement"]["stepsMin"],
              config_dict["movement"]["stepsMax"], 1))
    client = AdbClient(host=config_dict["device"]["host"],
                       port=config_dict["device"]["port"])
    device = client.device(config_dict["device"]["name"])
Exemplo n.º 8
0
def check_process_is_running(process):
    client = AdbClient(host="127.0.0.1", port=5037)
    device = client.device("emulator-5554")
    ps = device.shell("ps")
    if process in ps:
        logging.debug("[+] OK. %s is running" %(process))
    else:
        logging.debug("[+] NOK. It seems like %s is not running..." %(process))
        logging.debug("[+] Android_Emuroot stopped")
        exit(1)
Exemplo n.º 9
0
def get_devices():
    adb = subprocess.Popen(
        ['adb', '-P', str(config['adb_port']), 'start-server'],
        stdout=subprocess.DEVNULL,
        stderr=subprocess.DEVNULL)
    client = AdbClient(host="127.0.0.1", port=config['adb_port'])
    print(client)
    devs = []
    for d in client.devices():
        devs.append(AndroidDevice(d))
    return devs
Exemplo n.º 10
0
 def __init__(self, init=False):
     client = AdbClient(host="127.0.0.1", port=5037)
     devices = client.devices()
     if len(devices) <= 0:
         raise ValueError("No device connected")
     self.device = client.device(str(devices[0].get_serial_no()))
     self.settings = Settings("config.cfg", init=init)
     self.adbscreen = ADBScreen(self.device)
     self.ENDC = '\033[0m'
     self.WARNING = '\033[93m'
     self.BLUE = '\033[94m'
     self.RED = '\033[91m'
     pytesseract.pytesseract.tesseract_cmd = self.settings.tesseract_dir
Exemplo n.º 11
0
    def __init__(self, adb_ip, adb_port, config):
        """
        Starts the connection with the adb server.
        """
        try:
            self.__adb = AdbClient(host=adb_ip, port=adb_port)
            self.__adb.devices()
        except Exception:
            with colored(colors.RED):
                print "adb server isn't running, opening."
                subprocess.Popen([config.get("adb", "adb_location"), "start-server"])

        self.__config = config
Exemplo n.º 12
0
def screenshot(deviceAddress='ce031713383080fa0c',
               destFolder='screenshot',
               imageName="ADBScreenshot.png"):
    client = AdbClient(host="127.0.0.1", port=5037)
    device = client.device(deviceAddress)

    result = device.screencap()

    try:
        with open(destFolder + "/" + imageName, "wb") as fp:
            fp.write(result)
    except FileNotFoundError:
        print("could not file file or folder")
Exemplo n.º 13
0
    def __init__(self, ini_name,init = False):
        #Loading config.cfg
        cparser = configparser.ConfigParser()
        dirname = os.path.dirname(__file__)
        ini_file = Path(os.path.join(dirname, "..\conf\\"+ini_name))

        if ini_file.is_file():
            cparser.read(ini_file)
        else:
            raise ValueError("Config file name not valid")
        self.language = "DE"
        #loads the config information
        try:
            self.language = cparser.get("custom", "language")
            self.speed_multi = cparser.getfloat("custom", "speed_multi")
            self.selected_raid = cparser.get("custom", "selected_raid")
            self.round_robin_raids = eval(cparser.get("custom", "round_robin_raids"), {}, {})
            self.round_robin = cparser.getboolean("custom", "round_robin")
            self.tesseract_dir = cparser.get("custom", "tesseract_directory")
            self.rounds = cparser.getint("custom", "rounds")
            self.rounds_per_raid = cparser.getint("custom", "rounds_per_raid")
            self.debug = cparser.getboolean("custom", "debug")
            self.autodetect_buttons = cparser.get("screen", "autodeteckt_buttons")
            self.taps_resultscreen = cparser.getint("custom", "taps_resultscreen")
            self.auto_remove_pkmn = cparser.getboolean("custom", "auto_remove_pkmn")
        except Exception as e:
            raise ValueError("Couldn´t read config file")

        try:
            with open(os.path.join(dirname, '../conf/languages.json')) as json_file:
                data = json.load(json_file)
                self.language_pack = data[self.language]
        except Exception:
            raise ValueError("Language not found. Check your config file and update the languages.json")

        client = AdbClient(host="127.0.0.1", port=5037)
        devices = client.devices()
        if len(devices) <= 0:
            raise ValueError("No device connected")

        adbscreen = ADBScreen(client.device(str(devices[0].get_serial_no())))
        if not init:
            try:
                with open(os.path.join(dirname, '../conf/screens/'+str(adbscreen.get_model_name()+".json"))) as json_file:
                    data = json.load(json_file)
                    self.screen = data
            except Exception:
                raise ValueError("Screenconfig not found. Start the python script with the --init argument to create a config.")

            self.check_screen_values()
Exemplo n.º 14
0
 def get(self):
     from adb.client import Client as AdbClient
     client = AdbClient()
     devices = client.devices()
     ret = {"success": True, "devices": []}
     if not devices:
         self.write({"success": False})
         return
     for device in devices:
         data = {}
         data["serial"] = device.serial
         data["status"] = device.get_state()
         if device.shell("getprop ro.arch").strip() == "x86":
             data["emulator"] = True
         else:
             data["emulator"] = False
         ret["devices"].append(data)
     self.write(ret)
Exemplo n.º 15
0
    def get(self):
        from uiautomator2.__main__ import _init_with_serial
        from uiautomator2.version import __apk_version__, __atx_agent_version__
        print("start...")
        from adb.client import Client as AdbClient
        client = AdbClient()
        devices = client.devices()
        for d in devices:
            print(d.serial)
        if not devices:
            self.write({
                "success": False,
                "serial": "",
                "deviceId": "",
            })
            return
        for d in devices:
            serial = d.get_serial_no()
            if d.get_state() != 'device':
                print("Skip invalid device: %s %s", serial, d.get_state())
                continue
            print("Init device %s", serial)
            # todo:初始化代码优化
            try:
                device = _AndroidDevice(serial)

            except BaseException:
                _init_with_serial(serial=serial,
                                  apk_version=__apk_version__,
                                  agent_version=__atx_agent_version__,
                                  server=None,
                                  reinstall=False)
                device = _AndroidDevice(serial)
            # serial = device._d.wlan_ip + ":7912"
            id = str(uuid.uuid4())
            cached_devices[id] = device
            socket_url = device._d._host + ":" + str(device._d._port)
            self.write({
                "success": True,
                "serial": serial,
                "deviceId": id,
                "socket_url": socket_url
            })
            return
Exemplo n.º 16
0
def kernel_version(): 
    client = AdbClient(host="127.0.0.1", port=5037)
    device = client.device("emulator-5554")
    result = device.shell("uname -r")
    result = result.encode('ascii','ignore')
    logging.debug(" kernel_version() : result is %s", result)
    result = result.split('.')
    ver = result[0]+'.'+result[1]
    ver = float(ver)

      # case kernel version is <= 3.10
    if ver <= 3.10 :
        offset_to_comm = 0x288
        offset_to_parent = 0xe0

    # case kernel version is > 3.10 et <=3.18
    elif ver > 3.10 and ver <= 3.18 :
        offset_to_comm = 0x444
        offset_to_parent = 0xe0
    else :
        logging.debug("Sorry. Android kernel version %s not supported yet", ver)
        raise NotImplementedError("Sorry. Android kernel version %s not supported yet", ver)
    return ver,offset_to_comm,offset_to_parent