1
0
mirror of https://github.com/ARM-software/workload-automation.git synced 2025-02-20 20:09:11 +00:00

AndroidDevice: added support for downgrade when installing an APK

Adds support for passing -d option to "pm install", which allows
installing an APK when a newer version of the package is already present
on the device.
This commit is contained in:
Sergei Trofimov 2016-10-10 12:55:14 +01:00
parent edc26fe75c
commit 93fbb7282a

View File

@ -357,13 +357,15 @@ class AndroidDevice(BaseLinuxDevice): # pylint: disable=W0223
else:
return self.install_executable(filepath, with_name)
def install_apk(self, filepath, timeout=default_timeout, replace=False): # pylint: disable=W0221
def install_apk(self, filepath, timeout=default_timeout, replace=False, allow_downgrade=False): # pylint: disable=W0221
self._check_ready()
ext = os.path.splitext(filepath)[1].lower()
if ext == '.apk':
flags = []
if replace:
flags.append('-r') # Replace existing APK
if allow_downgrade:
flags.append('-d') # Install the APK even if a newer version is already installed
if self.get_sdk_version() >= 23:
flags.append('-g') # Grant all runtime permissions
self.logger.debug("Replace APK = {}, ADB flags = '{}'".format(replace, ' '.join(flags)))