Android EDLA 搭建Linux测试环境
文章目录
- [Android EDLA 搭建Linux测试环境](#Android EDLA 搭建Linux测试环境)
-
- 一、前言
- 二、环境基础要求
-
- [1. 硬件配置](#1. 硬件配置)
- [2. 操作系统](#2. 操作系统)
- 三、基础依赖安装
-
- [1. 安装 Java 环境(必须 OpenJDK 11/17)](#1. 安装 Java 环境(必须 OpenJDK 11/17))
- [2. 安装 Android SDK 与调试工具](#2. 安装 Android SDK 与调试工具)
-
- [(1)下载 SDK Command-line Tools](#(1)下载 SDK Command-line Tools)
- [(2)配置 SDK 环境变量](#(2)配置 SDK 环境变量)
- [(3)安装 SDK 组件](#(3)安装 SDK 组件)
- [3、 安装apktool](#3、 安装apktool)
- 4、安装aapt工具
- [5. 安装其他依赖工具](#5. 安装其他依赖工具)
- [四、测试设备 / 模拟器配置](#四、测试设备 / 模拟器配置)
-
- [1. 真实设备配置(推荐,更贴近实际)](#1. 真实设备配置(推荐,更贴近实际))
- [四、部署 EDLA 测试套件与 GMS 工具链](#四、部署 EDLA 测试套件与 GMS 工具链)
-
- [1. 获取测试套件(需 Google 授权账号登录)](#1. 获取测试套件(需 Google 授权账号登录))
- [2. 解压并部署套件](#2. 解压并部署套件)
- [六、执行 EDLA 测试](#六、执行 EDLA 测试)
-
- [1. 运行 Tradefed 测试命令](#1. 运行 Tradefed 测试命令)
- [2. 查看测试报告和日志](#2. 查看测试报告和日志)
- 七、小结
一、前言
Android EDLA 测试需要一个linux系统环境,如果电脑内存比较大,使用虚拟机也是可以的。
搭建 Android EDLA(Enhanced Device Lockdown and Attestation)的 Linux 测试环境,需基于Ubuntu LTS 系统(推荐 20.04/22.04),
整合 GMS 测试工具链、EDLA 专用套件、设备调试环境、VPN网络。
下面的大致内容。
二、环境基础要求
1. 硬件配置
- CPU:8 核及以上(推荐 Intel i7/Ryzen 7,支持虚拟化);
- 内存:16GB+(测试套件与模拟器需占用大量内存);
- 存储:500GB+ SSD(需存储 Android SDK、测试镜像、EDLA 套件);
- 外设:USB 3.0 接口(连接测试设备)。
硬盘配置要求不是很高,内存和存储容量够基本就可以了。
2. 操作系统
-
Ubuntu 20.04 LTS/22.04 LTS(64 位):兼容性最佳,Google 官方测试环境基于此版本;
-
目前我用的是24.10 也能正常测试;
-
系统cpu:linux系统是x86的,而Android系统是arm64的,现在基本都是64位的了
下载对应的套件是需要清楚的,比如CTS套件就要下载x86-arm的,还有那些GSI镜像的也是需要arm64的。
三、基础依赖安装
Linux环境的安排,一般会有提示命令,如果不是自己需要的版本,可以网上搜索确认。
1. 安装 Java 环境(必须 OpenJDK 11/17)
EDLA 测试套件依赖 JDK 11+,需配置环境变量:
bash
# 安装OpenJDK 11
sudo apt update && sudo apt install openjdk-11-jdk -y
# 配置JAVA_HOME
echo "export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64" >> ~/.bashrc
echo "export PATH=\$JAVA_HOME/bin:\$PATH" >> ~/.bashrc
source ~/.bashrc
# 验证安装
java -version # 输出openjdk version "11.x.x"
我使用的是JDK 17.
2. 安装 Android SDK 与调试工具
EDLA 测试需依赖 Android SDK 的adb、fastboot、avdmanager等工具:
(1)下载 SDK Command-line Tools
bash
# 创建SDK目录
mkdir -p ~/Android/Sdk
cd ~/Android/Sdk
# 下载SDK工具(替换为最新版本,从Android官网获取)
wget https://dl.google.com/android/repository/commandlinetools-linux-10406996_latest.zip
unzip commandlinetools-linux-10406996_latest.zip
# 重命名目录(避免sdkmanager路径问题)
mv cmdline-tools latest
mkdir -p cmdline-tools
mv latest cmdline-tools/
(2)配置 SDK 环境变量
bash
echo "export ANDROID_HOME=~/Android/Sdk" >> ~/.bashrc
echo "export PATH=\$ANDROID_HOME/cmdline-tools/latest/bin:\$ANDROID_HOME/platform-tools:\$PATH" >> ~/.bashrc
source ~/.bashrc
(3)安装 SDK 组件
bash
# 接受SDK许可(需手动输入y确认)
yes | sdkmanager --licenses
# 安装平台工具(adb/fastboot)、Android 13/14平台(EDLA测试基于Android 13+)
sdkmanager "platform-tools" "platforms;android-33" "platforms;android-34"
3、 安装apktool
Apktool 是三方的apk反编译工具。
官网教程:点击链接:
1、下载apktool脚本:apktool (右键点击, 保存链接为文件,文件名保存为apktool,无后缀)
2、下载最新apktool.jar (点击进入),将下载的最新.jar文件重命名为apktool.jar(例如:apktool_2.4.0.jar改为apktool.jar)
3、将apktool和apltool.jar放置到/usr/local/bin目录下
4、更改文件权限
#su
#chmod 755 /usr/local/bin/apktool
#chmod 755 /usr/local/bin/apktool.jar
有的系统需要放到usr/bin目录下才生效
5、检查apktool环境:
#apktool -version
4、安装aapt工具
aapt工具是google官方的,是 Apktool 的底层依赖
1、解压第六步下载的apktool.jar解压,提取解压后apktool/prebuilt/linux/目录下的aapt文件
2、将aapt放置到/usr/local/bin
3、设置权限:
#chmod 755 /usr/local/bin/aapt
4、验证aapt环境:
#aapt version
5. 安装其他依赖工具
bash
# 安装Python(EDLA测试脚本依赖Python 3.8+)
sudo apt install python3 python3-pip python3-venv -y
# 安装虚拟化工具(用于Android模拟器)
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils -y
sudo usermod -aG kvm $USER # 赋予当前用户KVM权限(需重启生效)
# 安装Git、unzip、wget等
sudo apt install git unzip wget -y
Command Line Tools 也可以在linux环境自动下载配置sdkmanager,有兴趣的可以看看:
https://blog.csdn.net/qq_33060405/article/details/145150013
其他的参考:https://www.cnblogs.com/honkly/p/9213838.html
四、测试设备 / 模拟器配置
1. 真实设备配置(推荐,更贴近实际)
(1)设备要求
- 企业级 Android 设备(支持 EDLA 特性:StrongBox Keystore、设备锁定、EMM 管理);
- Android 版本:13+(API 33+);
- 已解锁 Bootloader(用于刷入测试镜像);
- 部分测试项需要连接VPN网络;
- 已开启开发者选项与 USB 调试:
- 设备端:设置→关于手机→连续点击版本号→开发者选项→开启 "USB 调试";
- 主机端:信任设备adb连接(首次连接时在设备上确认)。
- 设备端:关闭息屏时间;关闭usb安装应用校验;
(2)连接设备并验证
bash
# 检查设备连接
adb devices # 输出设备序列号(device状态)
# 若设备未识别,安装USB驱动
sudo apt install android-sdk-platform-tools-common -y
虚拟机有的说可以测,但是我有真机,就不搞虚拟机了。
四、部署 EDLA 测试套件与 GMS 工具链
EDLA 测试需基于CTS/GTS/VTS基础套件,叠加 EDLA 专用测试模块。
1. 获取测试套件(需 Google 授权账号登录)
- 从 Google 开发者后台下载:
- CTS 套件(
android-cts-xx.x.x.zip); - GTS 套件(
android-gts-xx.x.x.zip); - GSI 镜像(主要是system.img)
- EDLA 专用测试包(
android-edla-test-suite-xx.x.x.zip); - Tradefed 测试框架(EDLA 测试基于 Tradefed 执行)。
- CTS 套件(
2. 解压并部署套件
bash
# 创建测试目录
mkdir -p ~/edla-test
cd ~/edla-test
# 解压CTS/GTS/EDLA套件
unzip ~/Downloads/android-cts-14.0_r5.zip # 替换为实际版本
unzip ~/Downloads/android-gts-14.0_r3.zip
unzip ~/Downloads/android-edla-test-suite-1.0.zip
# 解压Tradefed(若套件未内置)
unzip ~/Downloads/android-tradefed-xx.x.x.zip
25年11月最新的cts版本是16_r3
六、执行 EDLA 测试
1. 运行 Tradefed 测试命令
bash
# 进入CTS工具目录
cd ~/edla-test/android-cts/tools
# 执行EDLA核心测试套件
./cts-tradefed
#进入环境后测试:
run -m modeName [-t testName] //可选是否跑单项,因为有些模块项数非常多
2. 查看测试报告和日志
测试完成后,报告生成在~/edla-test/android-cts/repository/results/目录下:
-
HTML 报告:test_result(可在浏览器中打开查看用例通过率);
-
日志文件:
test_result.xml(详细失败用例与原因)。还有logcat日志是在edla-test/android-cts/log/XXXtime/inv_static_xts_XXX文件夹里面
七、小结
主要是需要配置aapt、aap2的环境,下载对应套件就可以开始测试了。
前提也是要保证设备能adb、能联网。
SDK、python3 那么没有配置,可能会导致有些测试项无法完成。
比我测试CTS的时候 有好几个模块的某些测试项都是提示无法安装TestIme.apk的;
有个的同事是安装了sdkmanager解决的,我是替换了另外同事的aapt2解决的。
不同的linux版本环境有时候差异挺大的,我的电脑就配置不了sdkmanager。
可以先先开始测试,遇到问题在解决。