如何在QEMU中模拟TrustZone?

Mau*_*rdi 5 linux android arm qemu trustzone

我正在尝试在Qemu中模拟TrustZone功能。我发现了两个似乎可以解释此过程的链接。

《第一参考》未附加支持TrustZone的映像内核(在哪里可以找到它?)

《第二参考》解释了如何编译内核,但它并非以第一个网站中编写的命令行开头,如下所示

./arm-softmmu/qemu-system-arm -kernel $PATH_TO_KERNEL/zImage -M vexpress-a15 -cpu cortex-a15 -dtb PATH_TO_DTB/vexpress-v2p-ca15-tc1.dtb -m 1024 -append 'console=ttyAMA0,38400n8' -serial stdio -initrd $PATH_TO_INITRD/initrd.img
Run Code Online (Sandbox Code Playgroud)

有替代方法来运行TrustZone仿真器吗?

小智 4

借助OP-TEE(一种开源 TEE),可以非常轻松地在 QEMU 上运行 TrustZone。您可以让整个堆栈运行从普通世界用户空间和 Linux 内核到安全世界的代码,同时运行 TEE 本身以及受信任的应用程序。QEMU + OP-TEE 适用于 ARMv7-A 和 ARMv8-A。如果您想在本地 PC 上尝试一下,我建议您前往optee_os/README.md并按照第 4.1、5(仅与 QEMU 相关)和 6 节中的说明进行操作。总而言之,我们讨论的内容较少在 shell 中执行超过 10 个命令,您就可以下载、编译所有源代码,并在您的 PC 上本地启动和运行所有内容。

我写了一篇博客文章,介绍为什么 QEMU 是进行 TrustZone 开发的不错选择。