From 68be9d8acc7d6c00b212d42b27c2575dab826062 Mon Sep 17 00:00:00 2001 From: Marc Bonnici Date: Fri, 14 Jul 2017 16:59:52 +0100 Subject: [PATCH] utils/android: Added native code extraction of apks from WA2 --- devlib/utils/android.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/devlib/utils/android.py b/devlib/utils/android.py index e8ca78d..22aab95 100644 --- a/devlib/utils/android.py +++ b/devlib/utils/android.py @@ -27,7 +27,7 @@ import re from collections import defaultdict from devlib.exception import TargetError, HostError, DevlibError -from devlib.utils.misc import check_output, which, memoized +from devlib.utils.misc import check_output, which, memoized, ABI_MAP from devlib.utils.misc import escape_single_quotes, escape_double_quotes @@ -124,6 +124,7 @@ class ApkInfo(object): self.label = None self.version_name = None self.version_code = None + self.native_code = None self.parse(path) def parse(self, apk_path): @@ -143,6 +144,19 @@ class ApkInfo(object): elif line.startswith('launchable-activity:'): match = self.name_regex.search(line) self.activity = match.group('name') + elif line.startswith('native-code'): + apk_abis = [entry.strip() for entry in line.split(':')[1].split("'") if entry.strip()] + mapped_abis = [] + for apk_abi in apk_abis: + found = False + for abi, architectures in ABI_MAP.iteritems(): + if apk_abi in architectures: + mapped_abis.append(abi) + found = True + break + if not found: + mapped_abis.append(apk_abi) + self.native_code = mapped_abis else: pass # not interested