def install_package(self, apk_path, timeout=120): """wrapper to install package""" cmd = "{} {} install -r '{}'".format(self.adb, self.param, apk_path) result = self._command(cmd, timeout=timeout) if 'Success' in result: return True raise ADBActionException(result)
def remove_package(self, package_name, timeout=60): """wrapper to remove package""" cmd = '{} {} uninstall {}'.format(self.adb, self.param, package_name) result = self._command(cmd, timeout=timeout) if 'Success' in result: return True raise ADBActionException(result)
def reset_package(self, package_name, timeout=20): """wrapper to reset package""" cmd = '{} {} shell pm clear {}'.format(self.adb, self.param, package_name) result = self._command(cmd, timeout=timeout) if 'Success' in result: return True raise ADBActionException(result)
def root(self): """wrapper for adb root""" cmd = '{} {} root'.format(self.adb, self.param) result = self._command(cmd) if 'running as root' in result: return True else: raise ADBActionException(result)
def ls(self, path): """wrapper to list dir""" cmd = '{} {} shell ls {}'.format(self.adb, self.param, path) result = self._command(cmd) if not result: raise ADBActionException(result) else: return result.splitlines()
def rm(self, path): """wrapper to remove file/folder on device""" cmd = '{} {} shell rm -r {}'.format(self.adb, self.param, path) result = self._command(cmd) if result: raise ADBActionException(result) else: return True
def push(self, src, dst): """wrapper for adb push""" cmd = '{} {} push {} {}'.format(self.adb, self.param, src, dst) result = self._command(cmd) if 'pushed' in result: return True else: raise ADBActionException(result)
def current_package(self, timeout=20): """wrapper to get current package""" cmd = '{} {} shell dumpsys activity|grep Focus|head -n 1|rev|cut -f 2 -d" "|\ rev |cut -f 1 -d"/"'.format(self.adb, self.param) result = self._command(cmd, timeout=timeout).splitlines() if result: return result[0] raise ADBActionException('Something wrong with the emulator')
def chmod(self, path, mode='777'): """wrapper for adb shell chmod""" cmd = '{} {} shell chmod -R {} {}'.format(self.adb, self.param, mode, path) result = self._command(cmd) if result: raise ADBActionException(result) else: return True
def check_adb_status(self, timeout=20): """wrapper to check whether the adb server is up""" if not self.serial: raise ADBActionException('serial is no initialized') cmd = '{} devices'.format(self.adb) content = self._command(cmd, timeout=timeout) device_lines = [x for x in content.splitlines()[1:] if x] for line in device_lines: if self.serial in line: if 'off' in line.lower(): return False else: return True return False