Android EDLA 认证测试内容详解
文章目录
- [Android EDLA 认证测试内容详解](#Android EDLA 认证测试内容详解)
-
- [一、EDLA 认证概述](#一、EDLA 认证概述)
- 二、主要测试内容
-
- [1、GMS 基础兼容性测试的大致内容](#1、GMS 基础兼容性测试的大致内容)
- [2、GMS 测试需要的大致时间和相关说明](#2、GMS 测试需要的大致时间和相关说明)
- 3、如何测试?
- 三、其他
-
- 1、小结
- 2、EDLA除了GMS的其他测试
-
- [(1)设备锁定测试(Device Lockdown)](#(1)设备锁定测试(Device Lockdown))
- [(2) 硬件安全与认证测试(Attestation & Tamper Resistance)](#(2) 硬件安全与认证测试(Attestation & Tamper Resistance))
- [(3) 企业管理兼容性 (EMM Policy Compliance) 测试](#(3) 企业管理兼容性 (EMM Policy Compliance) 测试)
- (4)系统安全与权限控制测试
- [3、EDLA 认证测试流程](#3、EDLA 认证测试流程)
- [4、EDLA 与 MADA 认证区别](#4、EDLA 与 MADA 认证区别)
一、EDLA 认证概述
EDLA (Enterprise Device Licensing Agreement)是 Google 专为企业级 Android 设备设计的认证协议,
是 MADA(Mobile Application Distribution Agreement)的补充,
特别针对两类设备:无电池设备 (如工业控制终端、数字标牌)和屏幕尺寸大于 18 英寸的设备(如交互式平板、OPS 电脑),屏幕尺寸最大可达 70 英寸。
核心目标:确保设备能安全集成 Google 服务,支持企业级管理功能,满足商业环境的高安全性和管控需求。
也就是说如果需要销售到全球,公司的大屏产品必须是要进行EDLA认证的。
本文主要介绍EDLA认证测试的基本概念内容。
二、主要测试内容
主要认证测试的主要内容除了: CTS、GTS、VTS ,还有一些其他的。
1、GMS 基础兼容性测试的大致内容
认证内容随时会更新,测试前需打开网址确认最新测试需求:
https://docs.partner.android.com/gms/testing/overview
EDLA 设备必须通过所有 GMS 认证测试,包括:
| 测试类型 | 主要内容 |
|---|---|
| CTS | Android 兼容性测试,验证 API 符合性和系统功能完整性 |
| GTS | Google 服务测试,确保 GMS(Play 商店、Drive 等)正常运行 |
| VTS | Vulkan 图形性能测试,验证 3D 渲染兼容性 |
| GSI | 通用系统镜像测试,确保设备支持官方系统更新 |
| STS | 安全测试套件,验证系统安全漏洞 |
| 手动测试 (CTSV/GTSV) | 针对特定功能的人工验证,如摄像头、显示等 |
| CheckList | 系统属性配置和 Android 版本新特性检查 |
上面的不同测试类型,需要下载不同的测试套件进行测试,会有测试报告。
刚开始我也是以为EDLA就是测试上面的就行了,但是实际的EDLA认证还有其他要求,比如网络的、硬件的。
不过除了GMS认证项的测试,其他的认证内容都是供应商厂家已经搞好了的,我们一般不用修改的;
上面的GMS认证项是和Android源码比较相关的,自定义修改的功能有可能不符合它的认证逻辑要求,是需要整改的。
所以EDLA 认证项虽然不仅仅是GMS认证项的内容,但是系统开发主要就是适配GMS认证项的内容。
除了上面的测试类型还有个BTS类型的测试,是需要把系统源码生成的BTS大包上传到Google官网测试的。
BTS的测试failed项内容主要是系统签名报错和应用签名报错。
2、GMS 测试需要的大致时间和相关说明
| 认证所需的测试套件 | 验证内容 | 发布周期 | 版本强制规则 | 测试方式 | 测试时间(参考A311D2-AN13) |
|---|---|---|---|---|---|
| CTS | CDD+ Android SDK/NDK/API | 每季度 | 新的 CTS 版本大约在发布 30 天后强制执行。具体的强制执行日期通过 GTVS 群组(通过 GMS 群组)公告传达。 后续的 CTS 次要版本不会添加新测试,而是只修复测试问题,因此为谨慎起见,应使用最新 build(包括只对故障进行重新测试的最新开发者 build),以尽量减少观察到的故障。 | 自动 | 5D |
| CTSVerifier | CDD+ Android SDK/NDK/API | 每季度 | 新的 CTS 验证程序版本大约在发布 30 天后强制执行。具体的强制执行日期通过 GTVS 群组(通过 GMS 群组)公告传达。 | 手动 | 3D |
| CTS-ON-GSI | Treble 合规性 | CTS:每季度GSI:每月 | CTS:参见上文。GSI:GSI 版本必须与正在进行认证的 build 使用相同的安全补丁程序级别 (SPL);对于 Android 9 或更高版本,GSI 可以使用相同的 SPL,也可以使用较新的 SPL。 | 自动 | 2.5D |
| VTS | Treble 合规性 | 每季度 | 新的 VTS 版本大约在发布 30 天后强制执行。具体的强制执行日期通过 GTVS 群组(通过 GMS 群组)公告传达。 | 自动 | 1.5D |
| CTS-Validation | Kernel合规性 | CTS:每季度GKI:每月 | 当使用 OEM KI 而不是 Google GKI 实施时,测试计划中的 CTS 测试会检查 OEM 构建中的内核合规性。 仅 IR 版本需要 CTS 验证。 | 自动 | 待确认 |
| VTS-Validation | Kernel合规性 | VTS:每季度GKI:每月 | 当使用 OEM KI 而不是 Google GKI 实施时,测试计划中的 VTS 测试会检查 OEM 构建中的内核合规性。 仅 IR 版本需要 VTS 验证。 | 自动 | 待确认 |
| GTS | GMS服务的平台实现 | 每季度 | 新的 GTS 版本大约在发布 30 天后强制执行。具体的强制执行日期通过 GTVS 群组(通过 GMS 群组)公告传达。 | 自动 | 2D |
| GTSInteractive≥Android13 | GMS服务的平台实现 | 每季度 | 新的 GTS 版本大约在发布 30 天后强制执行。具体的强制执行日期通过 GTVS 群组(通过 GMS 群组)公告传达。 | 半自动 | 0.5D |
| STS | 安全补丁程序合规性 | 每月 | STS 版本必须与设备上声明的 SPL 一致。对于在过去 36 个月内发布的设备,提交进行认证的 build 必须至少包含在 60 天以前就已经公开发布的所有安全补丁程序。 请参阅 GMS 安全补丁程序要求。SPL 日期合规性由 GTS 测试进行验证,因此合规性时间与 GTS 测试套件的执行日期相关。 | 自动 | 1D |
| FirmwareAnalysis(固件分析) | 恶意软件和安全配置 | 在线 | 实时(在线服务) | 自动 | 实时 |
| APTSAndroid Go设备测 | 设备性能 | 每月 | 使用 APTS 测量运行 Android 12 或更高版本的设备的性能指标。 有关运行 Android Go 10 或 11 的设备上的性能测试的信息,请参阅使用 GOATS 进行设备审批。 | 半自动 | EDLA设备不允许为GO设备,不需要测试该项 |
上面是2-3台设备同时测试的参考时间,如果只有一台设备测试或者多台设备同时测试的时间是不同的。
3、如何测试?
这里只简单描述一下:
(1)准备好一台linux电脑,安装jsk、sdk、appt2等基本环境;
(2)Android设备,做好相关属性适配+烧录相关key;
(3)Android设备和电脑连接同一个VPN外网网络;
(4)Android和大屏连接adb,去除usb安装校验apk;
(5)linux电脑下载对应新的套件,比如CTS套件
(6)在CTS套件的cts-tradefed文件打开终端,运行./cts-tradefed
(7)进入cts测试环境,就可以跑cts测试了;
运行命令:run cts -m 模块名称 [-t 某个测试项]
比如:run cts -m CtsAnimationTestCases //后面的测试项是可选的。未写就是测试整个mode
(8)测试结束后,会有测试报告,在result目录的一个最新文件夹下面有test_reset.html报告网页。
有了测试报告后,就可以根据报错内容就行修改源码,再重新测试了,直到测试通过。
三、其他
1、小结
目前来说Android认证测试的修改主要就是GMS 基础兼容性测试的内容。
主要包括:
CTS、GTS、VTS、**GSI**、STS、**手动测试 (CTSV/GTSV)**、**CheckList**、BTS
前面内容只是对EDLA认证项需要适配的内容有大致了解;
主要工作还是代码适配,VTS、CTS-GSI是底层比较相关的,有的需要供应商协助处理。
2、EDLA除了GMS的其他测试
(1)设备锁定测试(Device Lockdown)
1.1 Kiosk 模式测试
- 单应用 / 多应用锁定:验证设备能否强制进入指定应用,禁用 Home/Recent 键、状态栏下拉等退出方式
- 锁定持久性:测试重启后是否自动恢复锁定状态,防止绕过
- 解除锁定验证:确保只有设备所有者或 EMM 管理员可解除锁定,普通用户无法破解
1.2 设备所有者 (Device Owner) 权限测试
- 全局策略控制:验证 DO 权限能否通过 DPM (Device Policy Manager) 设置系统级限制(禁用相机、限制网络等)
- 权限边界验证:确保非 DO 用户无法修改锁定策略,防止权限滥用
1.3 应用管理测试
- 应用白名单:验证只能安装 / 运行 EMM 指定的应用
- 静默安装 / 卸载:测试 EMM 能否远程管理应用,无需用户干预
- 应用权限控制:确保企业应用权限受 EMM 管控,防止敏感数据泄露
(2) 硬件安全与认证测试(Attestation & Tamper Resistance)
2.1 安全启动 (Trusted Boot) 验证
- 链式验证:检查从硬件信任根开始,Bootloader、内核、系统服务的完整性验证链
- 签名验证:确保各启动阶段代码均通过数字签名验证(如 RSA、ECDSA),防止篡改
- 异常处理:验证设备被篡改后(如 root),启动过程会失败或触发安全机制
2.2 硬件安全模块 (HSM) 测试
- StrongBox Keystore 支持:检查设备是否支持硬件级密钥存储,防止密钥导出
- 密钥绑定:验证生成的密钥与设备硬件绑定,无法在其他设备使用
- 安全擦除:测试设备重置时,硬件密钥能否被彻底清除
2.3 设备认证 (Attestation) 测试
- 完整性证明:验证设备能否通过 SafetyNet 或专用 API 提供硬件与系统完整性证明
- 篡改检测:检查设备被修改后(如刷非官方 ROM),认证结果是否标记为不可信
- EMM 集成:测试 EMM 能否利用认证结果判断设备合规性,拒绝不安全设备接入
(3) 企业管理兼容性 (EMM Policy Compliance) 测试
3.1 DPM API 全面支持
- 策略执行验证:测试所有企业级 DPM API(如 setLockTaskPackages、setPasswordQuality)能否被正确执行
- 策略冲突处理:验证不同策略间优先级和冲突解决方案
3.2 网络与安全策略
- VPN 强制:确保设备必须连接指定 VPN 才能访问企业资源
- Wi-Fi 限制:验证只能连接 EMM 预设的 Wi-Fi 网络,防止未授权接入
- 数据加密:检查企业应用网络通信是否强制使用 TLS 1.3 以上,禁止明文传输
- 防火墙规则:测试设备能否执行 EMM 定义的网络过滤策略,限制非授权域名访问
3.3 数据隔离与保护
- 工作 / 个人数据分离:验证配置文件隔离(Work Profile)功能,确保企业数据与个人数据存储独立
- 选择性擦除:测试 EMM 能否仅擦除工作数据,保留个人数据
- 加密验证:检查工作数据是否单独加密,加密密钥与个人数据分离
(4)系统安全与权限控制测试
4.1 权限精细化管理
- 运行时权限管控:验证企业应用权限需 EMM 审批,防止未经授权获取敏感信息
- 后台权限限制:确保应用在后台时无法访问高风险权限(如摄像头、麦克风)
- 特殊权限隔离:测试系统级权限(如 ACCESS_COARSE_LOCATION)能否被精确管控
4.2 加密与数据保护
- 全盘加密 (FDE) 或文件级加密 (FBE) 强制:验证设备必须启用符合标准的加密(如 AES-256)
- 加密性能:测试加密对设备性能影响在可接受范围内
- 密钥管理:检查加密密钥生成、存储、更新和销毁的安全性
4.3 系统更新控制
- 更新策略管理:验证 EMM 能否控制更新时机(如延迟更新)和来源(仅官方渠道)
- 更新验证:测试系统更新是否通过数字签名验证,防止恶意更新包
- 紧急更新:检查设备能否在发现安全漏洞时,强制安装关键补丁
上面这些测试内容都是搜索到的,仅供参考,实际上GMS认证应该也包含很多上面的测试内容。
3、EDLA 认证测试流程
(1)前期准备
- 申请 EDLA 协议授权
- 准备 2-3 台未 root、未篡改的测试样机
- 烧录必要密钥(如 Widevine、ID Attestation)
- 确保系统加载 GMS+mainline + 认证密钥
(2)预测试阶段
- 厂商自测确保基本功能正常
- 第三方实验室进行 CTS、GTS 等预测试
- 修复发现的问题,反复测试直至所有用例通过
(3)正式认证
-
提交至 Google 指定的第三方测试实验室 (3PL)
-
进行全面测试(约 11-13 周)
-
通过后获得 Google 邮件确认,完成认证
(4)持续合规
- 认证有效期 2 年,期间需每季度接受安全补丁检测
- 系统大版本更新后需重新测试部分内容
- 硬件或软件架构重大变更需重新认证
4、EDLA 与 MADA 认证区别
EDLA 与 MADA 都是Google的认证要求。
| 特性 | EDLA | MADA |
|---|---|---|
| 适用设备 | 无电池设备或屏幕 > 18 英寸 | 普通移动设备(手机、平板) |
| 屏幕尺寸 | 最大支持 70 + 英寸 | 通常 < 18 英寸 |
| 电池要求 | 支持无电池设备 | 必须有电池 |
| 锁定功能 | 强化设备锁定与企业管控 | 基础锁定功能 |
| 测试重点 | 企业级安全、管理功能、硬件认证 | 消费级体验、移动场景优化 |
| 定制化限制 | 更严格(如禁止修改 UI、启动 logo) | 相对宽松 |
MADA认证,即移动应用软件分发协议,是谷歌与使用Android系统的厂商签订的协议,要求厂商在推出设备前预装所有Google应用。
MADA 认证 好像在正常定制开发是不用管的;
目前定制开发只需要适配EDLA认证。