Android 16 EDLA测试STS模块

Android 16 EDLA测试STS模块

文章目录

一、前言

EDLA 设备必须通过所有 GMS 认证测试,测试项主要包括:

测试类型 主要内容
CTS Android 兼容性测试,验证 API 符合性和系统功能完整性
GTS Google 服务测试,确保 GMS(Play 商店、Drive 等)正常运行
VTS 内核测试、Vulkan 图形性能测试,验证 3D 渲染兼容性
GSI 烧录通用系统镜像后测试,确保设备支持官方系统更新和系统兼容
STS 安全测试套件,验证系统安全漏洞
手动测试 (CTSV/GTSV) 针对特定功能的人工验证,如摄像头、显示、网络、通知等
BTS Google系统固件扫描,主要测试代码中的权限是否滥用,签名信息校验
CheckList 系统属性配置和 Android 版本新特性检查

上面的不同测试类型,需要下载不同的测试套件进行测试,测试后会有测试报告。

STS测试和其他项是有不一样的地方,比如需要Debug版本,需要配置环境等。

本文主要介绍STS测试的准备和过程。目前网上没有介绍这个的,有需要的可以收藏下来看看。

二、测试STS准备和简单测试

准备过程相对其他类型测试是麻烦一点的,很多人都会想放弃了。

1、STS下载(需要VPN网络)

选择软件对应的SPL月份进行下载,可找工程师确认SPL的月份;

下载地址:https://drive.google.com/drive/folders/1xqPTtC6MWiQizfFVdG7Ho0f2oGsmH0e-

解压包解压密码为sts。

如下图所示,选择arm64.zip文件:

现在看最新的是16-sts-r47;前几个月测试给我的是 16-sts-r44;已经看不到r44了,不知道为啥会这样。

获取到解压后的文件,进入android-sts/tools,在该目录的命令窗口中输入./sts-fradefed 就可以输入sts命令测试。

2、STS测试命令

复制代码
run sts-dynamic-incremental -m XXX [-t XXX]

测试命令示例:
run sts-dynamic-incremental CtsSecurityBulletinHostTestCases

run sts-dynamic-incremental -m CtsSecurityTestCases -t android.security.cts.DynamicPermissionsTest

第一次测试100% 是失败的,因为环境还没配置。

其实仔细阅读其中的内容是大概知道需要配置什么东西的;但是会有点坑容易踩。

无论是下载、配置环境、测试STS都是需要VPN网络进行的。

3、配置STS环境

测试的时候会提示需要配置环境;主要是提示找不到文件,根据提示下载文件,并且放到对应目录即可。

主要有两个部分需要配置:

第一次测试sts一般是会提示如下报错:

(1)根据要求下载frida-XXX.xz文件

复制上面那个https://github.XXX/frida-inject-17.6.2-android-arm64.xz 字符串到到浏览器就会自动下载这个压缩包。

这个文件的版本是不定时更新的,比如我上个月下载的是17.5.2的版本;

根据提示,下载完后把该文件放到android-sts/testcases目录下,并且重命名为frida-inject-version-android-arm64。

看起来比较简单但是就有两三个坑:

①一定要命名为frida-inject-version-android-arm64;不要用frida-inject-17.6.2-android-arm64的命令;

我刚开始试过了带具体version数值是不行的,后面三个文件都放进去了:原文件和上面两种命名的文件。

②有些情况修改文件名称后并不会变成执行文件,但是必须把frida-inject-version-android-arm64变成可执行文件

如下图所示:刚开始修改名称后,文件类型是归档文件

其实只要双击这个归档文件,就会在同级目录生成一个另外名称的执行文件,再重新修改名称就行;

如下图所示,执行文件的属性信息:

可以看到,可执行文件的图标和属性信息是不同的,右键属性信息能看到是可执行文件。

③frida-inject-version-android-arm64文件权限需要给与644

需要保证frida-inject-version-android-arm64 具有可执行权限;

默认情况,该目录文件都是只可读,如果懒得单个给就执行: chmod 777 * ,全部给最高权限。

上面只是第一个坑,配置后这个测试sts一般还是会有报错,如下图所示:

(2)根据要求下载 ghidra_XXX_PUBLIC_20260114.zip 文件

选择并下载zip文件如下图所示:

一般下载较新的文件版本;我这里是根据他的提示下载的12.0.1的版本的文件。

这里后面主要有一个坑:就是必须把下载的zip文件放到固定目录:

复制代码
/tmp/tradefed_ghidra/ghidra_12.0.1_PUBLIC_20260114.zip 

注意:ghidra_12.0.1_PUBLIC_20260114.zip 是文件夹名称,linux是可以让文件夹报错符号.的;

tmp目录是home的同级目录,是用户目录的上上级目录;

如下图所示:

我刚开始没注意查看报错就是把 ghidra_12.0.1_PUBLIC_20260114.zip 放到 tradefed_ghidra 目录下面;

然后还是报之前的错误;在tradefed_ghidra 新建一个文件夹,把zip文件放到里面后,再重命名文件夹名称和文件名称一样就行;

