Android EDLA 认证测试内容详解

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认证。

相关推荐
介一安全1 小时前
【Frida Android】实战篇11:企业常用加密场景 Hook(1)
android·网络安全·逆向·安全性测试·frida
eybk1 小时前
局域网文件传输器安卓版本+win版本
android·python
未来猫咪花2 小时前
LiveData "数据倒灌":一个流行的错误概念
android·android jetpack
2501_937154932 小时前
神马影视 8.8 源码:1.5 秒加载 + 双系统部署
android·源码·源代码管理·机顶盒
吳所畏惧2 小时前
少走弯路:uniapp里将h5链接打包为apk,并设置顶/底部安全区域自动填充显示,阻止webview默认全屏化
android·安全·uni-app·json·html5·webview·js
金士顿3 小时前
Ethercat耦合器添加的IO导出xml 初始化IO参数
android·xml·java
电饭叔3 小时前
Luhn算法与信用卡识别完善《python语言程序设计》2018版--第8章14题利用字符串输入作为一个信用卡号之三
android·python·算法
漏洞文库-Web安全3 小时前
CTFHub-RCE漏洞wp
android·安全·web安全·网络安全·ctf·ctfhub
享哥。3 小时前
MVI 模式及mvp,mvvm对比
android