diff --git a/devlib/target.py b/devlib/target.py index 7d328dc..a53f70e 100644 --- a/devlib/target.py +++ b/devlib/target.py @@ -1208,6 +1208,8 @@ class AndroidTarget(Target): pass # Ignore if unchangeable elif 'Unknown permission' in e.message: pass # Ignore if unknown + elif 'has not requested permission' in e.message: + pass # Ignore if not requested else: raise diff --git a/devlib/utils/android.py b/devlib/utils/android.py index 004eb43..0de6102 100755 --- a/devlib/utils/android.py +++ b/devlib/utils/android.py @@ -121,6 +121,7 @@ class ApkInfo(object): version_regex = re.compile(r"name='(?P[^']+)' versionCode='(?P[^']+)' versionName='(?P[^']+)'") name_regex = re.compile(r"name='(?P[^']+)'") + permission_regex = re.compile(r"name='(?P[^']+)'") def __init__(self, path=None): self.path = path @@ -130,6 +131,7 @@ class ApkInfo(object): self.version_name = None self.version_code = None self.native_code = None + self.permissions = [] self.parse(path) def parse(self, apk_path): @@ -166,6 +168,10 @@ class ApkInfo(object): if not found: mapped_abis.append(apk_abi) self.native_code = mapped_abis + elif line.startswith('uses-permission:'): + match = self.permission_regex.search(line) + if match: + self.permissions.append(match.group('permission')) else: pass # not interested