1.android.security.cts.PackageSignatureTest测试fail(MTK平台)

原因:由于用的是google default key而导致的fail,需要自己定义release key,不仅可以满足CTS request,还可以满足工信部CATR TAF spec。

方案:在编译器执行如下命令:

Genernate the release key

./development/tools/make_key releasekey '/C=CN/ST=BeiJing/L=HaiDian/O=MediaTek/OU=WCD/CN=demo/emailAddress=demo@mediatek.com',类似以此产生platform keys,media keys,shared keys,testkey.

然后把这些生成的密钥移动到device/mediatek/common/security/${Project}路径下,还有一点最重要的是要在ProjectConfig.mk中设置宏MTK_SIGNATURE_CUSTOMIZATION = yes,最后编译自动会生成二进制的apk签名,问题解决!

2.com.google.android.permission.gts.InitialRuntimePermissionStateTest#testAllSystemAppsUsingRuntimePermissionsTargetMncAndAboveSdk测试fail(MTK/Sprd都适用)

原因:这是由于一些apk的sdk版本过低导致的权限问题

方案:导出device.log,查找出是哪些apk,然后在对应apk下的AndroidManifest下修改下目标sdk,一般都修改为当前最新版的,有些危险权限(九组)还要在代码中添加运行时代码,不然apk会崩的。

3.Camera FOV Calibration测项failed(适用于MTK平台,展讯平台修改较复杂,后面会更新)

原因:Report FOV与Display FOV的值相差2度以上

方案:测试时把绿线和黑线对齐,这时查看Display FOV实测值是多少,记录下来。然后查看对应项目的cfg_setting_imgsensor.cpp文件,看看getSensorViewAngle中MainSensorHorFOV的值是多少?把MainSensorHorFOV的值改成刚才记录的实际结果就OK了,如果是前摄有误差,同理修改下SubSensorHorFOV 的值为实测值。

4.android.os.cts.BuildVersionTest#testBuildFingerprint测试fail

原因:fingerprint信息匹配不一致

方案:fingerprint是设备的唯一标识,由设备的多个信息拼接合成。我自己的修改习惯通常就是在build/core/Makefile文件里重新定义BUILD_FINGERPRINT,比如: BUILD_FINGERPRINT := $(FINGER_PRINT_BRAND)/$(FINGER_PRINT_NAME)/$(FINGER_PRINT_DEVICE):$(PLATFORM_VERSION)/$(BUILD_ID)/$(FINGER_PRINT_TIME):$(TARGET_BUILD_VARIANT)/$(FINGER_PRINT_BUILD_VERSION_TAGS)

然后在build/core/version_default.mk文件中添加自己对应的字段

FINGER_PRINT_BRAND:= 
FINGER_PRINT_NAME:= 
FINGER_PRINT_DEVICE:= 
FINGER_PRINT_BUILD_VERSION_TAGS:= release-keys(这个必须是release-keys,不然会有其它fail项,具体的我忘记了,后续会补充)
FINGER_PRINT_TIME :=$(shell date +%H%M%S)

brand,name,device在对应的buildinfo文件都是有的,厂商名,设备名等,这时就能保证信息匹配,fingerprint会在out目录下的build.prop文件中生成。

5.com.google.android.os.gts.RequiredComponentsTest#testServicesLibHostAppSignedCorrectly

 com.google.android.os.gts.RequiredComponentsTest#testSharedLibHostAppSignedCorrectly两项测试fail

方案:去除平台自带的ExtShared.apk和ExtService..apk,用google原生的即可PASS,如果仍然测不过,就编一个release-keys的版本,写死ro.build.tags =release-keys

6.com.google.android.installpackageswhitelist.gts.GtsInstallPackagesWhitelistDeviceTest#testInstallerPackagesAgainstWhitelist

原因:此项为GTS5.0_r1新增测试项,由于非whitelist的apk授予了INSTALL_PACKAGES权限,在log中可以明确看出哪些apk被授予了此项权限

方案:在AndroidManifest.xml文件中去除即可,或者向google申请把此apk添加到whitelist中

还有一种情况是此apk已经加入到了白名单当中,但是在预置到项目中时用的是platform平台签名(签名不匹配)也会导致fail,这时要在Android.mk文件中修改为PRESIGNED即可。Report下有个config目录,里面的.dynamic文件包含已经申请了白名单的apk。

7.com.android.cts.monkey.MonkeyTest#testIsMonkey测试failPRESIGNED

此问题当时搞了好久没查到原因,log也没看出来异常,最后经过大神帮助解决了,竟然是项目中log打太多导致的fail

看了Monkeytest.java测试源码,由于中间log太多,导致executeAdbCommand方法长时间得不到执行,导致超时fail。

8.android.provider.cts.MediaStoreIntentsTest#testViewImageFile           junit.framework.AssertionFailedError: No ResolveInfo found for Intent { act=android.intent.action.VIEW dat=http://example.com/image typ=image/bmp }

android.provider.cts.MediaStoreIntentsTest#testViewVideoFile   junit.framework.AssertionFailedError: No ResolveInfo found for Intent { act=android.intent.action.VIEW dat=http://example.com/video typ=video/mpeg4 }

由于项目中去除了GMS包中的photos和平台的Gallery,用的是第三方Gallery导致的fail

解决方案:增加GMS包中的photos或平台的Gallery中的一个即可,或者在第三方Gallery中的AndroidManifest.xml添加这两种格式类型的support。

9.

