下载和构建

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 master
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

此操作还会运行为此目标配置的所有测试。

手动运行测试运行程序测试(端口激活)(com.android.ipc-unittest.ctrl):

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

在启动时使用内核调试输出运行测试运行程序测试 (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 会先停用控制台,然后再返回测试运行程序。如需在本地停用此设置,请注释掉 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

此命令还有各种其他替换选项。如需了解详情,请查看帮助。

如果在运行 qmeu.pyadb devices -l 失败,系统上运行的 adb 服务器版本可能是错误的。

adb kill-server

启动本地已有的 Android build:

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

构建 Android for Trusty:

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