Android T GTS 问题

此文章只是一篇总结,针对 MTK 平台近期的 GTS 做个简单的整理回顾,后期不断扩展

GTS

GtsBackupTestCases
com.google.android.gts.backup.RestoreAppConfiguredTest#testRestoreApp_hasIosWifiD2dPermissions_onSPlus

FAILURE: Expected permission android.permission.NEARBY_WIFI_DEVICES granted for package: com.google.android.apps.restore
expected to be true

You can get a waiver
bug id:235918263
Google reply: Waiver is granted for GTS 10_r1 till Beta 4 of T is released

=======================================================================

GtsFeaturesTestCases
com.google.android.features.gts.GoogleFeaturesTest#testFeatureAiai

Devices shipping ASI must have at least 4gb of RAM
expected to be at least: 3000000000
but was : 2963918848
at com.google.android.features.gts.GoogleFeaturesTestBase.checkAiaiFeature(GoogleFeaturesTestBase.java:623)
at com.google.android.features.gts.GoogleFeaturesTest.testFeatureAiai(GoogleFeaturesTest.java:150)

Androi 13是强制要求,一般手机都可以pass的,对于低于 4GB RAM 的设备,还是要去掉 ASI 功能的。
删除ASI,Google 在Android T 上有要求,android s 不做要求,删除 gms.mk 中下面内容即可,如果有 EEA  版本,那么 eea_common.mk 也需要删除相关的
1、etc/sysconfig/google.xml  或者 etc/sysconfig/asi_features.xml 中删除  <feature name="com.google.android.feature.ASI" />
2、gms.mk 和 eea_common.mk  删除 AndroidSystemIntelligence_Features
3、gms.mk 和 eea_common.mk 中删除 PRODUCT_PACKAGES += GmsConfigOverlayASI
Note:如果不删除PRODUCT_PACKAGES += GmsConfigOverlayASI,则会报 
GtsIntelligenceTestCases com.google.android.gts.intelligence.IntelligenceRolesTest#testIntelligenceRolesAllowed	
fail log:
java.lang.RuntimeException: expected to be empty
but was: [Package [com.google.android.as] is configured for role [android.app.role.SYSTEM_NOTIFICATION_INTELLIGENCE] but it is not installed., Package [com.google.android.as] is configured for role [android.app.role.SYSTEM_UI_INTELLIGENCE] but it is not installed., Package [com.google.android.as] is configured for role [android.app.role.SYSTEM_TEXT_INTELLIGENCE] but it is not installed., Package [com.google.android.as] is configured for role [android.app.role.SYSTEM_AUDIO_INTELLIGENCE] but it is not installed., Package [com.google.android.as] is configured for role [android.app.role.SYSTEM_VISUAL_INTELLIGENCE] but it is not installed.]

=======================================================================

GtsFeaturesTestCases
com.google.android.features.gts.GoogleFeaturesTest#testFeatureTurboPreload

Device Health Services was found but the “com.google.android.feature.TURBO_PRELOAD” feature was not, please reach out to your Google contact
expected to be true
at com.google.android.features.gts.GoogleFeaturesTestBase.checkTurboPreloadFeature(GoogleFeaturesTestBase.java:362)
at com.google.android.features.gts.GoogleFeaturesTest.testFeatureTurboPreload(GoogleFeaturesTest.java:135)

三个方案,
1、Device Health Services was found 移除此 apk
2、“com.google.android.feature.TURBO_PRELOAD” feature 添加此属性
3、坐等 Android T 11 月份 GMS 包,已添加此属性

=======================================================================

GtsPersonalSafetyTestCases
1、com.google.android.personalsafety.gts.SafetyHubTest#testSafetyHubSetAsEmergencyIntentActionInSettings
2、com.google.android.personalsafety.gts.SafetyHubTest#testSafetyHubIsPreferredEmergencySosPackage
3、com.google.android.personalsafety.gts.SafetyHubTest#testSafetyHubIsTheEmergencyDiallerPackage
4、com.google.android.personalsafety.gts.SafetyHubTest#testSafetyHubIsTheEmergencyPackageNameInSettings
5、com.google.android.personalsafety.gts.SafetyHubTest#testSafetyHubSetAsEmergencyGestureSettingsPackage

1、config_emergency_intent_action is not set expected: com.google.android.safetyhub.SAFETY_HUB
but was : android.settings.EDIT_EMERGENCY_INFO
2、config_preferredEmergencySosPackage is not set expected: com.google.android.apps.safetyhub
but was an empty string
3、config_emergency_dialer_package is not set expected: com.google.android.apps.safetyhub
but was : com.android.phone
4、config_emergency_package_name is not set expected: com.google.android.apps.safetyhub
but was : com.android.emergency
5、emergency_gesture_settings_package is not set expected: com.google.android.apps.safetyhub
but was an empty string

