SakuraKyuo(讨论 | 贡献) 小 (突出注意事项) |
Iibchara-dev(讨论 | 贡献) 无编辑摘要 |
||
第5行: | 第5行: | ||
在正式开始之前,你需要了解你接下来需要打包的是哪种类型的文件。本教程将介绍 | 在正式开始之前,你需要了解你接下来需要打包的是哪种类型的文件。本教程将介绍 | ||
# img格式 | # [[#img格式打包|'''img格式''']] | ||
# dat格式 | # [[#dat格式打包|'''dat格式''']] | ||
# br格式 | # [[#br格式打包|'''br格式''']] | ||
== img格式打包 == | == img格式打包 == | ||
=== 特别注意 === | === 特别注意 === | ||
本章节将分为三个部分,分别是: | |||
# ext4 格式 img 打包 | # '''ext4 格式 img 打包''' | ||
# erofs 格式 img 打包 | # '''erofs 格式 img 打包''' | ||
# boot/recovery类型 img 打包 | # '''boot/recovery类型 img 打包''' | ||
=== 1. ext4 格式打包 === | === 1. ext4 格式打包 === | ||
第26行: | 第26行: | ||
==== 1. 通过 make_ext4fs 打包 ==== | ==== 1. 通过 make_ext4fs 打包 ==== | ||
===== 1.获得所需工具 - make_ext4fs | ===== 1.获得所需工具 - make_ext4fs - [https://github.com/ColdWindScholar/MIO-KITCHEN-SOURCE/blob/main/bin/Windows/AMD64/make_ext4fs.exe GitHub] ===== | ||
<p style="color: gray;">访问工具链接并点击 '''下载图标''' 下载文件</p> | |||
===== 2. 打包 ===== | ===== 2. 打包 ===== | ||
1. 将工具放置到'''所需打包分区'''所在目录 | |||
2. 在'''该目录'''下打开 cmd 命令行 | |||
3. 记录 '''config\分区名_size.txt''' 内数值 | |||
4. 输入: | |||
<pre>make_ext4fs.exe -J -T 1167580800 -S config\分区名_file_contexts -l 上一步记录的数值 -C config\分区名_fs_config -L 分区名 -a 分区名 打包文件名 分区文件夹名</pre> | |||
示例: | |||
<pre>make_ext4fs.exe -J -T 1167580800 -S config\vendor_file_contexts -l 1145141919 -C config\vendor_fs_config -L vendor -a vendor vendor_new.img vendor</pre> | |||
5. 小等一会将会打包完成 | |||
===== 注意 ===== | ===== 注意 ===== | ||
打包要求您的文件需要'''严格按照解包后的结构'''(即'''所需打包文件夹 + config文件夹''')存放,避免造成找不到文件的情况。如果您的机器是动态分区,请参考第二种打包方式 | |||
正确存放示例:<code>vendor config make_ext4fs.exe</code> | |||
==== 2. 通过 mke2fs + e2fsdroid 打包 ==== | ==== 2. 通过 mke2fs + e2fsdroid 打包 ==== | ||
===== 1. 获得所需工具 - mke2fs + e2fsdroid ===== | ===== 1. 获得所需工具 - mke2fs + e2fsdroid ===== | ||
所需环境: Python | 所需环境: Python - [https://www.python.org/ 官网] | ||
所需工具: | 所需工具: | ||
第54行: | 第65行: | ||
工具运行库 - [https://github.com/ColdWindScholar/MIO-KITCHEN-SOURCE/blob/main/bin/Windows/AMD64/cygwin1.dll GitHub] | 工具运行库 - [https://github.com/ColdWindScholar/MIO-KITCHEN-SOURCE/blob/main/bin/Windows/AMD64/cygwin1.dll GitHub] | ||
访问对应链接 并点击 下载图标 下载文件 | 访问对应链接 并点击 '''下载图标''' 下载文件 | ||
fspatch - [https://github.com/affggh/fspatch GitHub] | fspatch - [https://github.com/affggh/fspatch GitHub] | ||
访问 fspatch 仓库并点击 Code - Download zip 下载 | 访问 fspatch 仓库并点击 '''Code - Download zip''' 下载 | ||
===== 2. 打包 ===== | ===== 2. 打包 ===== | ||
1. 将工具及运行库放置到'''所需打包分区'''所在目录 | |||
2. 在'''该目录'''下打开 cmd 命令行 | |||
3. 输入 <pre>python fspatch.py 分区文件夹名 config\分区名_fs_config</pre> | |||
示例: | |||
<pre>python fspatch.py vendor config\vendor_fs_config</pre> | |||
4. 记录'''config\分区名_size.txt'''内数值,并除以'''4096'''后的数值 (例如: 11451419 / 4096)。如果有'''小数点'''(如 114514.19),请去除小数点并 '''+1'''(即 114515) | |||
5. 输入: | |||
<pre>mke2fs -O ^has_journal -L 分区名 -I 256 -M /分区名 -m 0 -t ext4 -b 4096 打包文件名 上一步记录的数值</pre> | |||
示例: | |||
<pre>mke2fs -O ^has_journal -L vendor -I 256 -M /vendor -m 0 -t ext4 -b 4096 vendor_new.img 114515</pre> | |||
6. 输入 <pre>e2fsdroid -e -T 1167580800 -S 分区名_fs_config的绝对路径 -C 分区名_fs_config的绝对路径 -a /分区名 -f 分区文件夹名 上一步输入的打包文件名</pre> | |||
示例: | |||
<pre>e2fsdroid -e -T 1167580800 -S D:\homo\config\vendor_file_contexts -C D:\homo\config\vendor_fs_config -a /vendor -f vendor vendor_new.img</pre> | |||
7. 小等一会将会打包完成 | |||
===== 注意 ===== | ===== 注意 ===== | ||
* 打包要求您的文件需要'''严格按照解包后的结构'''(即'''所需打包文件夹 + config文件夹''')存放,避免造成找不到文件的情况。 | |||
* 正确存放示例:<code>vendor config mke2fs.exe e2fsdroid.exe cygwin1.dll fspatch.py</code> | |||
=== 2. erofs 格式打包 === | === 2. erofs 格式打包 === | ||
==== 1. 获得所需工具 - mkfs.erofs ==== | ==== 1. 获得所需工具 - mkfs.erofs ==== | ||
所需环境: Python | 所需环境: Python - [https://www.python.org/ 官网] | ||
所需工具: | 所需工具: | ||
第84行: | 第112行: | ||
mkfs.erofs - [https://github.com/sekaiacg/erofs-utils GitHub] | mkfs.erofs - [https://github.com/sekaiacg/erofs-utils GitHub] | ||
请访问工具 GitHub 仓库并从 Release 内下载工具 | 请访问工具 GitHub 仓库并从 '''Release''' 内下载工具 | ||
fspatch - [https://github.com/affggh/fspatch GitHub] | fspatch - [https://github.com/affggh/fspatch GitHub] | ||
访问 fspatch 仓库并点击 Code - Download zip 下载 | 访问 fspatch 仓库并点击 '''Code - Download zip''' 下载 | ||
==== 2. 打包 ==== | ==== 2. 打包 ==== | ||
1. 将工具内所有文件放置到'''所需打包分区'''所在目录 | |||
2. 在'''该目录'''下打开 cmd 命令行 | |||
3. 输入: | |||
<pre>python fspatch.py 分区文件夹名 config\分区名_fs_config</pre> | |||
示例: | |||
<pre>python fspatch.py vendor config\vendor_fs_config</pre> | |||
4. 输入:<pre>mkfs.erofs -zlz4hc,8 -T 1167580800 --mount-point=/分区名 --fs-config-file=分区名_fs_config的绝对路径 --file-contexts=分区名_file_contexts的绝对路径 打包文件名 分区文件夹名</pre> | |||
示例: | |||
<pre>mkfs.erofs -zlz4hc,8 -T 1167580800 --mount-point=/vendor --fs-config-file=D:\homo\config\vendor_fs_config --file-contexts=D:\homo\config\vendor_file_contexts vendor_new.img vendor</pre> | |||
5. 小等一会将会打包完成 | |||
===== 注意 ===== | ===== 注意 ===== | ||
* 打包要求您的文件需要'''严格按照解包后的结构'''(即'''所需打包文件夹 + config文件夹''')存放,避免造成找不到文件的情况。 | |||
* 正确存放示例:<code>vendor config mkfs.erofs.exe winfsp-x64.dll cygwin1.dll fspatch.py</code> | |||
=== 3. boot/recovery类型 img 打包 === | === 3. boot/recovery类型 img 打包 === |
2024年2月16日 (五) 23:47的版本
提醒事项
注意:本教程以在 Windows 10 平台下进行解包操作为例,并确保你拥有可以访问国际网络的能力
格式确认
在正式开始之前,你需要了解你接下来需要打包的是哪种类型的文件。本教程将介绍
img格式打包
特别注意
本章节将分为三个部分,分别是:
- ext4 格式 img 打包
- erofs 格式 img 打包
- boot/recovery类型 img 打包
1. ext4 格式打包
本部分将分为两个部分(两种打包方式),分别是
- 通过 make_ext4fs 打包
- 通过 mke2fs + e2fsdroid 打包
1. 通过 make_ext4fs 打包
1.获得所需工具 - make_ext4fs - GitHub
访问工具链接并点击 下载图标 下载文件
2. 打包
1. 将工具放置到所需打包分区所在目录
2. 在该目录下打开 cmd 命令行
3. 记录 config\分区名_size.txt 内数值
4. 输入:
make_ext4fs.exe -J -T 1167580800 -S config\分区名_file_contexts -l 上一步记录的数值 -C config\分区名_fs_config -L 分区名 -a 分区名 打包文件名 分区文件夹名
示例:
make_ext4fs.exe -J -T 1167580800 -S config\vendor_file_contexts -l 1145141919 -C config\vendor_fs_config -L vendor -a vendor vendor_new.img vendor
5. 小等一会将会打包完成
注意
打包要求您的文件需要严格按照解包后的结构(即所需打包文件夹 + config文件夹)存放,避免造成找不到文件的情况。如果您的机器是动态分区,请参考第二种打包方式
正确存放示例:vendor config make_ext4fs.exe
2. 通过 mke2fs + e2fsdroid 打包
1. 获得所需工具 - mke2fs + e2fsdroid
所需环境: Python - 官网
所需工具:
mke2fs - GitHub
e2fsdroid - GitHub
工具运行库 - GitHub
访问对应链接 并点击 下载图标 下载文件
fspatch - GitHub
访问 fspatch 仓库并点击 Code - Download zip 下载
2. 打包
1. 将工具及运行库放置到所需打包分区所在目录
2. 在该目录下打开 cmd 命令行
3. 输入
python fspatch.py 分区文件夹名 config\分区名_fs_config
示例:
python fspatch.py vendor config\vendor_fs_config
4. 记录config\分区名_size.txt内数值,并除以4096后的数值 (例如: 11451419 / 4096)。如果有小数点(如 114514.19),请去除小数点并 +1(即 114515)
5. 输入:
mke2fs -O ^has_journal -L 分区名 -I 256 -M /分区名 -m 0 -t ext4 -b 4096 打包文件名 上一步记录的数值
示例:
mke2fs -O ^has_journal -L vendor -I 256 -M /vendor -m 0 -t ext4 -b 4096 vendor_new.img 114515
6. 输入
e2fsdroid -e -T 1167580800 -S 分区名_fs_config的绝对路径 -C 分区名_fs_config的绝对路径 -a /分区名 -f 分区文件夹名 上一步输入的打包文件名
示例:
e2fsdroid -e -T 1167580800 -S D:\homo\config\vendor_file_contexts -C D:\homo\config\vendor_fs_config -a /vendor -f vendor vendor_new.img
7. 小等一会将会打包完成
注意
- 打包要求您的文件需要严格按照解包后的结构(即所需打包文件夹 + config文件夹)存放,避免造成找不到文件的情况。
- 正确存放示例:
vendor config mke2fs.exe e2fsdroid.exe cygwin1.dll fspatch.py
2. erofs 格式打包
1. 获得所需工具 - mkfs.erofs
所需环境: Python - 官网
所需工具:
mkfs.erofs - GitHub
请访问工具 GitHub 仓库并从 Release 内下载工具
fspatch - GitHub
访问 fspatch 仓库并点击 Code - Download zip 下载
2. 打包
1. 将工具内所有文件放置到所需打包分区所在目录
2. 在该目录下打开 cmd 命令行
3. 输入:
python fspatch.py 分区文件夹名 config\分区名_fs_config
示例:
python fspatch.py vendor config\vendor_fs_config
4. 输入:
mkfs.erofs -zlz4hc,8 -T 1167580800 --mount-point=/分区名 --fs-config-file=分区名_fs_config的绝对路径 --file-contexts=分区名_file_contexts的绝对路径 打包文件名 分区文件夹名
示例:
mkfs.erofs -zlz4hc,8 -T 1167580800 --mount-point=/vendor --fs-config-file=D:\homo\config\vendor_fs_config --file-contexts=D:\homo\config\vendor_file_contexts vendor_new.img vendor
5. 小等一会将会打包完成
注意
- 打包要求您的文件需要严格按照解包后的结构(即所需打包文件夹 + config文件夹)存放,避免造成找不到文件的情况。
- 正确存放示例:
vendor config mkfs.erofs.exe winfsp-x64.dll cygwin1.dll fspatch.py
3. boot/recovery类型 img 打包
1. 获得所需工具 - magiskboot(GitHub)
请访问工具 GitHub 仓库并从 Release 内下载工具
2. 打包
- 将工具放置到 所需打包boot/recovery 所在目录
- 在该目录下打开 cmd 命令行
- 输入
magiskboot.exe repack 原img文件 新img文件
(示例:magiskboot.exe repack boot.img boot_new.img
) - 小等一会将会打包完成
注意
- 请严格按照解包教程内的 解包方法 操作才可使用本方法进行打包
dat格式打包
1. 获得所需工具 - img2sdat(GitHub)
所需环境: Python(官网)
访问 img2sdat 仓库并点击 Code - Download zip 下载
2. 打包
- 将工具解压到 img文件 所在目录
- 在该目录下打开 cmd 命令行
- 输入
python img2sdat.py img文件 -v 4 [-p 分区名]
(示例:python img2sdat.py system.img -v 4 -p system
) - 小等一会将会打包完成
注意
[-p 分区名]
为可选项 不传入此参数打包得到的 dat 名称默认为system.new.dat
,system.patch.dat
,system.transfer.list
br格式打包
1. 获得所需工具 - brotli(GitHub)
请访问工具 GitHub 仓库并从 Release 内下载工具
2. 打包
- 将工具解压到 br文件 所在目录
- 在该目录下打开 cmd 命令行
- 输入
brotli -q 5 dat文件 -o 输出的br文件
(示例:brotli -q 5 system.new.dat -o system.new.dat.br
) - 小等一会 br文件 将会被解压 解压后的文件在同目录
注意
- -q 后的数字为压缩等级,可选1 - 9,数字越大 压缩率越高 耗时越长