Effective in 2026, to align with our trunk stable development model and ensure platform stability for the ecosystem, we will publish source code to AOSP in Q2 and Q4. For building and contributing to AOSP, use android-latest-release. The android-latest-release manifest branch will always reference the most recent release pushed to AOSP. For more information, see Changes to AOSP .
Trusty 操作系统 (TOS) 分区
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
Trusty 是 Google 的可信执行环境 (TEE) 操作系统实现,与 Android 并行运行。本文列出了使用 Arm Trustzone 技术提供 TEE 的设备需遵循的规范。如果您的 ARM 设备将 Trusty 用作安全操作系统解决方案,则应按照下面几个部分所述的方式实现引导加载程序。
初始化 TOS
如需加载并初始化 Trusty 操作系统 (TOS),引导加载程序应:
设置并配置所有可用的 RAM。
至少初始化 1 个串行端口。
验证 TOS 映像的签名。
将 TOS 加载到 RAM 中(不支持通过闪存或 TCM 执行)。
设置状态和寄存器后,跳转到 TOS 映像中的第一条指令,如下所述。
跳转到 TOS 映像
请在入口配置以下状态:
将 MMU 设为已关闭
Flush 并关闭数据缓存(指令缓存可保持开启或关闭)
将所有中断(IRQ 和 FIQ)设为已停用
在 ARMv7 上,将 CPU 设为 SVC 模式;在 ARMv8 上,将 CPU 设为 EL3 模式
将寄存器配置为以下状态:
r0/x0:分配给 TOS 的内存大小。
r1/x1:包含平台特有启动参数的连续内存块的物理地址。此内存块的布局因平台而异。
r2/x2:上述内存块的大小。
r14/x30:TOS 初始化后(在非安全模式下)要跳转到的返回地址。
注意: r0-r3/x0-x3 也会充当 TOS 的暂存寄存器。返回时不会保留它们的值。
在 64 位平台上:
只有 w0-w2 用于参数,所以 x0-x2 应仅包含 32 位值。
x30 可以包含一个 64 位值。
当 x0 中的值与 TOS 入口点的基址相加时,结果应为一个 32 位的值。同样,当寄存器 x2 中的大小值与 x1 中的启动参数块的地址相加时,结果也应为一个 32 位的值。
从 TOS 返回
完成初始化后,TOS 会在非安全模式下(SCR.NS 设置为 1)返回到引导加载程序,以便引导加载程序可以继续加载主要操作系统(即 Android)。
本页面上的内容和代码示例受内容许可 部分所述许可的限制。Java 和 OpenJDK 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-04-18。
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2025-04-18。"],[],[]]