Android手机启动流程与TEE OS

本文详细阐述了Android手机系统启动流程,从上电至加载Modem的全过程,涉及BOOTROM、Preloader、LK、TEE、Boot等关键组件。强调了安全启动设计的重要性,特别是Google对验证启动功能的要求,确保设备软件的完整性和真实性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载:https://cloud.tencent.com/developer/article/1043659

一个移植了TEEOS的Android手机系统启动流程如下:

系统启动流程如图所示,具体为:

①系统上电,PC指针指向芯片内部BOOT ROM地址并执行。

②BOOT ROM从外部存储设备加载、验证preloader并跳转执行。

③preloader从外部存储加载(验证) ATF(ARM可信固件)、TEE OS、LK,并跳转到ATF执行。

④ATF跳转到TEE OS执行初始化,再返回ATF。

⑤ATF跳转到LK执行。

⑥LK加载运行Android linux kernel。

⑦系统加载Modem。

BOOT ROM:固化在CPU芯片内部ROM中,上电cpu pc就指向这段地址并开始运行。

Preloader: 手机出厂前由手机厂商烧写至cpu芯片外部存储器(如emmc)中,并由BOOT ROM加载至内存中执行。

Lk: 可看作一个第二阶段的bootloader,支持多种启动模式(fastboot meta normal等等),并加载bootimage执行。

TEE: 包含ATF和TEE OS两部分,共同构建安全执行环境。

Boot: Android Kernel。

只有理解了上述启动流程,我们可以更好的进行安全启动设计!

Google有如下要求:

验证启动功能旨在保证设备软件(从硬件信任根直到系统分区)的完整 性。在启动过程中,无论是在每个阶段,都会在进入下一个阶段之前先验证下一个阶段的完整性和真实性。 当用户对软件进行了不应进行的更改时,可以使用该功能向他们发出警告,比如当用户获得一台二手设备后告知他们软件经受了不应进行的更改。此外,该功能还可以提供进行远程认证时使用的其他设备完整性信号。该功能再加上加密功能以及可信执行环境 (TEE) 信任根绑定功能,三者共同为用户数据添加了另一道防范恶意系统软件的保护屏障。如果在任意阶段验证失败,用户都会收到醒目的通知。 目前基于TEE的系统与防范恶意系统软件保护之间,看似底层与上层相差甚远,各位看了上述Google的描述,是不是觉得可以产生结合,形成特色的安全解决方案了呢?

### TEEAndroid系统中的应用 TEE(可信执行环境)在Android设备中扮演着至关重要的角色,主要用于增强系统的安全性。通过创建一个独立于常规操作系统之外的安全区域,TEE能够有效防止来自外部攻击者或其他不信任应用程序的威胁[^1]。 #### 主要应用场景 1. **生物识别认证** 生物特征数据如指纹、面部图像等高度敏感的信息被存储并处理于TEE内部,确保这些私密资料不会泄露至不可控环境中去。当用户尝试解锁手机时,匹配过程也在这个受保护区域内完成,从而提高了身份验证机制的整体可靠性[^2]。 2. **安全启动链(Secure Boot Chain)** 为了阻止未授权固件刷入到终端上,TEE构建了一条完整的从引导加载程序到最后阶段内核初始化期间的信任链条。每一个环节都会校验下一个组件的真实性完整性,只有经过严格验证后的版本才能继续加载运行,以此来抵御潜在的篡改行为。 3. **加密货币钱包支持** 对于那些内置有区块链资产管理和交易功能的应用来说,利用TEE可以更好地保管用户的私钥材料,并且可以在必要时候直接在此封闭空间里进行签名操作而无需暴露任何秘密参数给外界可见的部分。 4. **多媒体内容保护(DRM)** 数字版权管理系统依赖TEE来保存解码所需的许可证信息以及播放过程中产生的临时密钥等内容,使得即使是在开放式的安卓平台上也能满足好莱坞电影公司对于高质量视频分发渠道提出的苛刻要求。 5. **移动支付服务** 支付类APP经常涉及到资金转移这样的高风险活动,因此其核心逻辑部分往往会被迁移到TEE当中执行;此同时,像银行卡号这类重要凭证也会优先考虑存放在这样一个相对更加保险的地方以减少被盗取的风险概率。 ### 实现方式概述 - **硬件层面的支持** ARM架构下的TrustZone技术是目前最为广泛采用的一种物理隔离手段之一,它允许同一颗SoC芯片划分成两个互不干涉的世界——Normal World(正常世界) 和 Secure World (安全世界),前者对应的就是我们日常所使用的Android OS本身,而后者的存在则专为承载各类需要特殊防护的任务而设计。 - **软件框架结构** - **TAM/TAU接口层**: 提供了标准化的方法让普通进程调用位于Secure World里的特定功能模块; - **Trusted Application Manager(TA)**: 负责管理所有已安装好的可信应用程序实例及其生命周期事件; - **Core Frameworks & Libraries**: 构建起整个平台的基础支撑体系,包括但不限于内存分配器、线程调度器等功能部件; - **Hardware Abstraction Layer(HAL)**: 将具体的硅片特性抽象出来形成统一视图供给更高层次使用。 ```java // Java代码示例:如何访问TEE内的API public class TeeExample { public native String getSecretFromTee(); // 声明本地方法用于获取来自TEE的秘密字符串 static{ System.loadLibrary("native-lib"); // 加载包含JNI桥接函数库文件 } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值