news 2026/6/6 5:15:44

ARMv8与MTK8766隔离区固件架构解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ARMv8与MTK8766隔离区固件架构解析

ARM V8与 MTK8766各隔离区运行的实体固件详解

ARMv8架构通过异常等级和安全状态将系统划分为多个隔离区,每个隔离区运行着不同的实体固件,负责不同的功能。理解每个隔离区运行的实体固件,是掌握整个系统架构的关键。

1.1 标准ARMv8隔离区实体

1.1.1 EL3:BL31 Secure Monitor
EL3是整个系统的最高权限等级,运行BL31 Secure Monitor固件。BL31是标准ATF的核心组件,负责以下功能:
  1. 世界切换:负责安全世界与非安全世界之间的切换。
  2. SMC处理:处理来自两个世界的SMC调用。
  3. 中断路由:配置GIC中断控制器,路由安全中断和非安全中断。
  4. 电源管理:提供PSCI(Power State Coordination Interface)电源管理服务。
  5. 系统初始化:初始化系统的核心硬件,如GIC、TZC-400等。
BL31的代码量通常在100KB左右,完全开源,代码位于ATF源码的bl31/目录下。
1.1.2 SEL1:TEE操作系统
SEL1是安全世界的内核态,运行TEE操作系统。主流的TEE操作系统有:
  1. OP-TEE:由Linaro维护的开源TEE,完全符合GlobalPlatform标准,支持多种硬件平台。
  2. Google Trusty:由Google开发的开源TEE,与Android系统深度集成,主要用于Pixel设备。
  3. QSEE:高通开发的闭源TEE,用于骁龙平台。
  4. Trustonic Kinibi:Trustonic开发的闭源TEE,广泛用于三星、联发科等平台。
TEE操作系统负责以下功能:
  1. 可信应用管理:加载、运行和管理可信应用(TA)。
  2. 安全存储:提供基于硬件加密的安全存储服务。
  3. 加密运算:使用硬件加密引擎执行加密、解密、签名、验证等操作。
  4. 可信UI:提供安全的用户界面,防止钓鱼攻击。
  5. 生物识别:处理指纹、人脸等生物识别数据。
TEE操作系统的代码量通常在1MB左右,开源TEE的代码位于各自的源码仓库中。
1.1.3 SEL0:可信应用(TA)
SEL0是安全世界的用户态,运行可信应用(Trusted Application, TA)。TA是专门用于处理敏感操作的应用程序,运行在TEE操作系统提供的隔离环境中。
每个TA都有自己独立的地址空间,相互之间完全隔离。TA只能通过TEE操作系统提供的API访问系统资源,无法直接访问硬件或非安全世界的内存。
常见的TA有:
  1. Keymaster TA:负责密钥的生成、存储和运算。
  2. Gatekeeper TA:负责密码验证,防止暴力破解。
  3. Fingerprint TA:负责指纹模板的存储和比对。
  4. Face TA:负责人脸模板的存储和比对。
  5. Payment TA:负责安全支付相关的操作。
TA的代码量通常在几十KB到几百KB之间,可以是开源的,也可以是闭源的。
1.1.4 NSEL1:Linux内核
NSEL1是非安全世界的内核态,运行Linux内核。Linux内核是Android系统的核心,负责以下功能:
  1. 进程管理:管理系统中的所有进程。
  2. 内存管理:管理系统的物理内存和虚拟内存。
  3. 设备驱动:提供硬件设备的驱动程序。
  4. 文件系统:管理系统的文件系统。
  5. 网络协议栈:提供网络通信功能。
Linux内核的代码量非常庞大,超过2000万行,完全开源,代码位于Linux内核源码仓库中。
1.1.5 NSEL0:Android应用
NSEL0是非安全世界的用户态,运行Android应用。Android应用是普通用户直接交互的程序,运行在Linux内核提供的隔离环境中。
每个Android应用都有自己独立的用户ID和地址空间,相互之间完全隔离。应用只能通过Android系统提供的API访问系统资源,无法直接访问硬件或其他应用的内存。
常见的Android应用有:
  1. 系统应用:如电话、短信、相机、设置等。
  2. 第三方应用:如微信、支付宝、抖音等。
Android应用的代码量差异很大,从几十KB到几百MB不等。

2.2 MT8766隔离区实体

MT8766的隔离区实体与标准ARMv8基本一致,但在EL3和SEL1做了一些定制化修改。
2.2.1 EL3:Preloader中的Secure Monitor
MT8766的EL3运行preloader.img中的Secure Monitor模块。与标准BL31不同,MT8766的Secure Monitor与BL2合并为一个单一的preloader.img镜像,全程运行在EL3。
MT8766的Secure Monitor负责以下功能:
  1. 世界切换:负责安全世界与非安全世界之间的切换。
  2. SMC处理:处理来自两个世界的SMC调用。
  3. 中断路由:配置GIC中断控制器,路由所有中断到EL3,然后转发给对应的世界。
  4. 电源管理:提供MTK特有的电源管理服务。
  5. 系统初始化:初始化DDR、时钟、电源等核心硬件。
