Android8.1(O1)CTS失败项纪录

1、CtsLibcoreTestCases libcore.java.net.SocketTest#testSocketTestAllAddresses

  • 网络问题,需要在IPV6的环境下进行测试

2、CtsLocationTestCases android.location.cts.GnssPseudorangeVerificationTest#testPseudoPosition

  • 在测试之前确保工模下有搜到卫星信号,可以在笔记本上设定cts 环境,然后在户外测试。或者使用室内GPS信号放大器

3、CtsKeystoreTestCases android.keystore.cts.KeyAttestationTest#testEcAttestation

  • 该项测试需要申请google key

4、CtsCarrierApiTestCases
android.carrierapi.cts.CarrierApiTest#testGetIccAuthentication
android.carrierapi.cts.CarrierApiTest#testHasCarrierPrivileges
android.carrierapi.cts.CarrierApiTest#testSendDialerSpecialCode

  • 需要使用特殊sim卡

5、CtsAutoFillServiceTestCases
android.autofillservice.cts.WebViewActivityTest#testAutofillAndSave
android.autofillservice.cts.WebViewActivityTest#testAutofillNoDatasets
android.autofillservice.cts.WebViewActivityTest#testAutofillOneDataset
android.autofillservice.cts.WebViewActivityTest#testSaveOnly

  • 可申请豁免,Google bug id :70815921

6、CtsDeqpTestCases
GLES31.functional.debug.negative_coverage.get_error.vertex_array#draw_elements_base_vertex_invalid_map
GLES31.functional.debug.negative_coverage.get_error.vertex_array#draw_elements_instanced_base_vertex_invalid_map
GLES31.functional.debug.negative_coverage.get_error.vertex_array#draw_range_elements_base_vertex_invalid_map

  • 可申请豁免,Google bug id : 37942569

7、CtsIncidentHostTestCases(cts-on-gsi)
com.android.server.cts.BatteryStatsValidationTest#testWifiDownload
com.android.server.cts.BatteryStatsValidationTest#testWifiUpload

  • 可申请豁免,Google bug id : 69386624

8、CtsAppSecurityHostTestCases(cts-on-gsi)
android.appsecurity.cts.IsolatedSplitsTests#testInstallAllFeatureSplits
android.appsecurity.cts.IsolatedSplitsTests#testInstallAllFeatureSplitsAndConfigSplits
android.appsecurity.cts.IsolatedSplitsTests#testInstallDependentFeatureSplits
android.appsecurity.cts.IsolatedSplitsTests#testInstallDependentFeatureSplitsAndConfigSplits
android.appsecurity.cts.IsolatedSplitsTests#testInstallOneFeatureSplit
android.appsecurity.cts.IsolatedSplitsTests#testInstallOneFeatureSplitAndConfigSplits

  • 可申请豁免,Google bug id : 70697855

android.appsecurity.cts.OverlayHostTest#testInstallingOverlayHasNoEffect

  • 可申请豁免,Google bug id : 71958344

android.appsecurity.cts.UsesLibraryHostTest#testMissingLibrary
android.appsecurity.cts.UsesLibraryHostTest#testUsesLibrary

  • 可申请豁免,Google bug id : 71958671

9、CtsAutoFillServiceTestCases(cts-on-gsi)
android.autofillservice.cts.AttachedContextActivityTest#testAutofill

  • 可申请豁免,Google bug id : 71960322

10、CtsSpeechTestCases(cts-on-gsi)
android.speech.tts.cts.TextToSpeechTest#testSpeak
android.speech.tts.cts.TextToSpeechTest#testSpeakStop
android.speech.tts.cts.TextToSpeechTest#testSynthesizeToFile

  • 可申请豁免,Google bug id : 64204643

11、CtsDeqpTestCases(cts-on-gsi)
EGL.functional.robustness.reset_context.shaders.infinite_loop.shared_context_status#compute
EGL.functional.robustness.reset_context.shaders.infinite_loop.shared_context_status#fragment
EGL.functional.robustness.reset_context.shaders.infinite_loop.shared_context_status#vertex
EGL.functional.robustness.reset_context.shaders.infinite_loop.shared_context_status#vertex_and_fragment

