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.py
时 adb 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