Super Empty

来自Uotan Wiki · 刷机百科
Mujianwu讨论 | 贡献2024年8月17日 (六) 21:27的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

简介

它是任何动态分区设备在系统构建时可选的产物。它一个定义了动态分区信息的空镜像。它的主要作用是为设备提供一个初始的分区表。

对原生动态分区来说

它自身包含了对逻辑分区的映射信息及逻辑分区大小。可以用于清除或更新super分区,比如后期重新分区逻辑分区大小。

对改造动态分区来说

它定义了维护者定义的设备自身分区和分区大小,将它们合并成一个大的“super”供刷入第三方ROM使用,甚至可以让老旧设备运行DSU。并且针对这类设备它的意义远不止类原生,对PT(Project Treble)也有帮助,有经验的维护者可以通过改造动态分区的方式让用户无需扩容即可体验深度定制UI。

使用方法

原生动态分区设备

方法一:使用命令刷入

fastboot wipe-super super_empty.img的路径

方法二:使用柚坛工具箱刷入

在柚坛工具箱的 格式化&提取 页面中的SuperEmpty部分选择对应的SuperEmpty文件,随后点击 刷入文件 即可。

改造动态分区设备

类原生

1.刷入维护者提供的recovery.img,在rec和boot合并的机器上也可以是boot.img

2.进入fastbootd模式

可使用如下命令:

fastboot reboot fastboot

3.准备最新版本的adb-fastboot工具包和维护者提供的super_empty.img

4.打开命令行进入工具包目录,使用上一节原生动态分区的方法执行命令。如果设备是ab分区,则您应该切换到另外一个槽位再执行一次。

5.重新进入recovery,格式化data分区。

6.连接电脑,使用adb sideload刷入。

GSI

改造动态分区之后,使用 AOSP Recovery 或 TWRP 的Fastbootd,刷入system分区,即可不需扩容也能使用上超过system物理空间大小的镜像。

对开发者的一些帮助

改造动态分区的示例commit

如果分区大小还是不够,您可以考虑切换到erofs或squashfs等等压缩文件系统。必须在内核中有文件系统相关支持且fstab中正确指定挂载参数。

对于在Mac上正常刷写super_empty在win或linux下不能正常刷写的情况,请检查device tree内定义的数值是否100%匹配。