preloader.img的代码量通常在200KB左右,部分开源,包含大量闭源二进制blob,代码位于MTK ATF源码的plat/mediatek/目录下。
2.2.2 SEL1:Kinibi TEE内核
MT8766的SEL1运行Trustonic Kinibi TEE内核。Kinibi是一款闭源的微内核TEE,具有体积小、安全性高、实时性好等特点。
Kinibi TEE内核负责以下功能:
  1. 微内核管理:提供最基本的进程调度和内存管理功能。
  2. 驱动管理:管理安全外设的驱动程序,所有驱动都运行在S-EL0。
  3. TA管理:加载、运行和管理可信应用。
  4. 安全存储:提供基于RPMB分区的安全存储服务。
  5. 加密运算:使用MTK的HACC硬件加密引擎执行加密运算。
Kinibi TEE内核的代码量非常小,只有约200KB,完全闭源,只有二进制镜像tee.img。
2.2.3 SEL0:Kinibi TA与驱动
MT8766的SEL0运行Kinibi TA和驱动。与标准TEE不同,Kinibi采用微内核架构,所有驱动和服务都运行在S-EL0,作为独立的TA。
常见的Kinibi TA和驱动有:
  1. Keymaster TA:负责密钥的生成、存储和运算。
  2. Gatekeeper TA:负责密码验证。
  3. Fingerprint TA:负责指纹模板的存储和比对。
  4. HACC驱动:硬件加密引擎的驱动程序。
  5. RPMB驱动:RPMB分区的驱动程序。
Kinibi TA和驱动都是闭源的,编译为MCLF格式,内置在tee.img中。
2.2.4 NSEL1:LK Bootloader与Linux内核
MT8766的NSEL1首先运行LK(Little Kernel)Bootloader,然后由LK加载和启动Linux内核。
LK是一款轻量级的Bootloader,负责以下功能:
  1. 硬件初始化:初始化非安全世界的硬件设备。
  2. 镜像加载:从eMMC加载Linux内核和Android系统镜像。
  3. 安全启动验证:验证Linux内核和Android系统镜像的签名。
  4. 启动参数传递:将启动参数传递给Linux内核。
Linux内核的功能与标准Linux内核基本一致,但包含了大量MTK特有的驱动程序和补丁。
2.2.5 NSEL0:Android应用
MT8766的NSEL0运行Android应用,与标准Android应用完全一致。

3.3 对比总结

隔离区
标准ARMv8实体
MT8766实体
EL3
BL31 Secure Monitor
Preloader中的Secure Monitor模块
SEL1
OP-TEE/Trusty TEE内核
Trustonic Kinibi TEE内核
SEL0
可信应用(TA)
Kinibi TA与驱动
NSEL1
Linux内核
LK Bootloader + Linux内核
NSEL0
Android应用
Android应用

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/6 5:14:41

51单片机搭配ADC0832实测100V直流电压的完整软硬件方案

本文还有配套的精品资源,点击获取 简介:用STC89C52或AT89C51这类经典51单片机,配合ADC0832模数转换芯片,实现对100V左右直流电压的安全、稳定采样。硬件采用分压加隔离设计,兼顾抗干扰与电气安全,可直接…

作者头像 李华
网站建设 2026/6/6 5:11:02

sass-resources-loader源码解析:深入理解Webpack Loader的工作原理

sass-resources-loader源码解析:深入理解Webpack Loader的工作原理 【免费下载链接】sass-resources-loader SASS resources (e.g. variables, mixins etc.) loader for Webpack. Also works with less, post-css, etc. 项目地址: https://gitcode.com/gh_mirrors…

作者头像 李华
网站建设 2026/6/6 5:10:16

从失控到可控:以私有化安全协作平台构建政企可控的数字化底座

告别“建了系统却管不住”的困局:政企数字化底座如何从失控走向可控 很多政企单位在数字化转型时,都会遇到一个共同的烦恼:明明上了几十套系统,买了各种先进软件,但内部管理却并没有变轻松,反而更乱了。 总…

作者头像 李华
网站建设 2026/6/6 5:07:01

多模态遥感数据融合:MMLGNet框架与CLIP模型应用

1. 多模态遥感数据对齐的挑战与机遇遥感技术在过去十年经历了爆炸式增长,各种新型传感器不断涌现。高光谱成像(HSI)能捕获数百个窄波段的光谱信息,为物质识别提供了独特优势;激光雷达(LiDAR)则通…

作者头像 李华
网站建设 2026/6/6 5:03:53

如何用OBS Studio打造专业级直播:从入门到精通的完整指南

如何用OBS Studio打造专业级直播:从入门到精通的完整指南 【免费下载链接】obs-studio OBS Studio - Free and open source software for live streaming and screen recording 项目地址: https://gitcode.com/GitHub_Trending/ob/obs-studio 想要开启直播生…

作者头像 李华
网站建设 2026/6/6 5:02:58

终极Excel搜索革命:3分钟搞定海量文件内容查找指南

终极Excel搜索革命:3分钟搞定海量文件内容查找指南 【免费下载链接】QueryExcel 多Excel文件内容查询工具。 项目地址: https://gitcode.com/gh_mirrors/qu/QueryExcel 还在为查找Excel数据而加班到深夜吗?QueryExcel多Excel文件内容查询工具为你…

作者头像 李华