12、CtsDumpsysHostTestCases(cts-on-gsi)
android.dumpsys.cts.ProcessStatsDumpsysTest#testProcstatsOutput

  • 可申请豁免,Google bug id : 72540761

13、CtsPermission2TestCases android.permission2.cts.PrivappPermissionsTest#testPrivappPermissionsEnforcement

 

Android8.1认证新特性与要求

本文主要说明Android8.1过GMS认证的一些新特性和新要求。

新增测试

Android7.x以及之前的版本,如果要过GMS认证,只需要完成CTS测试、GTS测试和CTS Verifier,如果全部通过,将软件送给google授权的实验室即可。

Android8.0以后,除了要完成默认版本的CTS测试、GTS测试和CTS Verifier之外,新增加了两个新的测试。

这两个新的测试需要在替换谷歌提供AOSP的system.img (GSI)的版本上进行,分别是:

新特性与新要求

认证要求

google Key

从Android O开始,必须实现一个硬件支持的密钥库,google要求使用Google key来进行认证。

Google key将以keybox.ml文件的方式提供给OEM厂商,包含以下内容:

  • 请求keybox.ml时由OEM分配的设备唯一设备ID。
  • 一个ECDSA认证密钥,采用PEM格式。
  • 一个RSA认证密钥,采用PEM格式。
 
image.png

如何申请google key

官方说明如下:

OEMs will upload a set of device IDs and download an XML keybox file containing keys for those device IDs

实际操作中可能需要提交相关信息给google授权的GMS实验室,从还实验室获取相关的 google key 文件。

测试相关

CTS测试

1、Cts Media Files

  • 版本要求 CTS Media 1.4 及以上版本
  • Media文件存放位置要求:在Android8.1的测试中,media文件要放在电脑中的/tmp/android-cts-media路径下,测试前不需要将Media文件拷贝到手机中,测试时会自动拷贝。如果/tmp/android-cts-media路径下没有media文件,将会从网上下载,由于文件比较大,比较耗时

 

Android8.x新增cts测试(VTS下测试GSI版本)

Android 8.0之后,由于平台架构的更改,GMS认证增加了新的测试项,包括VTS和针对GSI版本的CTS测试,本文主要介绍Android8.1针对GSI版本的CTS测试,VTS测试可参考Android VTS测试

测试环境配置

1、更换google的GSI
  • 设置中打开 OEM unlocking 选项
  • 设置中打开 USB debugging 选项
  • 长按音量 + 和电源键进入fastboot模式
  • 连接到电脑上,分别执行fastboot flashing unlockfastboot oem unlock
    执行命令后需要选择音量 + 来确认unlock。
  • 执行 fastboot 命令刷入google提供的 system.img (GSI):
    fastboot flash system system.img(需要根据软件版本的信息来选择GSI版本)
  • 重启: fastboot reboot
2、测试前准备
  • cts测试环境配置 : CTS测试配置
  • vts测试环境配置 :
    安装 Python 开发工具包:sudo apt-get install python-dev
    安装协议缓冲区工具(适用于 Python):sudo apt-get install python-protobuf protobuf-compiler
    安装 Python 虚拟环境相关工具:sudo apt-get install python-virtualenv python-pip
  • Media 媒体包:要求 CTS Media 1.4 及以上版本,在Android8.1的测试中,media文件要放在电脑中的/tmp/android-cts-media路径下,测试前不需要将Media文件拷贝到手机中,测试时会自动拷贝。如果/tmp/android-cts-media路径下没有media文件,将会从网上下载,由于文件比较大,比较耗时

运行针对GSI版本的CTS

  • 1、下载并解压vts测试工具包
  • 2、切换到android-vts的位置下:
    $ cd android-vts
  • 3、进入android-vts目录下,运行vts测试的控制台程序
    $ ./android-vts/tools/vts-tradefed
  • 4、运行 cts-on-gsi 测试
    > run cts-on-gsi​​