Android 分区详解

来自Uotan Wiki · 刷机百科
InvalidName讨论 | 贡献2024年8月16日 (五) 20:26的版本 (initial commit)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

Android 设备包含若干个分区,这些分区在Android启动和运行过程中发挥不同的作用。

为了支持 A/B 更新,设备需要为 boot、system、vendor 和 radio 分区分别单独配置一个槽位。部分设备为了支持 A/B 更新,把 boot、system、vendor 和 radio 配置了两个槽位(如:system_asystem_b)。

常见分区​

boot 分区​

系统启动时引导的分区

TIP

Android 8.0 以前刷机需要连同 boot.img 一起刷入。之后由于引入了 Project Treble 的缘故,可以跳过此分区,直接刷 system.img

init_boot 分区 (Android 13+)​

此分区包含用于出厂搭载 Android 13 及更高版本的设备的通用 ramdisk。

system 分区​

此分区包含 Android 框架。

recovery 分区​

此分区存储在 OTA 过程中启动的恢复映像。支持无缝更新的设备可以将恢复映像存储为 bootinit_boot 映像中包含的 ramdisk(而不是单独的映像)。

其他分区​

cache 分区​

此分区存储临时数据,如果设备使用无缝更新,则该分区是可选的。缓存分区不需要可从引导加载程序写入,但需要可擦除。分区大小取决于设备类型和用户数据空间的 userdata ;通常,50 MB–100 MB 就足够了。

vendor 分区​

此分区包含任何不可分发到 AOSP 的二进制文件。如果设备不包含专有信息,您可以省略此分区。

动态分区

搭载 Android 11 及更高版本的设备可以支持动态分区,此类分区属于 Android 的用户空间分区系统,支持在无线下载 (OTA) 更新期间创建和销毁分区以及调整分区大小。使用此分区系统,您可以在无线下载 (OTA) 更新期间创建、销毁分区或者调整分区大小。借助动态分区,供应商无需担心各个分区(例如 systemvendorproduct)的大小。取而代之的是,设备会分配一个 super 分区,其中的子分区可动态调整大小。各个分区映像不再需要为将来的 OTA 预留空间。相反,super 中剩余的可用空间还可用于所有动态分区。

参考资料(来自AOSP文档):https://source.android.com/docs/core/architecture/partitions?hl=zh-cn#standard-partitions