根据 log 提示修改相应的配置即可

=======================================================================

GtsBackupHostTestCases
com.google.android.gts.backup.BackupHostTest#testGmsBackupTransportIsDefault

java.lang.AssertionError: GMS should be default backup transport on the device

确认预置GMS 之后,平台的默认transport 是否为google 的transport
adb shell bmgr list transports
确认/frameworks/base/packages/SettingsProvider/res/values/defaults.xml 或者
/vendor/mediatek/proprietary/packages/apps/SettingsProvider/res/values/defaults.xml
中def_backup_transport 是否有被overlay 为Google的 backup
将def_backup_transport 修改为com.google.android.gms/.backup.BackupTransportService

=======================================================================

GtsWellbeingTestCases

1.com.google.android.wellbeing.gts.WellbeingTest#testQuickSettingsAutoAddContainFocusModeTile
2.com.google.android.wellbeing.gts.WellbeingTest#testQuickSettingsAutoAddContainWindDownTile

  1. List of Quick Settings tiles that can be added automatically doesn’t contain Focus Mode tile.
    expected to contain entry: focus_mode_first_time_setup=ComponentInfo{com.google.android.apps.wellbeing/com.google.android.apps.wellbeing.focusmode.quicksettings.FocusModeTileService}
    but was : {}
    at com.google.android.wellbeing.gts.WellbeingTest.testQuickSettingsAutoAddContainFocusModeTile(WellbeingTest.java:378)
    2.List of Quick Settings tiles that can be added automatically doesn’t contain Bedtime Mode tile.
    expected to contain entry: wind_down_first_time_setup=ComponentInfo{com.google.android.apps.wellbeing/com.google.android.apps.wellbeing.screen.ui.GrayscaleTileService}
    but was : {}
    at com.google.android.wellbeing.gts.WellbeingTest.testQuickSettingsAutoAddContainWindDownTile(WellbeingTest.java:364)
overlay/gms_overlay/vendor/mediatek/proprietary/package/apps/systemUI/res/values/config.xml 添加值
添加 如下路径测试:   

alps/vendor/mediatek/proprietary/package/apps/systemUI/res/values/config.xml
<string-array name="config_quickSettingsAutoAdd" translatable="false">
<item>accessibility_display_inversion_enabled:inversion</item>
+       <item>wind_down_first_time_setup:custom(com.google.android.apps.wellbeing/.screen.ui.GrayscaleTileService)</item>
+       <item>focus_mode_first_time_setup:custom(com.google.android.apps.wellbeing/.focusmode.quicksettings.FocusModeTileService)</item>
</string-array>

=======================================================================

GtsBackupTestCases (10_r1 / 8863542)
com.google.android.gts.backup.RestoreAppConfiguredTest#testRestoreApp_hasIosWifiD2dPermissions_onSPlus

Expected permission android.permission.NEARBY_WIFI_DEVICES granted for package: com.google.android.apps.restore
expected to be true
at com.google.android.gts.backup.RestoreAppConfiguredTest.assertRestorePackageHasGrantedPermission(RestoreAppConfiguredTest.java:274)
at com.google.android.gts.backup.RestoreAppConfiguredTest.assertRestorePackageHasPermissions(RestoreAppConfiguredTest.java:255)
at com.google.android.gts.backup.RestoreAppConfiguredTest.testRestoreApp_hasIosWifiD2dPermissions_onSPlus(RestoreAppConfiguredTest.java:243)

You can get a waiver
bug id:235918263
Google reply: Waiver is granted for GTS 10_r1 till Beta 4 of T is released

=======================================================================

GtsMediaTestCases (10_r1 / 8863542)
com.google.android.media.gts.WidevineDashPolicyTests#testL3OfflineCannotPersist

java.lang.Exception: Failed components: < Expect Exceptions: This criteria failed because an unexpected exception was thrown during playback (KeyRequesterException: Server returned HTTP error code 400) >
at com.google.android.media.gts.GTSTestBase.run(GTSTestBase.java:159)
at com.google.android.media.gts.WidevineDashPolicyTests.testL3OfflineCannotPersist(WidevineDashPolicyTests.java:656)

You can get a waiver bug id:243469305

=======================================================================

GtsTelephonyNumberVerificationHostCases (10_r1 / 8863542)
com.google.android.gts.telephony.numberverification.NumberVerificationHostTest#testNumberVerification

java.lang.AssertionError: on-device tests failed:
com.google.android.gts.telephony.numberverification.NumberVerificationTest#testRequestNumberVerification:
java.lang.SecurityException: Calling package must be configured in the device config: calling package:

