RK平台_Android7.1_CTS_产品测试环境搭建V1.72
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
福州瑞芯微电子有限公司密级状态:绝密()秘密()内部(√)公开()
RK平台Android7.1_GMS_产品测试环境搭建
(系统产品一部)
文件状态:[]正在修改[√]正式发布当前版本:V1.0
作者:xzj
完成日期:2017-05-15
审核:
完成日期:2017-05-15
福州瑞芯微电子有限公司
Fuzhou Rockchips Semiconductor Co.,Ltd
(版本所有,翻版必究)
版本号作者修改日期修改说明备注V1.0xzj2017-03-10初始版本,加入公共补丁以及KR312x补
丁
V1.7xzj2017-05-15适配对外更新0512,对应CTSR5版本
目录
1简述 (3)
2测试命令 (3)
3产品编译 (4)
4ANDROID7.1CTS (5)
4.1简述 (5)
4.2A NDROID7.1CTS环境设置 (5)
4.2.1CTS代码集成DRM、GMS包 (5)
4.2.2CTS代码配置 (6)
4.2.3CTS固件生成(KEY签名) (7)
4.2.4CTS固件签名 (7)
4.2.5机器序列号 (8)
4.2.6机器配置 (9)
4.2.7FRP功能 (9)
4.3CTS/GTS测试可豁免测试项 (9)
4.4CTS、GTS测试不过项补丁 (11)
4.4.17.1CTS/GTS测试共性问题 (11)
4.4.2CTS312xSDK测试特有问题 (18)
4.4.3CTS3288SDK测试特有问题 (20)
4.4.43368SDK CTS测试特有问题 (20)
4.4.53188SDK CTS测试特有问题 (21)
4.5CTS V ERIFIER测试不过项补丁 (21)
4.5.1有关CV中Audio相关测试的说明 (23)
4.6XTS4.1R2测试不过项补丁 (27)
1简述
本文档主要是简单介绍下Android7.1R5RK平台上过GMS的一些环境搭建及部分目前测试不过项的补丁,若有存在其他问题,欢迎反馈,我们会尽快进行补充。
(请在CTS测试前更新到最新的Android7.1代rk3126_tablet_nougat_beta_170512.xml)另外,测试CTS的上位机系统要求为64位ubuntu14以上。
Meida1.2资源包:/s/1qXWtq8G
7.1R5链接:/s/1i4LL9GD密码:gdgl
Gts4.1R2:链接:/s/1jHNf4yi密码:r8gs
2测试命令
1.测试整个CTS:run cts
如果PC上接多台机器,需要加-s序列号,即run cts-s xxx
注意:可以多台测试同时测试CTS以缩短时间,建议不超过3台
run cts--shards num
2.模块测试
run cts-m xxx-t xxx
-m表示模块名
-t表示类名和函数名,既可以单测整个类也可以单测一个测试用例
如下图,分别是run cts-m CtsAppTestCases-t android.app.cts.SystemFeaturesTes
run cts-m CtsAppTestCases-t android.app.cts.SystemFeaturesTest#testCameraFeatures
3.复测获取第二份报告。
输入:l r获取之前测试的session_id
然后输入run cts--retry xxx(session_id)
注意:7.1的CTS包需要在PC端进行如下配置:
1.Sudo apt-get install aapt
2.把代码中out/host/linux-x86/bin/adb拷贝到/sbin目录下或者配置到环境变量中
3.重新连接到PC即可。
3产品编译
编译对应的产品首先需要确保JDK版本在1.8或以上,并且需要更新工程的环境变量,之后选择要编译的产品即可(注:在编译CTS固件之前,需要参考下面CTS代码配置):
产品最终的固件必须是user编译的,在调试阶段建议先切为userdebug模式编译。
在编译过程中,由于是user模式编译,生成的system.img会比较大,若出现如下错误:error:ext4_allocate_best_fit_partial:failed to allocate178blocks,out of space?
Out of space?the tree size of out/target/product/rk312x/system is(MB):
1330out/target/product/rk312x/system
The max is1024MB.
这个大小在/device/rockchip/common/BoardConfig.mk定义,改大即可。
@@-77,7+77,7@@TARGET_PROVIDES_INIT_RC?=false
BOARD_HAL_STATIC_LIBRARIES?=libdumpstate.$(TARGET_PRODUCT) libhealthd.$(TARGET_PRODUCT)
//MAX-SIZE=512M,for generate out/.../system.img
-BOARD_SYSTEMIMAGE_PARTITION_SIZE?=1073741824
+BOARD_SYSTEMIMAGE_PARTITION_SIZE?=1573741824
4Android7.1CTS
4.1简述
目前CTS测试,使用的是7.1CTS R5测试包,后续随着代码的更新谷歌也会陆续进行测试包的更新。
4.2Android7.1CTS环境设置
4.2.1CTS代码集成DRM、GMS包
1.确保DRM编译:
在device/rockchip/common/device.mk中添加如下代码:
diff--git a/device.mk b/device.mk
index20f41f6..534fef0100755
---a/device.mk
+++b/device.mk
@@-20,6+20,8@@$(shell python$(LOCAL_PATH)/auto_generator.py$(TARGET_PRODUCT) preinstall_del)
$(call inherit-product,$(SRC_TARGET_DIR)/product/full_base.mk)
+include vendor/widevine/widevine.mk
+
PRODUCT_AAPT_CONFIG?=normal large xlarge hdpi xhdpi xxhdpi
PRODUCT_AAPT_PREF_CONFIG?=xhdpi
2.确保GMS包编译:
GMS包SDK默认是不带的,请向认证公司索取最新的GMS包,解压后放在:
vendor/partner_gms目录下(注意不要随意改变这个路径)
在/device/rockchip/common/BoardConfig.mk中将以下两项设为true
#google apps
BUILD_WITH_GOOGLE_MARKET?=true
BUILD_WITH_GOOGLE_MARKET_ALL?=true
注意:
1.低端的机器建议只配置BUILD_WITH_GOOGLE_MARKET?=true,
BUILD_WITH_GOOGLE_MARKET_ALL?=false这样的配置是可以过CTS测试的最小集合。
具体的修改可以参考“公共补丁\GMS包\gms-mandatory.mk”
2.GMS包解压的路径必须与products/gms.mk中配置的宏相匹配,SDK默认配置的是:
ANDROID_PARTNER_GMS_HOME:=vendor/partner_gms
3.如果集成gms包,开机向导连接wifi后会提示升级要很久才能过,可以再
vendor/partner_gms/products/gms.mk中把ro.setupwizard.require_network=any这个去掉,这样在开机向导就可以跳过wifi连接。
3.Backup配置
在frameworks/base/packages/SettingsProvider/res/values/defaults.xml中把def_backup_transport这个配置修改成如下配置:
<string
name="def_backup_transport">com.google.android.gms/.backup.BackupTransportService</string>
4.2.2CTS代码配置
●配置机器的sensor,再device/rockchip/rk312x/BoardConfig.mk中把机器有的sensor配置打开,
默认只打开了gsensor(BOARD_GRAVITY_SENSOR_SUPPORT:=true),具体sensor的定义可以参考device/rockchip/common/BoardConfig.mk。
#product has follow sensors or not,if had override it in product's BoardConfig
BOARD_HAS_GPS?=false
BOARD_NFC_SUPPORT?=false
BOARD_GRAVITY_SENSOR_SUPPORT?=false
BOARD_COMPASS_SENSOR_SUPPORT?=false
BOARD_GYROSCOPE_SENSOR_SUPPORT?=false
BOARD_PROXIMITY_SENSOR_SUPPORT?=false
BOARD_LIGHT_SENSOR_SUPPORT?=false
BOARD_PRESSURE_SENSOR_SUPPORT?=false
BOARD_TEMPERATURE_SENSOR_SUPPORT?=false
BOARD_USB_HOST_SUPPORT?=false
BOARD_USB_ACCESSORY_SUPPORT?=true
BOARD_CAMERA_SUPPORT?=false
●编译后的系统要求ro.adb.secure=1,请在/device/rockchip/common/system.prop做如下修改:
-ro.adb.secure=0
+ro.adb.secure=1
删除机器不需要的feature xml文件,机器的features现在集中再这个文件中来配置frameworks/native/data/etc/tablet_core_hardware.xml,具体拷贝的地方是再
device/rockchip/common/device.mk,其中有关sensor的features是收宏控制的。
●若需要修改机器xdpi、ydpi,需要再在lcd-xxx.dts中添加screen-width=<xxx>;screen-hight=
<xxx>
●若机器没有camera,则需要打上“公共补丁/没有camera的机器才要打的补丁
frameworks_av_no_camera_MediaRecorderTest.patch”
●工程编译好之后,若平台是:
1.RK312x平台需要关注:CTS312xSDK测试特有问题
2.RK3288平台需要关注:CTS3288SDK测试特有问题
3.RK3368平台需要关注:CTS3368SDK测试特有问题
4.RK3188平台需要关注:CTS3188SDK测试特有问题
4.2.3CTS固件生成(KEY签名)
测试CTS可以通过以下步骤生成用KEY签名的OTA固件:
1.将SecureBootTool生成的两个key(不改名)复制到build/target/product/security/目录下;
2.make otapackage
4.2.4CTS固件签名
CTS固件签名,需要确保CTS代码集成DRM、GMS包部分已经做好,使用SecureBootTool 工具对update.img进行签名。
确认方法:在烧了加签名的固件机器上,启动后,查看ro.secureboot属性是否为true
或者sys.secureboot属性是否为true.
签名需要注意的点:
固件签名使用SecureBootTool_v1.83这个工具签名,并确保工具选项配置如下图:
1.选择好对应的芯片平台
2.选择soft
一款机器只能使用一对key,烧过签名固件的机器只能烧同一个key签名的固件。
所以key请妥善保存。
4.2.5机器序列号
对于有需求,需要自己烧写序列号的客户,需要修改如下代码,默认序列号会自动生成:mid-Porsche:~/android4.4_SDK$/system/core/drmservice$git diff.
diff--git a/drmservice/drmservice.c b/drmservice/drmservice.c
index1db2662..f84ada7100755
---a/drmservice/drmservice.c
+++b/drmservice/drmservice.c
@@-69,7+69,7@@typedef unsigned char uint8;
#define DEBUG_LOG0//open debug info
-#define SERIALNO_FROM_IDB0//if1read sn from idb3;if0generate sn auto
+#define SERIALNO_FROM_IDB1//if1read sn from idb3;if0generate sn auto
#define SET_IFACE_DELAY300000
4.2.6机器配置
●测试CTS,首先需要打开一次Chrome,并把欢迎界面点掉,确保测试Chrome的时候不会让
弹出的账号登陆窗口影响了测试的进行。
●Settings->Wi-Fi连接wifi,必须是可以访问外网;
●Settings->Developer options->Stay awake,勾选该选项;
●Settings->Developer options->Usb debugging勾选;
●Settings->Location打开定位服务;
●Settings->Language&input->Language->English(United States)
●Settings->Display->Sleep设置成最长时间;
●Settings->Security->Screen lock选择None;
●拷贝媒体资源文件,需使用android-cts-media-1.2新版的媒体资源包:
copy_media.sh1920x1080[-s serial]
●Settings->Developer options->Verify apps over USB不勾选;
Settings->Security->Unknown sources不勾选;
●物理竖屏的机器要竖屏放置,物理横屏的机器横屏放置,最好是立起来放;
●启动浏览器,并清除任何浏览器启动界面、设置界面或是登陆账户界面。
●运行测试设备时,不得用于任何其他任务,必须放在一个固定位置。
(为了避免触发传感器)●确保相机不被遮挡,相机对着对比度高,容易对焦的物体,同时确保有足够的亮度。
●每次重新测试,都要将机器进行如上配置。
4.2.7FRP功能
谷歌目前要求系统需要实现FRP功能,具体实现请参考“FRP补丁”,请按照里面的frp_readme.txt 步骤来实现。
注意:修改后再打包update.img的时候parameter记得替换。
4.3CTS/GTS测试可豁免测试项
对mdpi(dpi=160的设备)则个是豁免项,请用Google bug id:30546636申请豁免。
CTSR2代码设计上没有考虑到分辨率较低的机器,低分辨的机器可以向谷歌申请豁免https:///#/c/319285/,R3测试包后已修复此问题。
没有蓝牙的机器,把蓝牙的features屏蔽后,测试gts报这个错误,可以尝试申请豁免。
错误堆栈如下,应该是测试用例没有判断没有蓝牙的情况。
4.4CTS、GTS测试不过项补丁
不过项的补丁放置按照平台进行,如312x平台的问题,请到rk312x平台补丁目录下进行查找。
共有的问题请查找共用补丁目录。
4.4.17.1CTS/GTS测试共性问题
●Package:CtsOsTestCases
Class:bDebuggingTest
Method:testUsbDebugging
该项要求系统ro.adb.secure=1,ro.adb.secure=0时会出现该项错误。
⏹修改对应方法:
请在/device/rockchip/common/system.prop做如下修改:
-ro.adb.secure=0
+ro.adb.secure=1
●Package:CtsPermissionTestCases
Class:android.permission.cts.FileSystemPermissionTest
Method:testAllCharacterDevicesAreSecure
⏹修改对应方法:
在libcore目录上打上libcore_testAllCharacterDevicesAreSecure.patch补丁
请按照报告中Details提示,对应的将节点加在补丁中。
android.permission.cts.FileSystemPermissionTest
--testDevMemSane
--testDevkmemSane
这两个问题请参考“kernel_testDevMemSane_process_vm_readv_ESRCH.patch”
这个问题需打上补丁“device_rockchip_common_fix_testAllFilesInSysAreNotWritable.patch”
●Package:
Class:.cts.DnsTest
Method:testDnsWorks
⏹修改对应方法:
请连接VPN进行测试,若测试不过请在/system/core目录打上system_core_testDnsWorks.patch补丁
●Package:CtsSecurityTestCases
Class:android.security.cts.BannedFilesTest
Method:testNoSu
testNoSuInPath
⏹修改对应方法:
请将固件编译成USER版本
●Package:CtsBluetoothTestCases
Class:android.bluetooth.cts.BasicAdapterTest
⏹修改对应方法:
若机器无蓝牙,再frameworks/native/data/etc/tablet_core_hardware.xml中把Bluetooth相关的features都删除。
修改方法:
在frameworks/native/data/etc/tablet_core_hardware.xml中把bluetooth_le的features删掉
●Package:CtsViewTestCases
Class:android.view.cts.DisplayRefreshRateTest
Method:testRefreshRate
⏹修改对应方法:
通过cat sys/devices/platform/rk-fb/graphics/fb0/fps查看当前lcdc配置的帧率,调整lcd的clk,确保这个帧率不超过60并尽可能的接近60.个别机器上层刷新帧率无法达到60fps的可以尝试如下修改:
参考frameworks_base_fix_testRefreshRate.patch这个补丁,把log中看到是实际获取到的帧率修改进去。
●Package:CtsHardwareTestCases
⏹修改对应方法:
参考“sensor”这个目录的补丁来修改,目前已经调通的gsensor有:mma8452、sensortek8312、lis3dh、mc3236,如果机器使用的不是这些型号的gsensor,参考g-sensor+陀螺仪通用补丁_文件夹中没有找到对应的sensor用这个先调试。
●Package:CtsSecurityTestCases
android.security.cts.EncryptionTest
--testEncryption
⏹修改对应方法:不是lowmem的机器,并且RSA加密性能足够的话,会要求机器要加密,
机器加密后可通过。
参考“device_rockchip_rkxxx_testEncryption.patch”
●Package:CtsUsbTests
b.TestUsbTest
--testUsbSerial
⏹修改对应方法:pc需要root权限来执行cts脚本,并且机器要有序列号(getprop ro.serialno)。
PC端可以用lsusb-v看下PC识别到的机器的序列号。
●Package:桌面图标预置
修改方法:Launcher3上桌面图标预置,请参考packages_apps_Launcher3_icons_demo.patch
●Package:CTSVerifier
Usb Accessory Test
分析:Accessory测试方法有所变动,请参考”verifier/CV中accessory测试方法.txt”.
如果个别机器一直测试不过,可以尝试如下补丁“公共补丁\verifierverifier_frameworks_base_cv_accessory.patch”,不过会导致退出accessory模式的时间变长。
●Package:CTS测试中断
有一些只用USB充电的机器,在测试CTS的过程中出现重启后PC不能识别到机器,或者显示device offline的现象,导致CTS测试中断。
分析:这个与PC的usb口的稳定性也有关系,建议使用有外接电源的HUB来连接机器。
●Package:桌面的search widget
分析:Launcher3的代码中会去创建一个search widget,其显示样式有可能不符合GMS的要求,可以参考“有关桌面searchWidget.TXT”这个文档来修改
●Package:CtsAadbHostTestCases
分析:这两项测试失败是因为测试机器时间和测试PC时间不符合要求导致的(PC time>mid time),确认机器是默认时区默认美国英语,PC的时间要设置为标准的北京时间,PC要求64位。
●Package:clientID
有关机器clientID的配置,请参考补丁“共用补丁/clientid设置.txt”
●Package:CtsDpiTestCases
分析:这个测试失败是因为lcd的dtsi中没有配置屏幕的物理尺寸,导致xdpi和ydpi计算出错,需要再在lcd-xxx.dts中添加screen-width=<xxx>;screen-hight=<xxx>;
●Package:CtsViewTestCases
分析:如果出现这个错误,需要打上“frameworks_base_fix_android.view.cts.SurfaceViewSyncTests.patch”这个补丁。
●Package:GtsPermissionTestCases
分析:出现这个问题说明在测试gts之前有打开过camera,需要恢复出厂设置后测试。
分析:出现这个问题说明再system中有apk的targetSdkVersion不是23或者以上,可以参考“公共补丁\gts\RuntimePermission”中的补丁来处理。
如果是没有源码的第三方APK,需要删除。
●Package:GtsGmscoreHostTestCases
分析:
在frameworks/base/packages/SettingsProvider/res/values/defaults.xml中把def_backup_transport 这个配置修改成如下配置:
<string name="def_backup_transport">com.google.android.gms/.backup.BackupTransportService</s
确认上述修改后,恢复出厂设置后可以通过。
分析:这个问题需要打上“公共补丁\gts\frameworks_base_fix_gts_testRestrictedProfile.patch”
●Package:GtsFeaturesTestCases
分析:如为通过CV中Hifi Ultrasound测试在config.xml中把config_supportMicNearUltrasound 以及config_supportSpeakerNearUltrasound设置成false,那么需要打上这个补丁“公共补丁\gts\frameworks_base_fix_gts_testNearUltrasoundProperties_if_config_off.patch”。
但是建议还是使用支持HIFI的MIC和SPEAKER,以实测为准,一般都能测过。
●Package:GtsMediaTestCases
分析:user模式下gts这项测试不过,userdebug可以测试,是selinux权限配置问题,需要打上“公共补丁\device_rockchip_common_fix_gts_testL3With534P30.patch”,0512代码已经提交。
●Package:CtsAppSecurityHostTestCases
分析:这个问题需要打上“公共补丁\frameworks_base_fix_DirectBootHostTest.patch”
分析:这个问题是因为自动弹出输入法挡住部分ui导致,需要打上“公共补丁\frameworks_base_fix_testCreateExisting.patch”
●Package:CtsLibcoreTestCases
分析:
这个错误是因为设置中时间格式不符合要求导致,可以尝试修改一下设置中时间格式,关闭24小时模式。
这个错误是因为Selinux没有使能导致的,编译USER的固件即可通过测试。
可以adb shell
下输入getenfore如果输出Enforcing表示Selinux使能。
这项是网络问题,认证公司的网络可以过。
●Package:WIFI
User模式下wifi不能打开,userdebug的固件可以打开,是selinux权限配置问题,需要打上“公共补丁/user模式下问题\wifi打不开”下的修改,0512的代码已经提交。
●Package:Setting中固件加密
user固件setting中加密失败,userdebug的固件(selinux关闭)的可以加密成功。
selinux配置问题,需要打上“公共补丁\user模式下问题\固件加密失败\device_rockchip_common_user_encrypt.patch”
0512的代码已经提交:device/rockchip/common
●Package:CtsAccelerationTestCases
分析:这个问题是因为在设置中,开发者选项中把强制GPU渲染打开了,去掉就可以了。
打上“device_rockchip_common_close_forcehwui.patch”后,installclean后编译即可。
0512的代码中出现以下两个问题,会再下次推送中解决。
xzj@bogon:~/Nougat/3126/frameworks/av$git log
commit9bdae438c0aa77548ab790b0287c78fa4cf90ac6
Author:xzj<xzj@>
Date:Wed May1714:40:432017+0800
[cts]:when caller is android.security.cts,goto nuplayer
Change-Id:Idc895fd278005516b7afed6455a5d297c1839571
xzj@bogon:~/Nougat/3126/device/rockchip/common$git log
commit b60ec330d9abad5dfc5d425c14f24917bbfe5231
Author:xzj<xzj@>
Date:Wed May1713:56:442017+0800
selinux fix cts testSetWallpaper_disallowed fail
Change-Id:I7c89deb6ed572394c0fa8117b0918330c40b426d
4.4.2CTS312xSDK测试特有问题
分析:需要打上“312x/camera”下的补丁。
分析:需要打上“312x/kernel_fix_bionic.patch”
分析:需要打上“312x/framework_av_fix_testPlaybackRate.patch”
分析:部分机器出现这个错误需要打上(注:没有问题的不需要打)
“312x/hardware_rockchip_audio_fix_testAudioRecordLocalMono16Bit.patch”
分析:需要打上“312x/frameworks_base_gts_fix_exoplayer.patch”
分析:user模式的固件测试失败,userdebug的固件可以测试通过。
由于312x使用的是3.10的kernel,所以需要打“312x/device_rockchip_common_fix_CtsAtraceHostTestCases.patch”,0512代码已提交。
CtsAppSecurityHostTestCases#android.appsecurtiy.cts.PermissionHostTest测试大概率卡主
分析:这个是因为CTS测试代码没设计缺陷,可以参考这个提交,目前R4后才开始合并这个提交,https:///#/c/339263/
确认vendor/rockchip/common/目录下有如下提交
commit abc3536274280f4c923df0ace8780962a770ab85
Author:chenzhen<chenzhen@>
Date:Fri Mar3115:47:522017+0800
GPU:312x:mali_so_of_r7p0-00rel1-x-2@0_for_312x_7.1
Change-Id:Iebc95e56bd905ffe8f432e8ee13523a4f3e23816
分析:这个是因为有些机器再设置权限的界面,访问外部存储器的权限的配置没有显示出来,可以把机器竖屏方式测试即可通过。
可以打上“frameworks_base_fix_PermissionsHostTest.patch”来增加通过概率。
120DPI的机器需要打上“312x\120DPI”下的补丁
1.120DPI的机器CtsPrintTestCases错打上“312x\120DPI\CtsPrintTestCases”下补丁
2.120DPI的机器testThemes测试不过,提示Failed to get resource:/ldip.zip这个可以申请豁免
3.120DPI的机器,android.widget.cts.ToolbarTest#testTitleAndSubtitleAppearance测试不过,需
要打上“frameworks_base_fix_testTitleAndSubtitleAppearance.patch”这个补丁
4.4.3CTS3288SDK测试特有问题
4.4.43368SDK CTS测试特有问题
4.4.53188SDK CTS测试特有问题
4.5CTS Verifier测试不过项补丁
分析:CV中BYOD测试测试不过,如果是打开过内存优化的机器,需要打上“公共补丁\verifier\frameworks_base_fix_CV_BYOD.patch”这个补丁。
分析:由于R3调整了布局,所以测试项显示不完整,需要手动去滑动才能显示出来。
请参考“公共补丁\verifier\BYOD-DeviceOwnerTests说明”中的说明。
分析:这里的颜色设置有效值可以参考如下网址:http://simple.be/web/color/codes
再测试之前,需要到settings->Security->Use one lock关闭,并设置锁屏(PIN,Pattern等),如下图
4.5.1有关CV中Audio相关测试的说明
注意:谷歌强烈建议使用四段耳机(headset),如果是使用三段耳机的机器(headphone),在下列测试中有弹出确认是否有headset的时候,可以直接点no然后PASS测试。
312x需要加入IO口耳机检测(3126的机器需要打上”rk312x补丁\external_tinyalsa_cv_audio.patch”这个补丁来增加通过率)。
需要的外设:
1、otg转换线。
2、品牌的usb micphone且不能带有speaker,目前有验证过罗技的
3、耳机头的音箱。
4、两台待测设备。
5、headset loopback plug。
功能是将耳机输出bypass到耳机MIC输入进行回环测试(如果没有,请硬件同事配合做一个)
做法如下图:
测试项测试方法:
可以参考如下网址:https:///compatibility/cts/audio-framework.html
1.Audio Frequency Line Test
如果是四段耳机,选择Yes;如果是三段耳机选择NO,结束测试。
插入loopback plug->点击yes->loopback plug ready->然后点击TEST等待结果。
等待结果FAIL/PASS
2.Audio Input Devices Notifications Test
如果是四段耳机,选择Yes;如果是三段耳机选择NO,结束测试。
注意:如果是3126的机器,认证公司又要求要测试这一项,3126机器需要IO口来检测耳机,
最新硬件已有发布方案,驱动也需要做相应的修改打上“rk312x补丁/[RK3126_ANDROID7.1-SDK]kernel_ADC实现耳机检测_Patch_V1.0.patch”。
cat/sys/class/switch/h2w/state
拔插0/1
点击yes->CLEAR MESSAGES->拔插耳机看到有CONNECT/DISCONNECT DETECTED则PASS
3.Audio Input Routing Notifications Test
如果是四段耳机,选择Yes;如果是三段耳机选择NO,结束测试。
点击yes->点击RECORD开始录音->插入耳机->观察界面有没有提示->拔出耳机->观察界面有没有提示->点击STOP停止录音->如拔插接线有提示则PASS
4.Audio Output Devices Notifications Test
这项测试需要机器有耳机检测功能。
3126机器需要IO口来检测耳机,最新硬件已有发布方案,驱动也需要做相应的修改打上“rk312x补丁/[RK3126_ANDROID7.1-SDK]kernel_ADC实现耳机检测_Patch_V1.0.patch”。
cat/sys/class/switch/h2w/state
拔插0/1
点击CLEAR MESSAGE按钮,然后插入、拔出耳机,看界面中是否有显示通知信息。
5.Audio Output Routing Notifications Test
这项测试需要机器有耳机检测功能。
3126机器需要IO口来检测耳机,最新硬件已有发布方案,驱动也需要做相应的修改打上“rk312x补丁/[RK3126_ANDROID7.1-SDK]kernel_ADC实现耳机检测_Patch_V1.0.patch”。
cat/sys/class/switch/h2w/state
拔插0/1
点击PLAY按键,插入耳机,看界面中是否会显示通知信息;拔出耳机看界面中是否显示通知信息。
最后点击STOP停止播放。
6.Audio Frequency Microphone Test
1)通过耳机口外接一个speakers,把speakers放在距离机子40cm的地方,然后点击TEST1
等待结果。
2)然后通过otg线连接usb microphone,microphone放在距离屏幕中心20cm的地方然后
点击TEST2,等待结果。
3)等待结果FAIL/PASS
注意:这项测试并不需要全部都PASS,只要PASS按钮能点就可以。
7.Audio Frequency Speaker Test
1)通过otg线连接usb microphone,microphone放在距离屏幕中心20cm的地方,然后点
击TEST。
2)等待结果FAIL/PASS
注意:这项测试并不需要全部都PASS,只要PASS按钮能点就可以。
8.Hifi Ultrasound Microphone Test
注意:测试此项时,需要确认模具的MIC开孔是否与PCB上贴的MIC朝向一致。
如果机器的结构没有办法修改,可以把UltraSound的配置关闭,然后点击PASS通过测试。
不过不建议这样修改。
xzj@bogon:~/Nougat/3126/frameworks/base$git diff core/res/
diff--git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index f017460..3c8f40d100644
---a/core/res/res/values/config.xml
+++b/core/res/res/values/config.xml
@@-2379,10+2379,10@@
<!--Ultrasound support for Mic/speaker path-->
<!--Whether the default microphone audio source supports near-ultrasound frequencies (range of18-21kHz).-->
-<bool name="config_supportMicNearUltrasound">true</bool>
+<bool name="config_supportMicNearUltrasound">false</bool>
<!--Whether the default speaker audio output path supports near-ultrasound frequencies (range of18-21kHz).-->
-<bool name="config_supportSpeakerNearUltrasound">true</bool>
+<bool name="config_supportSpeakerNearUltrasound">false</bool>
<!--Whether the Unprocessed audio source supports the required frequency range and level -->
<bool name="config_supportAudioSourceUnprocessed">false</bool>
1)使用两台设备,一台作为测试机,一台作为参考机,两台的媒体音量请保持在70%。
2)测试机上点击record,并且紧接着(一秒内)点击参考机的play。
3)等待测试机上的结果PASS/FAIL
9.Hifi Ultrasound Speaker Test
注意:这个测试与机器的结构以及喇叭的音腔有关系,需要确认SPEAKER有开孔。
如果机器的结构没有办法修改,可以把UltraSound的配置关闭,然后点击PASS通过测试。
不过不建议这样修改。
xzj@bogon:~/Nougat/3126/frameworks/base$git diff core/res/
diff--git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index f017460..3c8f40d100644
---a/core/res/res/values/config.xml
+++b/core/res/res/values/config.xml
@@-2379,10+2379,10@@
<!--Ultrasound support for Mic/speaker path-->
<!--Whether the default microphone audio source supports near-ultrasound frequencies (range of18-21kHz).-->
-<bool name="config_supportMicNearUltrasound">true</bool>
+<bool name="config_supportMicNearUltrasound">false</bool>
<!--Whether the default speaker audio output path supports near-ultrasound frequencies (range of18-21kHz).-->
-<bool name="config_supportSpeakerNearUltrasound">true</bool>
+<bool name="config_supportSpeakerNearUltrasound">false</bool>
<!--Whether the Unprocessed audio source supports the required frequency range and level -->
<bool name="config_supportAudioSourceUnprocessed">false</bool>
1)使用两台设备,一台作为测试机,一台作为参考机,两台的媒体音量请保持在70%。
2)参考机上点击record,并且紧接着(一秒内)点击测试机的play。
3)如果参考机器上的结果为PASS,则测试机勾选PASS。
8.Audio Loopback Latency Test
1)如果是四段耳机,选择Yes;如果是三段耳机选择NO,结束测试。
2)插入做好的loopback plug,点击LOOPBACK PLUG READY
3)调节音量,可能需要多次调整才能测试通过。
4)点击测试,等待测试结果,如果测试不过重复第三步操作。
4.6XTS4.1R2测试不过项补丁
测试XTS前需要保证代码集成widevine及固件已经加密。
具体请参考“补丁\公共补丁\gts”
com.google.android.xts.afw.AfwRequiredAppsOverlaysTest
--testContactsRequiredManagedDeviceOverlay
--testContactsRequiredManagedProfileOverlay
以上两项打上“公共补丁/gts补丁/vendor_google-GMS-replace-not-exist-apps-with-AOSP-apps.patch”这个补丁
●Package:google.placement
Class:com.google.android.xts.placement.UiPlacement
Method:testPlayStore
⏹修改对应方法:
请确保launcher每个页面都可见Play Store这个图标。
并且打上“共用补丁\gts补丁frameworks_base_fixXtstestPlayStore.patch”这个补丁。
testPermitAccessibilityServices这个测试错误,是因为少了talkback这个apk导致的。
部分客户没有全部编译GMS包,而只是编译了mandatory的,把talkback加上去既可以测试通过。
GTS截图出错,在部分性能较差的机器上出现测试GTS的时候截图出现chrome和google now 的截图显示的不是chrome和google now的界面,这个需要打上“gts补丁/测试GTS截图错误”这个目录下的补丁。