39 lines
1.6 KiB
Python
39 lines
1.6 KiB
Python
from sys import argv
|
|
import os
|
|
import subprocess
|
|
import time
|
|
|
|
APK_DIR = '${ANDROID_PRODUCT_OUT}/system/app/AttestationTestTool/AttestationTestTool.apk'
|
|
FAILURE_TAG = 'AttestationFail'
|
|
FAILURE_PREFIX = 'Failure: '
|
|
FINISHED_TAG = 'AttestationFinished'
|
|
INFO_TAG = 'AttestationFailInfo'
|
|
INFO_PREFIX = ' ' * len(FAILURE_PREFIX)
|
|
devnull = open(os.devnull, 'wb')
|
|
|
|
# Clear logcat
|
|
subprocess.call('adb logcat -c', shell=True, stdout=devnull)
|
|
subprocess.call('adb install -r ' + APK_DIR, shell=True, stdout=devnull)
|
|
subprocess.call('adb shell am start -a android.intent.action.MAIN -n com.google.attestationexample/.AttestationActivity',
|
|
shell=True, stdout=devnull)
|
|
finished = False
|
|
read_retry = 0
|
|
failures = 0
|
|
while not finished and read_retry < 5:
|
|
time.sleep(1)
|
|
logcat = subprocess.check_output(['adb', 'logcat', '-d'], stderr=subprocess.STDOUT)
|
|
for line in logcat.decode('utf-8').split('\n'):
|
|
if INFO_TAG in line:
|
|
print(INFO_PREFIX + line[line.index('AttestationFailInfo') + len('AttestationFailInfo:'):])
|
|
elif FAILURE_TAG in line:
|
|
failures += 1
|
|
print(FAILURE_PREFIX + line[line.index('AttestationFail') + len('AttestationFail:'):])
|
|
elif FINISHED_TAG in line and not finished:
|
|
print('Finished. Failures: ' + str(failures))
|
|
finished = True
|
|
break
|
|
read_retry += 1
|
|
if read_retry == 5:
|
|
print('Attestation test did not complete, check logcat to determine the source of the error')
|
|
subprocess.call('adb uninstall com.google.attestationexample', shell=True, stdout=devnull)
|