Super Empty:修订间差异

来自Uotan Wiki · 刷机百科
(创建页面,内容为“# Super empty ## 简介 它是某个老设备改造动态分区后的产物,是一个定义了改造动态分区信息的空镜像,由设备维护者提供刷入。 其中定义了维护者定义的设备自身分区和分区大小,将它们合并成一个大的“super”供刷入第三方ROM使用,甚至可以让老旧设备运行DSU。 它的意义远不止类原生,对PT(Project Treble)也有帮助,有经验的维护者可以通过改造动态…”)
 
无编辑摘要
 
(未显示4个用户的10个中间版本)
第1行: 第1行:
# Super empty
== 简介 ==
它是任何动态分区设备在系统构建时可选的产物。它一个定义了动态分区信息的空镜像。它的主要作用是为设备提供一个初始的分区表。


## 简介
对原生动态分区来说
它是某个老设备改造动态分区后的产物,是一个定义了改造动态分区信息的空镜像,由设备维护者提供刷入。
其中定义了维护者定义的设备自身分区和分区大小,将它们合并成一个大的“super”供刷入第三方ROM使用,甚至可以让老旧设备运行DSU。
它的意义远不止类原生,对PT(Project Treble)也有帮助,有经验的维护者可以通过改造动态分区的方式让用户无需扩容即可体验深度定制UI


## 为什么会有它?
它自身包含了对逻辑分区的映射信息及逻辑分区大小。可以用于清除或更新super分区,比如后期重新分区逻辑分区大小。
因为部分老旧的机型空间分配不均匀,vendor甚至和system一样大。随着Android版本的迭代,增加的新功能越来越多,对系统空间占用也越来越高,所以部分设备需要通过这种方式改造成动态分区。


## 使用方法
对改造动态分区来说
以我个人维护的小米6X(wayne)为例
1.设备重启至fastboot


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


3.准备最新版本的adb工具包和维护者提供的super_empty.img和ROM包
== 使用方法 ==
=== 原生动态分区设备 ===


4.打开命令行进入工具包目录,输入fastboot wipe-super super_empty.img的绝对路径
==== 方法一:使用命令刷入 ====
fastboot wipe-super super_empty.img的路径


5.刷写完毕后继续刷入维护者提供的Recovery,fastboot flash recovery recovery.img的绝对路径
==== 方法二:使用柚坛工具箱刷入 ====
在柚坛工具箱的 格式化&提取 页面中的SuperEmpty部分选择对应的SuperEmpty文件,随后点击 刷入文件 即可。
[[文件:备份与提取.png|居中|缩略图|617x617像素]]


6.重启设备至recovery
=== 改造动态分区设备 ===
==== 类原生 ====
1.刷入维护者提供的recovery.img,在rec和boot合并的机器上也可以是boot.img


7.选择格式化data(format data)
2.进入fastbootd模式


8.连接电脑,使用adb sideload刷入ROM,adb sideload ROM包绝对路径
可使用如下命令:
fastboot reboot fastboot
3.准备最新版本的adb-fastboot工具包和维护者提供的super_empty.img


## 对开发者的一些帮助
4.打开命令行进入工具包目录,使用上一节原生动态分区的方法执行命令。如果设备是ab分区,则您应该切换到另外一个槽位再执行一次。
[https://github.com/jjpprrrr/device%20xiaomi%20sdm845-common/commits/thirteen 改造动态分区的commit(2022年9月22日)]


对于在Mac上正常刷写super_empty在win或linux下不能正常刷写的情况,请检查device tree内定义的数值是否百分之一百匹配。
5.重新进入recovery,格式化data分区。
 
6.连接电脑,使用[[ADB SideLoad|adb sideload]]刷入。
 
==== GSI ====
改造动态分区之后,使用 AOSP Recovery 或 TWRP 的Fastbootd,刷入system分区,即可不需扩容也能使用上超过system物理空间大小的镜像。
 
== 对开发者的一些帮助 ==
[https://github.com/uwu-gl/device_oneplus_sdm845-common/commit/2e2b515df62421024695c08240074df678dbb4c9 改造动态分区的示例commit]
 
如果分区大小还是不够,您可以考虑切换到erofs或squashfs等等压缩文件系统。必须在内核中有文件系统相关支持且fstab中正确指定挂载参数。
 
对于在Mac上正常刷写super_empty在win或linux下不能正常刷写的情况,请检查device tree内定义的数值是否100%匹配。

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%匹配。