eMMC 存储分区结构解析
创作时间:
作者:
@小白创作中心
eMMC 存储分区结构解析
引用
CSDN
1.
https://blog.csdn.net/DengCaixiang2021/article/details/144694337
eMMC(Embedded Multi-Media Card)是一种嵌入式存储解决方案,广泛应用于各种嵌入式设备中。其存储分区结构对于理解设备的启动过程和数据存储机制至关重要。本文将详细介绍eMMC的各个存储分区及其功能。
一、eMMC 存储分区结构图
分区 | 用途 |
---|---|
Boot Area Partitions | 存储引导加载程序,支持安全启动和恢复模式 |
RPMB Partition | 存储安全关键数据,防止重放攻击 |
General Purpose Partitions | OEM 自定义数据分区,用于特定功能或镜像存储 |
User Data Area | 应用程序和用户数据存储 |
二、分区介绍
1、Boot Area 分区
Boot Area 分区主要存储引导程序(Bootloader)的第一阶段(Primary Bootloader),也称为 BL1 或 PBL(Primary Boot Loader)。这个阶段的引导程序通常非常小,负责加载更复杂的二级引导程序(如 U-Boot、LK 等)。
在设备加电后,SoC 的引导 ROM 会从 Boot Area 分区读取引导代码并加载到内存中执行。
系统启动Boot Area 分区的读取流程
- SoC 的内置 Boot ROM 会尝试从 eMMC 的 Boot Area 分区加载启动代码。
- 如果找到有效的引导代码,就将其加载到 RAM 并执行。
- 第一阶段引导程序会继续加载更复杂的二级引导程序(如 U-Boot 或其他启动代码),通常从用户数据区或 General Purpose 分区加载。
- 引导程序最终会加载操作系统的内核并交出控制权。
2、RPMB 分区
RPMB(Replay Protected Memory Block)分区是一种特殊的存储区域,通常用于嵌入式存储设备(如eMMC或UFS),其主要功能是提供一种安全的、不可篡改的存储空间,用于存储敏感数据或运行安全相关的操作;
特性
- 防篡改性:RPMB 使用基于硬件的消息认证码(MAC)机制,确保数据在传输和存储过程中未被篡改。
- 回放保护:通过计数器机制,防止旧数据包被重复写入(Replay Attack)。
- 安全访问:只有经过授权的设备和软件可以访问 RPMB 区域。
访问机制
- RPMB 不能像普通存储分区一样直接读取或写入,而是通过专门的命令和协议(如 MMC/JEDEC 标准)与设备通信。
- 每次访问需要通过认证,包括读、写、计数器检查等操作。
认证与密钥
- RPMB 区域基于对称加密技术(如 HMAC),访问权限通过预设的共享密钥控制。
- 密钥通常在设备生产时写入,设备运行时不会暴露给软件层。
使用限制
- 容量有限:通常只有几百 KB,适合存储少量关键数据。
- 不可格式化:一旦配置为 RPMB 分区,无法通过普通手段修改或格式化。
读写流程
RPMB 数据读取的流程如下:
- Host 向 eMMC 发起读 RPMB 的请求,同时生成一个 16 bytes 的随机数,发送给 eMMC。
- eMMC 将请求的数据从 RPMB 中读出,并使用 Secure Key 通过 HMAC SHA-256 算法,计算读取到的数据和接收到的随机数拼接到一起后的签名。然后,eMMC 将读取到的数据、接收到的随机数、计算得到的签名一并发送给 Host。
- Host 接收到 RPMB 的数据、随机数以及签名后,首先比较随机数是否与自己发送的一致,如果一致,再用同样的 Secure Key 通过 HMAC SHA-256 算法对数据和随机数组合到一起进行签名,如果签名与 eMMC 发送的签名是一致的,那么就可以确定该数据是从 RPMB 中读取到的正确数据,而不是攻击者伪造的数据。
RPMB 数据写入的流程如下:
- Host 按照上面的读数据流程,读取 RPMB 的 Write Counter。
- Host 将需要写入的数据和 Write Counter 拼接到一起并计算签名,然后将数据、Write Counter 以及签名一并发给 eMMC。
- eMMC 接收到数据后,先对比 Write Counter 是否与当前的值相同,如果相同那么再对数据和 Write Counter 的组合进行签名,然后和 Host 发送过来的签名进行比较,如果签名相同则鉴权通过,将数据写入到 RPMB 中。
3、General Purpose Partitions 分区
- 用于存储 OEM 自定义数据、分区镜像或特定的系统功能数据。
- 可以根据设备需求进行配置和分配。
4、User Data Area 分区
- 最大的存储区域,用于存储用户数据和文件系统(如 Android 的 /data 分区)。
- 读写操作与普通存储类似,是主要的应用程序存储区。
热门推荐
“新蓝领”开辟就业新空间
世界十大浪漫花语的花卉排行榜,有你喜爱的花吗?
如何查找可靠的营养师信息来源?
发酵床养猪怎么养?有什么可行性?优缺点有哪些?
DeepSeek技术社区:一文搞明白DeepSeek超高幻觉率及解决思路
《焚城》:核灾难下的正义坚守与希望之光
世界公认的十大长寿食物,老的慢是吃出来的
喝什么茶对肾脏好?
酒后不适按摩管用吗?按摩这些穴位可缓解
脑袋没了都能长出来!“六角恐龙”为何如此逆天?
新质观察|发展新质生产力需要打造透明化供应链
9.1日红狼大战落幕,巅峰对决AG完成复仇,大狼尽力了
新房装修后如何正确开窗通风?入住时间有讲究
从“孩子高处跌落摔到头”到“蛛网膜下腔出血”都是怎么回事?
广东省商务厅公布的“30大经典美味”,看看你吃过几种?
支付方式改革背景下,基本医保住院端DRG分组运行结果怎么样?
2025苏州太湖西山岛游玩打卡点推荐
高铁忘带身份证怎么办?三种方案助你轻松乘车
创伤后应激障碍的表现
银行理财投资策略多元化:收益与风险的平衡之道
便祕吃什麼?營養師:最強通便10大食物!3招立即解決便秘
《人民日报》:运动、调整睡眠观念和享受生活是缓解抑郁的有效方法
供应链具有哪些特征
28万装修预算如何打造理想家居?全屋装修细节分享
晚上吃水果对身体有益还是有害
从“导演饺子”到“版权饺子”:国产动画电影的版权保护之路
台式机应该怎么选?5步搞懂需求,避开商家套路!小白必看!
增高显腿长穿搭法:时尚博主穿上增高鞋偷偷长高几厘米、显腿长!
市现率的计算方式是什么?这种计算方式对投资决策有何影响?
必吃榜!崇州十大人气串串店全攻略