[Android GMS 認證] GTS相關問題
首先,設定 export APE_API_KEY='/home/sukha/your_ape_api_key.json'
問題1:GtsNmgiarcTestCases run gts -m GtsNmgiarcTestCases -t com.google.android.nmgiarc.gts.CarrierServicesTests#testAcsaPropertySetCorrectly
修改如下檔案
device\qcom\msm8909go\msm8909go.mk
# GMS
PRODUCT_PROPERTY_OVERRIDES += ro.com.google.acsa=true
問題2:run gts -m GtsPermissionTestCases -t com.google.android.permission.gts.InitialRuntimePermissionStateTest#testAllSystemAppsUsingRuntimePermissionsTargetMncAndAboveSdk
原因:這是由於一些apk的sdk版本過低導致的許可權問題
方案:檢視device.log,查找出是哪些apk,然後在對應apk下的AndroidManifest下修改下目標sdk,一般都修改為當前最新版的,有些危險許可權(九組)還要在程式碼中新增執行時程式碼,不然apk會崩的。
問題3:com.google.android.gts.backup.SettingsProviderBackupHostTest#testSoftApE2EBR fail java.lang.AssertionError: on-device tests failed:
請確認在設定中開啟backup後進行測試。一定要按照guide來,可以省一些事。
問題4:run gts -m GtsPackageManagerHostTestCases -t com.google.android.pm.gts.PackageManagerHostTest#testSoundPool
From 3235963830dd41b82b89c375d0147534f8c0ee12 Mon Sep 17 00:00:00 2001
From: Marco Nelissen <[email protected]>
Date: Wed, 04 Oct 2017 16:18:27 -0700
Subject: [PATCH] Add drmserver permission for ephemeral apps
so they can use MediaExtractor too.
Bug: 67406992
Test: yes
Change-Id: Iaacadc13b1fc032fe31eea1f3ecbbbabb741470a
---
diff --git a/private/ephemeral_app.te b/private/ephemeral_app.te
index de5c53c..1693736 100644
--- a/private/ephemeral_app.te
+++ b/private/ephemeral_app.te
@@ -27,6 +27,7 @@
allow ephemeral_app mediacodec_service:service_manager find;
allow ephemeral_app mediametrics_service:service_manager find;
allow ephemeral_app mediadrmserver_service:service_manager find;
+allow ephemeral_app drmserver_service:service_manager find;
allow ephemeral_app surfaceflinger_service:service_manager find;
allow ephemeral_app radio_service:service_manager find;
allow ephemeral_app ephemeral_app_api_service:service_manager find;
問題5:run gts -m GtsPlacementTestCases -t com.google.android.placement.gts.CoreGmsAppsPrivappPermissionsTest#testCoreGmsAppsPermissionsWhitelisted
如果想要過這個case就要內建的,需要測試如下應用。
<entry key="general_core_gms_packages">
<value>com.android.chrome</value>
<value>com.android.providers.partnerbookmarks</value>
<value>com.google.android.apps.docs</value> Drive
<value>com.google.android.apps.maps</value>
<value>com.google.android.backuptransport</value>
<value>com.google.android.configupdater</value>
<value>com.google.android.feedback</value>
<value>com.google.android.gm</value>
<value>com.google.android.gms</value>
<value>com.google.android.googlequicksearchbox</value>
<value>com.google.android.gsf</value>
<value>com.google.android.music</value>
<value>com.google.android.onetimeinitializer</value>
<value>com.google.android.partnersetup</value>
<value>com.google.android.setupwizard</value>
<value>com.google.android.syncadapters.contacts</value>
<value>com.google.android.tts</value>
<value>com.google.android.videos</value>
<value>com.google.android.youtube</value>
</entry>
前段時間的go版本可以申請豁免,因為要求了一些與go預置重複的apk,現在不知道了。
問題6:
run gts -m GtsMemoryHostTestCases -t com.google.android.memory.gts.MemoryHostTest#testSystemMemoryAvailabilityPostBoot
這個除了perf那裡做優化之外,
6.0 還引入了奇葩的testSystemMemoryAvailabilityPostBoot出現fail "process crashed"
google的關於memory的6.0版本GTS測試工具在打包做dex優化時用的是dex的版本為39,。而目前高通的程式碼最新版本是38,而且google網站上程式碼也是38。所以apk安裝有問題,導致測試工具無法啟動。
可以在art虛擬機器中新增上最新的39版本標識通過該項測試……不過估計應該可以申請豁免。
另外,6.0的命令變了,測試重測命令如下:
run gts-suite
run retry --retry 6 -s ABCDE0208000002
run retry --retry 9 --skip-preconditions --precondition-arg skip-media-download --ignore-business-logic-failure