Android EDLA 搭建Linux测试环境简介

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. 安装其他依赖工具)
    • [四、测试设备 / 模拟器配置](#四、测试设备 / 模拟器配置)
    • [四、部署 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 的adbfastbootavdmanager等工具:

(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 执行)。

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。

可以先先开始测试,遇到问题在解决。

相关推荐
小嘟嘟1341 分钟前
第3章 Shell 条件判断:解决 90% 的分支逻辑问题
linux·运维·shell
19226381 小时前
西门子200Smart加Smart 1000 IE水处理程序画面案例。 采用成熟、可靠、先进、...
运维
⁤⁢初遇1 小时前
Linux------线程概念与控制
linux·运维·服务器
虹科数字化与AR1 小时前
安宝特新闻丨Vuzix展示LX1 AR智能眼镜与仓储自动化系统
运维·自动化·ar
MyFreeIT1 小时前
部署到Docker后,路径造成的异常
运维·docker·容器
Forest_HAHA1 小时前
<13>_Linux网络基础(下)
linux·服务器
李坤林1 小时前
Anroid Perfetto
android
大转转FE1 小时前
[特殊字符] 浏览器自动化革命:从 Selenium 到 AI Browser 的 20 年进化史
运维·人工智能·selenium·测试工具·自动化
_lst_1 小时前
进程控制:进程程序切换
linux·服务器·ssh