Android Security Test Suite (STS) 是谷歌关于android安全补丁安装情况的一个测试套件STS和security patch相关的,是CTS测试新增加一项安全测试套件。STS是201808才开始测试的。Security patch日期在3个月内是GTS的一个case,如果不通过无法获得google认证。在18年5月之前谷歌对于security patch这个属性都是在build库下面跟着aosp更新的。现在需要通过STS之后由vendor来更新。STS需要通过userdebug版本的targetfile来生成一个user版本的结果。
STS测试前提 设备必须刷是userdebug romusb调试已经打开,usb安装、点击功能需要正常可以获得root,执行adb root必须成功 STS 工具 自行下载 STS 测试命令sts-tradefed run sts-dynamic-incremental -m -t MR版本测试指令
sts-tradefed run sts-dynamic-full -m -t IR版本测试指令
默认执行:
sts-tradefed run sts-dynamic-full
指定目标设备:
sts-tradefed run sts-dynamic-full -s 【指定你的android设备】
------------------
CTS,GSI,GTS,VTS,STS区别区别:
1.烧录img版本不同
CTS,GSI,GTS,VTS 烧录user版本img
STS 烧录user-debug版本img
2.是否需要额外烧录谷歌img
VTS 需额外推送 谷歌img 和 boot-debug.img
GSI 需额外推送谷歌img
其它测试不需要
3.测试前是否需要推送媒体包
CTS , GSI ,GTS 需要推媒体包
其余测试不需要
//推送媒体包的方式:在Media执行脚本+设备SN号
4.测试指令有细微差别,仅需修改对应测试名称
//注意事项: CTS 测试和 GSI 测试共用一个测试脚本,因此GSI测试可在CTS测试下进行,但不可同时进行(即这个两个测试不可以同时共用一个测试工具)
4.1.CTS测试(单台测试预计170小时) 全测命令:run cts --shard-count 3 -s CTS00000001 -s CTS00000002 -s CTS00000003 // -s 【SN号】 重测命令:run retry -r 1 --shard-count 3 -s CTS00000001 -s CTS00000002 -s CTS00000003 / -r 【第几个测试报告】 单侧模块:run cts -m CtsPermission2TestCases -s CTS00000001 // -m 【测试模块】 单侧case:run cts -m CtsPermission2TestCases -t android.permission2.cts.PermissionPolicyTest#platformPermissionPolicyIsUnaltered -s CTS00000001 // -t 【测试项】 4.2.GTS测试(单台测试预计20小时) 全测命令:run gts --shard-count 3 -s GTS00000001 -s GTS00000002 -s GTS00000003 重测命令:run retry -r 1 --shard-count 3 -s GTS00000001 -s GTS00000002 -s GTS00000003 4.3.VTS测试(单台测试预计45小时) 注:需要烧录Google System.img 全测命令:run vts --shard-count 3 -s VTS00000001 -s VTS00000002 -s VTS00000003 重测命令:run retry -r 1 --shard-count 3 -s VTS00000001 -s VTS00000002 -s VTS00000003
4.4.GSI测试(单台测试预计35小时)-->与CTS共用Tool 注:需要烧录Google System.img 全测命令:run cts-on-gsi --shard-count 3 -s GSI00000001 -s GSI00000002 -s GSI00000003 重测命令:run retry -r 1 --shard-count 3 -s GSI00000001 -s GSI00000002 -s GSI00000003 4.5.STS测试(单台测试预计7小时) 注:需要烧录Userdebug版本测试 全测命令:run sts-dynamic-full --shard-count 3 -s STS00000001 -s STS00000002 -s STS00000003 重测命令:run retry -r 1 --shard-count 3 -s GSI00000001 -s GSI00000002 -s GSI00000003
4.6.CTS_V测试 -->DQA 负责测
#其它测试指令
l i
l d
l r
l c
--------------------------------
一、指令basic:
套件指令测试版本更新频率下载地址ctsrun ctsrelease季度https://source.android.com/docs/compatibility/cts/downloadsgtsrun gts ; run gts-interactiverelease季度https://docs.partner.android.com/gms/testing/gts 须登陆vtsrun vtsrelease季度https://docs.partner.android.com/gms/testing/vts 须登陆cts-on-gsirun cts-on-gsireleaseCTS套件:季度; system.img:每月同CTSstsrun sts-dynamic-fulldebug每月https://drive.google.com/drive/folders/1xqPTtC6MWiQizfFVdG7Ho0f2oGsmH0e-tvtsrun tvtsreleasehttps://docs.partner.android.com/tv/test/tvts/release-notespior:
功能指令备注重试多台只64位且不包括3个包run retry --retry 1 --shard-count 2 --abi arm64-v8a --exclude-filter CtsLibcoreTestCases --exclude-filter CtsNetTestCases --exclude-filter CtsAppSecurityHostTestCases此3个包涉及IPV6测试CTS子计划run cts --subplan帮助helpcts帮助run cts --help; run cts --help -allmonthly:
月份CTS(使用月份)GTS(使用月份)VTS(使用月份)STS(安全补丁月份)img(安全补丁月份)发布月份3 6 9 123 6 9 123 6 9 12上一个月2023-10android-cts-13_r5-linux_x86-armandroid-gts-11-R1(11-14)-10495246android-vts-10477834_arm64(13_R5)android-sts-13_sts-r19-linux-arm64android13-arm64-img-10694250.zip2023-11android-sts-13_sts-r20-linux-arm64signed-gsi_arm64-img-10828306.zip2023-12android-sts-13_sts-r21-linux-arm64signed-gsi_arm64-img-10953849.zip2024-01android-cts-13_r6-linux_x86-armandroid-gts-11-R2(11-14)-11137706.zipandroid-vts-11183460_arm64(13_R6)android-sts-13_sts-r22-linux-arm64signed-gsi_arm64-img-11114083.zip 常用网址: 功能网址备注https://source.android.com/docs/内网partner之gmshttps://docs.partner.android.com/gms/testing/overview外网+授权账号登陆partner之securityhttps://docs.partner.android.com/security外网+授权账号登陆GTS/VTS/system.img最新版下载https://drive.google.com/drive/folders/0ByUA0TZpIQ_UYll6QnFxaVVNVTA?resourcekey=0-OaeHWcxibqcFpnZw_OzYiw外网+授权账号登陆TV system.img最新版下载https://docs.partner.android.com/tv/test/android/gsi?hl=en外网+授权账号登陆SPLhttps://drive.google.com/drive/folders/0B85mEDAGzAbsckRrZFhhV3YwTEk?resourcekey=0-6zNsbY0nWUmYsJO2TF-RZQ外网+授权账号登陆apahttps://partner.android.com/approvals外网+授权账号登陆 三、镜像文件通过指令adb shell getprop | grep patch得到的信息看安全补丁的日期
[ro.build.version.security_patch]: [2023-10-05] # 此为system.img的[ro.vendor.build.security_patch]: [2023-10-05] # 此为公司版本的 命令之间用 ; 时,前一个命令完成后(不论是否成功)运行下一个命令,命令之间用 && 时,前一个命令完成后(成功时)运行下一个命令 CTS-on-GSI 一键更换image在system.img所在目录下执行如下指令:adb reboot bootloader&&fastboot flashing unlock&&fastboot flashing unlock_critical&&fastboot reboot fastboot&&fastboot flash system system.img&&fastboot -w&&fastboot reboot
VTS 一键更换image在system.img/vendor_boot.img所在目录下执行如下指令:adb reboot bootloader&&fastboot flashing unlock&&fastboot flashing unlock_critical&&fastboot reboot fastboot&&fastboot flash system system.img&&fastboot flash vendor_boot vendor_boot-debug.img&&fastboot -w&&fastboot reboot
# CTS-on-GSIadb reboot bootloaderfastboot flashing unlockfastboot flashing unlock_criticalfastboot reboot fastbootfastboot flash system system.imgfastboot -wfastboot reboot# VTSadb reboot bootloaderfastboot flashing unlockfastboot flashing unlock_criticalfastboot reboot fastbootfastboot flash system system.imgfastboot flash vendor_boot vendor_boot-debug.imgfastboot -wfastboot reboot 四、每日构建版本每日构建地址 android 13:https://ci.android.com/builds/branches/aosp-android13-tests-release/grid?legacy=1
1)下载CTS,VTS,CTS-VERIFIER搜索字段,例如android12 aosp-android12-tests-dev aosp-android12-tests-release
2)下载TVTS搜索字段 git_master-tv-dev
3)下载google system image搜索字段 git_tm-gsi-release git_sc-tv-gsi-release git_rvc-tv-gsi-release
五、子计划使用为什么使用子计划? 以CTS测试为例,有1058个测试模块,全部测试完需要1周时间。如果只需要验证其中的某几个模块,如media相关的模块。没有子计划时需要一个模块输入一条指令,使用子计划可以将所有media模块放在一个测试计划中,运行一条指令可以实现所有Media模块测试。help add 可以查看子计划的具体使用方式 以android 13的 13_r4套件为例,其CTS有1055个模块,样机充足时可以分多台提升测试效率
测试项模块数耗时CTS1055在样机充足时,可以使用子计划,分为三部分测试,提升测试效率 P1: DEQP1台:30h; P2:Media1台:24h,之后多次retry ; P3:其他模块:2台:36h,之后多次retry ;CTS-on-GSI3471台:36h,之后多次retryCTS-Verifier手动测试3天GTS2731台:24hSTS201台:6hVTS6431台:6h 六、样机端操作进入开发者模式:settings->About->build num (tap 5 times) ->open Developer options 设置设备常亮:Developer options->Stay awake->on 打开USB调试:Developer options->USB debugging->on 关掉USB安装应用提示:Developer options->Verify apps over USB->off
七、电脑端操作1 Media相关的测试需要将media文件放在电脑/tmp/android-cts-media路径下,测试前不需要将Media文件拷贝到手机中,测试时会自动拷贝。 如果/tmp/android-cts-media路径下没有media文件,将会从网上下载,由于文件比较大,比较耗时
rkp attestattion key 获取rkp json文件在工厂模式下,版本信息处 左左右右,此时弹出提示信息; 在另一个菜单处,点击右键,会自动保存到U盘
way1:需要登陆网页输入账号python3.9 ./device_info_uploader.py --credentials ./cred.json --json-csr csrs.json --cache-token --company-id 25958473112589way2:可以直接使用python3.9 ./device_info_uploader.py --credentials-keyfile ./-rkp-cd-service-account.json --json-csr csrs.json --company-id 25958473112589 八. 测试分析android13 测试周期(包含verifier):7天 预测试周期(不包含verifier): 4天 机器数量:7台
测试项用时机器数量(台)CTS-without-deqp-media3d2台CTS-without-deqp-media-642d2台CTS-deqp30h1台CTS-deqp-6415h1台CTS-media3d1台CTS-media-642d1台gts2d1台cts-on-gsi3d1台vts6h1台sts6h1台cts-verifier4d1台