| Index: devil/devil/android/apk_helper.py
|
| diff --git a/devil/devil/android/apk_helper.py b/devil/devil/android/apk_helper.py
|
| index c0d4ee95724ac4bb1162de93cde7c8fb51c5eb07..16daefd1970a9f90b2eb9b68905cc2c3195ef8af 100644
|
| --- a/devil/devil/android/apk_helper.py
|
| +++ b/devil/devil/android/apk_helper.py
|
| @@ -157,7 +157,13 @@ class ApkHelper(object):
|
| self, default='android.test.InstrumentationTestRunner'):
|
| """Returns a list of all Instrumentations in the apk."""
|
| try:
|
| - return self._GetManifest()['manifest'][0]['instrumentation']
|
| + manifest = self._GetManifest()['manifest'][0]
|
| + real_instrumentation_values = self._GetRealInstrumentationValue()
|
| + if real_instrumentation_values:
|
| + for index, instr in enumerate(manifest['instrumentation']):
|
| + key = 'incremental-install-real-instrumentation-' + str(index)
|
| + instr['android:name'] = real_instrumentation_values[key]
|
| + return manifest['instrumentation']
|
| except KeyError:
|
| return [{'android:name': default}]
|
|
|
| @@ -197,6 +203,17 @@ class ApkHelper(object):
|
| except KeyError:
|
| return False
|
|
|
| + def _GetRealInstrumentationValue(self):
|
| + manifest = self._GetManifest()['manifest'][0]
|
| + real_instrumentation_values = {}
|
| + if (manifest.get('application') and
|
| + manifest['application'][0].get('meta-data')):
|
| + meta_data = manifest.get('application')[0]['meta-data']
|
| + for i in meta_data:
|
| + if 'incremental-install-real-instrumentation' in i['android:name']:
|
| + real_instrumentation_values[i['android:name']] = i['android:value']
|
| + return real_instrumentation_values
|
| +
|
| def _GetManifest(self):
|
| if not self._manifest:
|
| self._manifest = _ParseManifestFromApk(self._apk_path)
|
|
|