按以下方法修改(添加这个ovelry配置):
In GMS package, is there such overlay config.xml file?
gms/vendor/mediatek/proprietary/packages/services/Telephony/res/values/config.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
   <!-- The package name for the platform number verification supplier app. -->
    <string name="platform_number_verification_package" translatable="false">com.google.android.gms</string>
</resources>

=======================================================================

GtsFeaturesTestCases (10_r2 / 9265057)
com.google.android.features.gts.GoogleFeaturesTest#testFeatureTurboPreload

App is not a privileged app, it must be pre-installed on the system partition,please reach out to your Google contact
expected to be true
at com.google.android.features.gts.GoogleFeaturesTestBase.checkTurboPreloadFeature(GoogleFeaturesTestBase.java:331)
at com.google.android.features.gts.GoogleFeaturesTest.testFeatureTurboPreload(GoogleFeaturesTest.java:135)

将 apk 预制到 system/priv_app 分区即可

=======================================================================

1、GtsLensTestCases
com.google.android.apps.lens.gts.LensBaseIntegrationTest#testRegionBuildAllowed

Lens integration not allowed on Cn builds.
expected to be false
at com.google.android.apps.lens.gts.LensBaseIntegrationTest.testRegionBuildAllowed(LensBaseIntegrationTest.java:75)

2、GtsPlacementTestCases
com.google.android.placement.gts.CoreGmsAppsTest#testCoreGmsAppsPreloaded

java.lang.AssertionError: Play Store package version code found to be 83281810, whose last digit is not 2
at org.junit.Assert.fail(Assert.java:89)
at org.junit.Assert.assertTrue(Assert.java:42)
at com.google.android.placement.gts.CoreGmsAppsTest.checkCnCoreGmsAppsPreloaded(CoreGmsAppsTest.java:281)
at com.google.android.placement.gts.CoreGmsAppsTest.testCoreGmsAppsPreloaded(CoreGmsAppsTest.java:658)

由于 CTSV 手动项 Instant Apps Notification Test 通知栏点击“GO TO BROWSER”按钮跳转浏览器失败,无奈咨询。
此条手动项 case 需要预置 GMS 才可以pass,如果不预置GMS 需要设置 feature: cn.google.services
于是配置 cn 属性,导致上面两条fail。删除此属性即可。
CTSV 手动项 Instant Apps Notification Test 在大于等于 13_R3 的工具上已经移除。

=======================================================================

GtsMediaTestCases (GTS10R2)
com.google.android.media.gts.MediaDrmTests#testForAIDL

fail: java.lang.AssertionError: Vendor partition: 30 ,should not run HIDL service: xxx /vendor/bin/hw/android.hardware.drm@1.4-service.widevine

You can get a waiver ,bug id :259128663 (使用daily build tool 也可以pass的)

=======================================================================

GtsPermissionTestCases(GTS10R2)
com.google.android.permission.gts.PreloadAppsTargetSdkVersionTest#testPreloadedAppsTargetSdkVersion

java.lang.RuntimeException: All apps preloaded on DEVICEs launching with Android 11 MUST target API level 29 or higher.
TestRunner: All apps preloaded on DEVICEs launching with Android 12 or 12L MUST target API level 29 or higher.
TestRunner: All apps preloaded on DEVICEs launching with Android 13 MUST target API level 31 or higher.
TestRunner: com.xxx.xxx must target 31 or higher, but targets 29

可以直接remove掉对一个的sdkversion,也可以更改为相应的sdkversion
但是得注意部分应用可能需要添加 android:exported 属性

=======================================================================

GtsUnofficialApisUsageTestCases (GTS10R2)
com.android.gts.api.UnofficialApisUsageTest#testNonApiReferencesInProduct

junit.framework.AssertionFailedError: There are 2 violation(s)
com.google.android.apps.photos / Landroid/media/MediaRoute2InfoKaTeX parse error: Expected 'EOF', got '&' at position 10: Builder;-&̲gt;setDeduplica…Builder; / BLOCKED / LINKING
com.google.android.apps.photos / Landroid/media/MediaRoute2Info;->getDeduplicationIds()Ljava/util/Set; / BLOCKED /

google photos 有api调用有点问题,测试之前先更新GMS包,更新所有应用之后再去测试

=======================================================================
记录一次 aapt2 报错导致 case 运行不起来的问题:(具体可以查看此篇文章)

