1. 程式人生 > >[Android GMS 認證] GTS相關問題

[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