后续这个ghidra_12.0.1_PUBLIC_20260114.zip 文件会在sts中被解析和解压的;这个是不需要我们管的。

一般情况,下载上面两个文件,并且进行正确的配置就可以测试sts了;

如果下载文件和配置后还是有上面的报错,就仔细检查一下是否有遗漏的操作;

如果有新的报错,就根据报错提示进行适配环境。

4、测试STS

上面环境配置后,后续像cts那样测试就行,只是sts的命令比较特殊而已;

如运行sts的命令:

复制代码
run sts-dynamic-incremental CtsSecurityBulletinHostTestCases

运行窗口的测试结果界面如下:

如果是没啥异常是不需要看更详细的html界面信息的;但是如果有Failed项,就要看html的具体报错了。

html界面的测试结果界面如下:

如果有报错可以看到详细的某些报错信息和报错堆栈信息。

更详细的log日志就要在logs目录的查看设备的具体日志了。

三、其他

1、STS小结

主要过程如下:

复制代码
(1)下载sts套件
(2)尝试测试sts某一项
(3)根据测试报错下载并配置下载frida-XXX.xz文件
(4)重新测试,根据测试报错下载并配置 ghidra_XXX.zip 文件
(5)测试完成查看sts测试报告

另外一个需要注意是是测试sts需要debug版本,因为有些测试项是需要root设备的;

下载sts需要一定的时间,配置sts环境需要一定的耐心。

2、STS测试版本说明

STS 是需要debug版本测试的;

网上说 sts 有些测试项是可以run sts -m XXX 进行测试的,但是我试了几个好像不太行;

下面是一些STS测试说明,有兴趣的可以看看:

Android 设备的ro.build.type分为user/uerdebug/eng三类,

STS 对各版本的支持性差异源于系统权限、测试基线生成、底层调试接口的开放程度,具体要求如下:

STS 测试类型 支持的设备版本 禁止的版本 核心限制点
全量 STS 普通测试(run sts user/uerdebug/eng user 版本仅限制少数底层内核安全用例,核心 EDLA / 网络安全用例均可执行
模块定向测试(run sts -m user/uerdebug/eng 同全量,仅底层模块(StsKernelSecurity)在 user 版本会部分跳过
增量测试(run sts-dynamic-incremental userdebug/eng user user 版本无变更指纹记录 / 基线生成能力,增量过滤逻辑直接失效,会退化为全量测试
EDLA 深度安全测试(异常链路 / 加密强度) userdebug/eng 优先,user 兼容 user 版本会关闭部分 EDLA 调试接口,少数极端场景用例会报权限错误
底层安全测试(内核 / 驱动 / 证书底层) userdebug/eng user user 版本屏蔽内核调试、底层文件读写权限,用例直接失败
关键重点(贴合你的使用场景)

你高频使用的sts-dynamic-incremental强制要求 userdebug/eng 版本 ,这是增量测试的核心前置条件,如果在 user 版本执行,会出现两个问题:

  1. 增量过滤逻辑失效,自动执行全量用例,失去增量测试 "省时" 的意义;
  2. 无法生成 / 读取增量测试基线,多次执行会重复生成无效缓存,导致测试异常。

3、Android16 EDLA 认证测试BTS过程介绍

Android EDLA 认证测试的主要内容是 CTS、GTS、VTS 、BTS,还有一些其他的。

Android EDLA 认证项中BTS的Failed数量不是很多的,几十到几百个Failed。

BTS的测试内容主要是系统补丁、系统签名、应用签名、应用权限有关。

BTS的检测主要是生成文件包,上传到Google网址后,等几个小时就可以获得结果。

https://blog.csdn.net/wenzhi20102321/article/details/156061528

4、Android16 EDLA 认证测试CTS过程介绍

Android EDLA 认证项中CTS是数量最多的,因为很多framework或者系统应用的修改都会可能导致报错。

https://blog.csdn.net/wenzhi20102321/article/details/155891248

相关推荐
TheNextByte12 小时前
如何打印Android手机联系人?
android·智能手机
invicinble2 小时前
学习的门道和思路
java·开发语言·学习
洛阳纸贵2 小时前
JAVA高级工程师--Elasticsearch安装以及内置分词器、IK分词器
大数据·elasticsearch·搜索引擎
代码AC不AC2 小时前
【Linux】进程程序替换
linux·进程·程序替换
Zach_yuan2 小时前
UDP网络编程:从入门到精通
linux·网络·网络协议·udp
186******205312 小时前
项目开发基础知识:从概念到落地的全流程指南
大数据·人工智能
说私域2 小时前
AI智能名片商城小程序数据清洗的持续运营策略与实践研究
大数据·人工智能·小程序·流量运营·私域运营
_叶小格_2 小时前
cp、scp、rsync命令详解
linux·运维·服务器·ubuntu·centos·运维开发
Howie Zphile2 小时前
Git 拉 NocoBase 2.0 beta(next 分支),并“每天自动更新 + 自动编译 + 自动重启”
大数据·git·elasticsearch