05-04 16:29:41 W/BusinessLogicPreparer: Option config-filename isn’t set. Using empty string instead.
05-04 16:29:41 W/BusinessLogicPreparer: Option version isn’t set. Using ‘null’ instead.
05-04 16:30:14 D/ITestSuite: [Total Unique Modules = 1]
05-04 16:30:18 E/AaptParser: aapt2 dump badging stderr: W/ziparchive(1050736): Unable to open ‘badging’: No such file or directory
badging: error: No such file or directory.
05-04 16:30:18 E/AaptParser: Failed to run aapt2 on /xxx/android-gts/tools/./…/…/android-gts/testcases/GtsGmsCoreActivityEmbeddingTestApp/GtsGmsCoreActivityEmbeddingTestApp.apk. stdout:

05-04 16:30:18 E/ModuleDefinition: Unexpected Exception from preparer: com.android.tradefed.targetprep.suite.SuiteApkInstaller
05-04 16:30:18 E/ModuleDefinition: AaptParser failed for file GtsGmsCoreActivityEmbeddingTestApp.apk. The APK won’t be installed [xxx]
com.android.tradefed.targetprep.TargetSetupError[AAPT_PARSER_FAILED|520050|DEPENDENCY_ISSUE]: AaptParser failed for file GtsGmsCoreActivityEmbeddingTestApp.apk. The APK won’t be installed [xxx]
at com.android.tradefed.targetprep.TestAppInstallSetup.parsePackageName(TestAppInstallSetup.java:739)
at com.android.tradefed.targetprep.TestAppInstallSetup.resolveApkFiles(TestAppInstallSetup.java:625)
at com.android.tradefed.targetprep.TestAppInstallSetup.setUp(TestAppInstallSetup.java:408)
at com.android.tradefed.testtype.suite.ModuleDefinition.runPreparerSetup(ModuleDefinition.java:999)
at com.android.tradefed.testtype.suite.ModuleDefinition.runTargetPreparation(ModuleDefinition.java:1432)
at com.android.tradefed.testtype.suite.ModuleDefinition.runPreparation(ModuleDefinition.java:958)
at com.android.tradefed.testtype.suite.ModuleDefinition.run(ModuleDefinition.java:484)
at com.android.tradefed.testtype.suite.ITestSuite.runSingleModule(ITestSuite.java:926)
at com.android.tradefed.testtype.suite.ITestSuite.run(ITestSuite.java:806)
at com.android.tradefed.invoker.InvocationExecution.runTest(InvocationExecution.java:1336)
at com.android.tradefed.invoker.InvocationExecution.runTests(InvocationExecution.java:1115)
at com.android.tradefed.invoker.TestInvocation.prepareAndRun(TestInvocation.java:617)
at com.android.tradefed.invoker.TestInvocation.performInvocation(TestInvocation.java:275)
at com.android.tradefed.invoker.TestInvocation.invoke(TestInvocation.java:1335)
at com.android.tradefed.command.CommandScheduler$InvocationThread.run(CommandScheduler.java:678)
05-04 16:31:49 W/ITestSuite: There are failed system status checkers: {com.android.compatibility.common.tradefed.targetprep.NetworkConnectivityChecker=}
05-04 16:31:50 E/NativeDevice: Device path /sdcard/report-log-files/ does not exist to be pulled.
05-04 16:31:53 I/SuiteResultReporter:

解决方案:需要更新下 aapt2,把原来的 aapt2 替换成最新。
使用命令在根目录下 find ./ -name “aapt2”,把最新的aapt2 , 复制过去全部替换了

=======================================================================

GtsMbaPrivilegedPermissionTestCases com.google.android.mbaprivilegedpermission.gts.GtsPackageNamespaceTest#testPolicy

fail: java.lang.RuntimeException: Violation of the Package Namespace
[Package Name: com.google.android.gmsintegration, Certificates: [204be3d5059096b097a82fc501423cf7ca7a9833eafd113d0d1a163642fc778c]] contains Google, but not owned by Google

Android 13上新增的功能,禁止 ODM 使用 com.google 开头的应用或者附属应用采取平台签名,com.google.android.gmsintegration 这个已经豁免(Bug id:278634533)。

com.google.android.apps.customization.pixel 正在申请豁免

建议:最好对比 PIxel 手机查看 google 相关 gms 应用预置的位置。

=======================================================================

GtsLocationTestCases
com.google.android.location.gts.AdasPackageAllowlistTest#testAdasPackageAllowlistIsEmpty

java.lang.NoSuchMethodError: No virtual method getAdasAllowlist()Landroid/os/PackageTagsList; in class Landroid/location/LocationManager; or its super classes (declaration of ‘android.location.LocationManager’ appears in /system/framework/framework.jar!classes2.dex)

Google issue google fix.
合入以下google patch:
https://android.googlesource.com/platform/frameworks/base/+/390046b0dbd2a931fee0c2d13034185462d2f877

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值