本文主要介紹android10的GMS認證相關(guān)的內(nèi)容,包括新特性、新要求、特殊問題以及失敗項等。
1)android10的新特性新要求
1、Project Mainline :谷歌將能夠直接向終端用戶提供安全更新,GMS認證要求必須合入Project Mainline的代碼。
https://support.google.com/androidpartners_gms/answer/9358977?hl=en&ref_topic=9353615
主要有以下模塊:
GoogleDocumentsUIPrebuilt \ GoogleExtServicesPrebuilt \ ModuleMetadataGooglePrebuilt \ GooglePermissionControllerPrebuilt GoogleExtServicesConfigOverlay \ GooglePermissionControllerOverlay \ GooglePermissionControllerFrameworkOverlay
2、開機logo有新的要求,請查看google釋放的文檔
3、Core apps的變化:對非go的設(shè)備來說,youtube music替換了google music
4、Core Services的變化:刪除了GoogleBackupTransport;GoogleExtServices加入了Mainline;增加了TrichromeLibrary、GoogleLocationHistory、AndroidAutoStub
5、chrome/webview:需要預(yù)置Chrome.apk、WebviewGoogle.apk、TrichromeLibrary.apk
6、所有客戶內(nèi)置的apk的api level必須為28或者更高
7、如果是運營商設(shè)備,需要檢查 carrier client-id是否符合要求
8、Android 10 必須包含以下七個必選模塊:[DocumentsUI]、[ExtServices]、[Media Codecs]、[Media Extractors + MediaPlayer2]、[Module metadata]、[Permission Controller]、[Time Zone Data],參考第一條。
2)電腦和手機配置要求
1、電腦配置:ubuntu14.04及以上,內(nèi)存大于8G:內(nèi)存如果低于8G,可能會導(dǎo)致報告保存出錯,或者其他異常。
2、adb要更新最新版本,否則執(zhí)行fastboot reboot fastboot會出現(xiàn)unknown command的錯誤
3、fastboot也要更新到最新版本,否則執(zhí)行fastboot reboot fastboot會出現(xiàn)unknown command的錯誤
4、Android 10 CTS-on-GSI測試手機端配置
1、刷user版本并開機
2、打開Settings -> System -> Developer options -> OEM unlocking
3、連接電腦,執(zhí)行adb reboot bootloader;或者長按<volume up key>和<power key>進入fastboot模式
4、執(zhí)行命令:fastboot flashing unlock ,出現(xiàn)選擇界面后,按<volumn up key>
5、執(zhí)行命令:fastboot reboot fastboot,請不要做任何操作,在進行下一步之前
6、執(zhí)行命令:fastboot flash system system.img (使用google簽名的 system.img)
7、執(zhí)行命令:fastboot reboot bootloader
8、執(zhí)行命令:fastboot flashing lock
9、執(zhí)行命令:fastboot reboot
備注: 如果是A/B load special,使用fastboot flash system_a system.img / fastboot flash system_b system.img 替換步驟6
5、Android 10 VTS測試手機端配置
1、刷user版本并開機
2、打開Settings -> System -> Developer options -> OEM unlocking
3、連接電腦,執(zhí)行adb reboot bootloader;或者長按<volume up key>和<power key>進入fastboot模式
4、執(zhí)行命令:fastboot flashing unlock ,出現(xiàn)選擇界面后,按<volumn up key>
5、執(zhí)行命令:fastboot flash boot boot-debug.img,boot-debug.img來out目錄
6、執(zhí)行命令:fastboot reboot fastboot,請不要做任何操作,在進行下一步之前
7、執(zhí)行命令:fastboot flash system system.img (使用google簽名的 system.img)
8、執(zhí)行命令:fastboot reboot
備注: 如果是A/B load special,使用fastboot flash system_a system.img / fastboot flash system_b system.img 替換步驟7
3)檢查項以及特殊問題
1、Android 10版本CTS Verifier無法導(dǎo)出測試報告
adb shell appops set com.android.cts.verifier android:read_device_identifiers allow
2、對于Google issue:推薦使用最新的Google daily build tool去驗證,如果可以pass,直接上傳daily build tool跑出的pass report 到APFE即可。
https://partnerdash.google.com/partnerdash/u/0/d/partnerandroidbuild#p:id=home
3、不同版本跑測要求
目前,送測版本包括:New device或 MR、EEA Express Plus Device、Russia Device、RSA Device、SMR Device;各個版本都有不同的需求,請注意檢查
4、跑測前手機需要完成的操作
為了更容易通過測試,跑測前最好寫入以下內(nèi)容:
Serial Number
Wifi Mac Address
BT Mac Address
IMEI
Google Key
5、部分測試項測試前關(guān)閉MoMs
4)常見失敗項總結(jié)
1、CTS失敗項
cts跑測過程中提示DeviceRuntimeException: 'cmd: Can't find service: package
非cts問題,軟件本身有異常,需要根據(jù)具體log修改后進行跑測CtsPermissionTestCases android.permission.cts.ProviderPermissionTest#testManageDocuments
需要申請patchCtsDevicePolicyManagerTestCases com.android.cts.devicepolicy.DeviceOwnerTest#testInstallUpdate
最新的daily build tool驗證CtsDeqpTestCases dEQP-VK.api.device_init#create_instance_device_intentional_alloc_fail
最新的daily build tool驗證CtsMediaTestCases android.media.cts.DecodeAccuracyTest#testGLViewDecodeAccuracy[48] [Error] 2560x1120 is over HW supported WxH
修改media_codecs_mediatek_video.xmlCtsIncidentHostTestCases[instant] com.android.server.cts.ErrorsTest#testANR
修改ProcessRecord.javaCtsSecurityTestCases[instant] android.security.cts.StagefrightTest#testStagefright_bug_68342866
Google issueCtsSkQPTestCases org.skia.skqp.SkQPRunner#gles_colorfiltershader
Google issueCtsSecureElementAccessControlTestCases1 android.omapi.accesscontrol1.cts.AccessControlTest#testAuthorizedAPDUAID40
NXPandroid.hardware.camera2.cts.SurfaceViewPreviewTest#testPreparePerformance
Google issueandroid.hardware.cts.SensorSupportTest#testSupportsPressure
CUSTOM_HIFI_SENSORSandroid.hardware.camera2.cts.CaptureRequestTest#testFlashTurnOff
Google issueandroid.hardware.camera2.cts.RecordingTest#testRecordingFramerateLowToHigh
查看media_profiles.xml 是否有改動android.appsecurity.cts.AdoptableHostTest#testEjected com.android.tradefed.device.DeviceUnresponsiveException: Attempted shell sm partition disk:7,9 public multiple times on device
kernel 4.14會出現(xiàn),需要申請patch
- android.telephony.cts.VisualVoicemailServiceTest#testGetVisualVoicemailPackageName_isSelf
Attempt to invoke virtual method 'java.lang.String android.telephony.TelephonyManager.getVisualVoicemailPackageName()' on a null object reference
SIM卡問題,需要插入寫有效SIM卡
CtsStagedInstallHostTestCases com.android.tests.stagedinstall.host.StagedInstallTest#testStageApkWithSameNameAsApexShould
可申請豁免CtsAppTestCases android.app.cts.ActivityManagerProcessStateTest
可申請豁免CtsAppBindingHostTestCases com.android.cts.appbinding.AppBindingHostTest#testSecondaryUser
最新的daily build tool驗證CtsCameraTestCases android.hardware.camera2.cts.CaptureRequestTest#testFlashTurnOff
最新的daily build tool驗證CtsActivityManagerBackgroundActivityTestCases android.server.wm.BackgroundActivityLaunchTest#testActivityBlockedWhenForegroundActivityRestartsItself
可申請豁免android.cts.security.SELinuxNeverallowRulesTest#testNeverallowRules691 failed
最新的daily build tool驗證
2、VTS失敗項
VtsKernelNetTest#testKernelNetworking FAIL: testUpdateActiveSaMarks (xfrm_test.XfrmOutputMarkTest)
vts工具本身的問題,需要等待google更新工具https://android.googlesource.com/kernel/tests/+/c68285f247e30bbcc6c767719a4185ad01129a8c%5E%21/net/test/xfrm_test.pyVtsTrebleVendorVintfTest#DeviceManifest/SingleManifestTest.InterfacesAreReleased/0_32bit vendor.mediatek.hardware.camera.ccap@1.0::ICCAPControl not available.
如果不支持某些屬性,需要去掉VtsHalSecureElementV1_0Target VtsHalSecureElementV1_0Target#SecureElementHidlTest.transmit(SIM2)_64bit
如果支持NFC和OMAPI,需要插入UICC白卡測試才行VtsHalSensorsV2_0Target VtsHalSensorsV2_0Target#SensorsHidlTest.AccelerometerSamplingPeriodHotSwitchOperation(default)_32bit
首先需要校準sensor,如果還是不行,需要調(diào)整精度之類的參數(shù)VtsFastbootVerification VtsFastbootVerification#testFastbootReboot Unknown error: test case requested but not executed.
將adb 和fastboot升級到最新版本VtsHalRadioV1_2Target VtsHalRadioV1_2Target#RadioHidlTest_v1_2.startNetworkScan
最新的daily build tool驗證VtsHalNeuralnetworksV1_2Target
最新的daily build tool驗證VtsKernelNetBpfTest VtsKernelNetBpfTest#BpfRaceTest.testRaceWithoutBarrier_64bit
最新的daily build tool驗證VtsHalWifiHostapdV1_1Target
最新的daily build tool驗證VtsHalGraphicsComposerV2_1Target
最新的daily build tool驗證
3、CTS-V失敗項
- 手動測試項HIFI
需要修改了MIC參數(shù)
4、GTS失敗項
- GtsAngleHostTestCases com.google.android.angle.gts.GtsAngleTest#verifyAnglePresence
Google Issue
5、CTS-ON-GSI
- CtsWindowManagerDeviceTestCases android.server.wm.ActivityManagerGetConfigTests#testDeviceConfig fail
最新的daily build tool驗證