android.app.cts.DialogTest#testOnKeyDownKeyUp

android.app.cts.InstrumentationTest#testSendKeySync

android.view.cts.ContentPaneFocusTest#testAccessActionBar

android.webkit.cts.WebViewTest#testGetHitTestResult

android.widget.cts.DialerFilterTest#testOnKeyUpDown

android.app.cts.InstrumentationTest#testSendStringSync

android.view.cts.ViewTest#testOnKeyDownOrUp

这些项测试fail是由于输入法没有响应,需要对第三方预置默认输入法手动禁用并使用Android 键盘输入法。

抽空先写这么多,我会定期更新,常见的fail项还有很多,解决CTS fail项一是靠积累经验,二是要分析log,研究一下google测试源码,循序渐进慢慢就能掌握,转载请注明出处,谢谢!

转载于:https://www.cnblogs.com/gaoshen/p/7772990.html

CTS/GTS 常见问题解答相关推荐

  1. Unix编程常见问题解答(精华)

    Unix编程常见问题解答 原帖:http://www.newsmth.net/bbsanc.php?path=%2Fgroups%2Fcomp.faq%2FUnix%2F3%2Ffaq%2FUnixP ...

  2. Unix编程常见问题解答

    关于这篇"常见问题解答" ************************ 这篇"常见问题解答" 由Patrick Horgan自一九九六年五月开始起草:因其历 ...

  3. CP20常见问题解答

    CP20常见问题解答 CP20常见问题解答 注:若您对CP20用途不十分了解,请参考前面HC10的问答 Q)基于服务器的解决方案都有哪几种?各有什么特点? Q)CP20的usb端口是否会成为资料外泄的 ...

  4. Delphi XE5 常见问题解答

    Delphi XE5 常见问题解答 有关于新即时试用的问题吗?请看看 RAD Studio 即时试用常见问答. 常见问题 什么是 Delphi? Embarcadero? Delphi? XE5 是易 ...

  5. Internet Explorer 8 Beta2 常见问题解答

    Internet Explorer 8 Beta2 常见问题解答<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:o ...

  6. 海康威视摄像头安装插件检测不到_海康威视摄像机常见问题解答

    海康威视摄像机常见问题解答 1.忘记摄像机IP地址怎么办? ①可以通过设备网络搜索工具SADP在线搜索 ②可以使用客户端4200在线搜索功能 ③在设备和PC开启UPNP功能时,可以通过PC中网络发现查 ...

  7. abaqus python二次开发攻略_Abaqus有限元分析常见问题解答与实用技巧 12天后上架...

    Abaqus有限元分析常见问题解答与实用技巧已印刷完毕,1-2天后上架,先睹为快.现在某些网站上的售卖信息,不靠谱.温馨提示:封底无防伪标均为盗版! 序  言 Abaqus是是国际上先进的大型通用非线 ...

  8. PhpExcel中文帮助手册|PhpExcel基本使用方法及常见问题解答

    为什么80%的码农都做不了架构师?>>>    一.介绍一下PHPExcel的基本使用方法 include 'PHPExcel.php'; include 'PHPExcel/Wri ...

  9. c语言中removeDir的相反函数,C语言编程常见问题解答之常用函数的包括文件.doc

    C语言编程常见问题解答之常用函数的包括文件 C语言编程常见问题解答之常用函数的包含文件(1) 作者:unknown 更新时间: 2005-05-10 函数 包含 类别 功能 _atold math.h ...

最新文章

  1. 德国科学院院士:传统企业寻求变革,向智能制造靠近
  2. svn cleanup失败
  3. 微型计算机与维修自测,微机系统及维护第三章自测.doc
  4. mkimage工具讲解
  5. 读取纯真IP数据库的公用组件QQWry.NET
  6. Docker的界面话管理工具
  7. 架构演化:云原生时代开启之系列一演化篇
  8. 前端学习(2356):uni基本的插件安装
  9. Qt工作笔记-ListWidget拖动(拖拽)到QGraphicsScene
  10. sqlite3的sql语句用法总结与SQLite生成.db-journal文件问题【原创】
  11. centos6 查看SELinux状态 关闭SELinux
  12. 计算机网络图标显示不出来,网络图标不见了汇总解决教程
  13. 知识图谱 - TransE算法
  14. 嗖嗖移动业务大厅项目_会员合作项目:10086移动外呼业务
  15. Stata | 缺失值处理标签
  16. 睁开双眼玩立体游戏 3D显示技术解析
  17. android keystore 查看、修改密码和别名等
  18. 响应式分布式区别_边缘计算的七种定义,边缘计算与云计算、雾计算的区别
  19. Linux——挂载硬盘
  20. springboot毕设项目美食网站设计与实现62e76(java+VUE+Mybatis+Maven+Mysql)

热门文章

  1. Linux运维工具Supervisor(进程管理工具)
  2. css首字下沉_如何在Word 2013中创建首字下沉
  3. U盘安装Linux Centos7
  4. C# 事务之SqlTransaction
  5. JAVA程序员笔记(第二阶段:前端)第4篇——定位、太极图、经典轮播图一、简单transfrom变换效果
  6. java 求1000的阶乘_求1000阶乘的结果末尾有多少个0
  7. 城市新56族 你是哪一族?
  8. validateRequest=false 可以禁用请求验证
  9. linux创建数据库Oracle用户,linux下ORACLE数据库中创建新用户
  10. 32位计算机通常是指控制总线,“三校生”对口升学计算机应用试卷计算机基础知识(含答案)...