Android 10 支持动态分区,这是一种可以在无线下载 (OTA) 更新期间创建和销毁分区以及调整分区大小的用户空间分区系统。
本页介绍了如何在搭载动态分区支持的 A/B 设备更新期间调整动态分区的大小(针对搭载 Android 9 及更低版本的设备)。
背景
设备上有一个 super 分区。此分区没有槽后缀。块设备必须与 fstab 中 /misc 的 blk_device 条目一起存在。例如,如果 fstab 文件列出了以下内容:
/dev/block/bootdevice/by-name/misc /misc # Other fields
然后,禁止的设备super必须位于/dev/block/bootdevice/by-name/super,但super该分区不需要列在fstab文件。
super 分区中有两个元数据插槽,编号分别为 0 和 1,对应于分区的 A/B 插槽。在本文档中,我们将元数据槽位称为元数据 S(源)和元数据 T(目标)。类似地,将分区命名为 system_s、vendor_t 等。
在升级之前,元数据 S 包含正在使用的动态分区(通常是 system_s、vendor_s、product_s 等)的信息。系统会在更新期间读取这些分区的范围,因此它们无法删除。
分区属于更新组。如需了解详情,请参阅实现动态分区。
下面的示例显示了设备上的元数据。
元数据 0
群组 foo_a
分区 system_a
分区 product_services_a
其他由 Foo 更新的分区
组 bar_a
分区 vendor_a
分区 product_a
其他由 Bar 更新的分区
“f