下载和构建

Trusty 代码库可在 Android 开源项目 (AOSP) 中找到。

使用以下链接在 AOSP 中查找相应的 Trusty 内核分支

安装 Repo

要下载 Trusty,请先下载并安装 Repo

成功安装 Repo 后,您可以克隆 Android Trusty 代码库

mkdir trusty
cd trusty
repo init -u https://android.googlesource.com/trusty/manifest -b main
repo sync -j32

构建

使用以下命令为 Trusty 构建通用 arm64 映像

./trusty/vendor/google/aosp/scripts/build.py generic-arm64

构建结果位于 build-root/build-generic-arm64/. 下。查找 lk.bin,这是一个包含所有已编译应用的 TEE 映像

ls build-root/build-generic-arm64/lk.bin

安装

您可以将 lk.bin 组装到固件映像中,并将其刷写到设备。生成固件映像的方式因所用主板而异。请联系您的主板制造商以获取说明。

QEMU 上的 Trusty

如果您尚未安装,请在主机上安装所需的软件包

sudo apt install libpixman-1-dev libstdc++-8-dev pkg-config libglib2.0-dev libusb-1.0-0-dev

(使用构建服务器脚本)构建 trusty 和 qemu 映像

trusty/vendor/google/aosp/scripts/build.py qemu-generic-arm64-test-debug

这也将运行为此目标配置的所有测试。

要手动运行 test-runner 测试(端口激活)(com.android.ipc-unittest.ctrl)

build-root/build-qemu-generic-arm64-test-debug/run --headless --boot-test "com.android.ipc-unittest.ctrl"

要运行带有内核调试输出(在启动时)的 test-runner 测试 (com.android.ipc-unittest.ctrl)

build-root/build-qemu-generic-arm64-test-debug/run-qemu --boot-test "com.android.ipc-unittest.ctrl" --headless --verbose

ATF 会在返回到 test-runner 之前停用控制台。要在本地停用此功能,请注释掉 external/arm-trusted-firmware/plat/common/aarch64/plat_common.c 中的 bl31_plat_runtime_setup 中的所有代码。

要从 Android Shell 运行测试

build-root/build-qemu-generic-arm64-test-debug/run-qemu --shell-command "/data/nativetest64/tipc-test/tipc-test -t ta2ta-ipc" --headless

要启动到交互式 Shell(从已签入的预构建版本)

build-root/build-qemu-generic-arm64-test-debug/run

此命令还提供各种其他替换项 - 请查看 --help 了解详情。

如果在运行 qmeu.pyadb devices -l 失败,则可能是系统上运行的 adb 服务器版本不正确

adb kill-server

要启动您在本地拥有的 Android 构建版本

build-root/build-qemu-generic-arm64-test-debug/run --android path/to/your/android/source/dir

要为 Trusty 构建 Android

mkdir android
cd android
repo init -u https://android.googlesource.com/platform/manifest -b main
repo sync -j32
source build/envsetup.sh
lunch qemu_trusty_arm64-userdebug
m