1. 核心分区布局表
分区类型 | 挂载点 | 推荐/主流文件系统 | 核心特点 |
系统只读分区 | /system,/vendor,/product | EROFS(主流) / ext4 | 高压缩率、极高性能的随机读取、节省内存。 |
用户数据分区 | /data(userdata) | F2FS(主流) / ext4 | 针对 NAND Flash 优化、低写放大、高性能 SQLite。 |
元数据分区 | /metadata | ext4 | 用于存储加密密钥等关键元数据,稳定性第一。 |
持久化分区 | /persist | ext4 | 存储出厂标定、MAC 地址等。 |
2. EROFS:现代 Android 的“只读标配”
- 为什么取代 ext4?传统的只读 ext4 并不支持透明压缩。EROFS 是华为开发并贡献给 Linux 内核的,它支持Fixed-output 压缩算法。
- 性能优势:它解决了“解压导致的读放大”问题。在随机读场景下,EROFS 的表现远超 ext4 或 SquashFS。对于 Android 启动速度和应用加载速度有显著提升。
- 内存节省:支持In-place Decompression (就地解压),解压过程不需要额外的缓冲区,极大地节省了低内存设备(如 MTK 某些入门级芯片)的运行时开销。
3. F2FS:闪存的最佳拍档
- LFS 架构:采用日志结构文件系统,将随机写转化为顺序写,极大延长了闪存寿命并提升了写入速度。
- Android 14 优化:在 Android 14 中,F2FS 的碎片化处理和Checkpointing机制得到了进一步优化,以减少“手机用久了就卡”的情况。
- 功能支持:深度集成fscrypt(文件级加密)和fsverity,确保用户数据安全。
4. 逻辑层:动态分区 (Dynamic Partitions)
- 实现方式:通过内核的dm-linear映射。
- 灵活性:允许在 OTA 更新时动态调整各分区大小,而不必在物理分区表(GPT)中固定死。
MediaTek (MTK) 平台的开发细节
- Split Build:在 Android 14 的 Split Build 架构下,你会发现不同的逻辑分区(如system_dlkm或vendor_dlkm)也开始全面转向EROFS,这有利于进一步减小出厂镜像包的大小。
- 性能分析:如果发现 Android 14 的性能指标不如 Android 13,建议检查BoardConfig.mk中 EROFS 的压缩配置(如BOARD_EROFS_COMPRESS_HINTS)。有时为了追求极致随机读性能,可以选择关闭部分敏感镜像的压缩。