打包AndroidROM

如何打包 Android ROM

提醒事项

注意:本教程以在 Windows 平台下进行打包操作为例,并确保你拥有可以访问国际网络的能力

格式确认

在正式开始之前,你需要了解你接下来需要打包的是哪种类型的文件。本教程将介绍:

  • img 格式打包
  • dat 格式打包
  • br 格式打包

img格式打包

特别注意

本章节将分为三个部分,分别是:

  • ext4 格式 img 打包
  • erofs 格式 img 打包
  • boot/recovery类型 img 打包

1. ext4 格式打包

本部分将分为两个部分(两种打包方式),分别是:

  • 通过 make_ext4fs 打包
  • 通过 mke2fs + e2fsdroid 打包

1. 通过 make_ext4fs 打包

1. 获得所需工具

make_ext4fs - GitHub

访问工具链接并点击 下载图标 下载文件

2. 打包
  • 将工具放置到所需打包分区所在目录
  • 在该目录下打开 cmd 命令行
  • 记录 config\分区名_size.txt 内数值
  • 输入:
    1
    make_ext4fs.exe -J -T 1167580800 -S config\分区名_file_contexts -l 上一步记录的数值 -C config\分区名_fs_config -L 分区名 -a 分区名 打包文件名 分区文件夹名
    示例:
    1
    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
  • 小等一会将会打包完成

注意

  • 打包要求您的文件需要严格按照解包后的结构(即所需打包文件夹 + config文件夹)存放,避免造成找不到文件的情况。如果您的机器是动态分区,请参考第二种打包方式
  • 正确存放示例:
    1
    2
    3
    vendor
    config
    make_ext4fs.exe

2. 通过 mke2fs + e2fsdroid 打包

1. 获得所需工具

mke2fs + e2fsdroid

所需环境:Python - 官网

所需工具:

访问对应链接 并点击 下载图标 下载文件

访问 fspatch 仓库并点击 Code - Download zip 下载

2. 打包
  • 将工具及运行库放置到所需打包分区所在目录
  • 在该目录下打开 cmd 命令行
  • 输入:
    1
    python fspatch.py 分区文件夹名 config\分区名_fs_config
    示例:
    1
    python fspatch.py vendor config\vendor_fs_config
  • 记录 config\分区名_size.txt 内数值,并除以4096后的数值 (例如: 11451419 / 4096)。如果有小数点(如 114514.19),请向上取整(如 114515)
  • 输入:
    1
    mke2fs -O ^has_journal -L 分区名 -I 256 -M /分区名 -m 0 -t ext4 -b 4096 打包文件名 上一步记录的数值
    示例:
    1
    mke2fs -O ^has_journal -L vendor -I 256 -M /vendor -m 0 -t ext4 -b 4096 vendor_new.img 114515
  • 输入:
    1
    e2fsdroid -e -T 1167580800 -S 分区名_fs_config的绝对路径 -C 分区名_fs_config的绝对路径 -a /分区名 -f 分区文件夹名 上一步输入的打包文件名
    示例:
    1
    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
  • 小等一会将会打包完成

注意

  • 打包要求您的文件需要严格按照解包后的结构(即所需打包文件夹 + config文件夹)存放,避免造成找不到文件的情况。
  • 正确存放示例:
    1
    2
    3
    4
    5
    6
    vendor
    config
    mke2fs.exe
    e2fsdroid.exe
    cygwin1.dll
    fspatch.py

2. erofs 格式打包

1. 获得所需工具

mkfs.erofs

所需环境:Python - 官网

所需工具:

访问工具 GitHub 仓库并从 Release 内下载工具

访问 fspatch 仓库并点击 Code - Download zip 下载

2. 打包

  • 将工具内所有文件放置到所需打包分区所在目录
  • 在该目录下打开 cmd 命令行
  • 输入:
    1
    python fspatch.py 分区文件夹名 config\分区名_fs_config
    示例:
    1
    python fspatch.py vendor config\vendor_fs_config
  • 输入:
    1
    mkfs.erofs -zlz4hc,8 -T 1167580800 --mount-point=/分区名 --fs-config-file=分区名_fs_config的绝对路径 --file-contexts=分区名_file_contexts的绝对路径 打包文件名 分区文件夹名
    示例:
    1
    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
  • 小等一会将会打包完成

注意

  • 打包要求您的文件需要严格按照解包后的结构(即所需打包文件夹 + config文件夹)存放,避免造成找不到文件的情况。
  • 正确存放示例:
    1
    2
    3
    4
    5
    6
    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 命令行
  • 输入:
    1
    magiskboot.exe repack 原img文件 新img文件
    示例:
    1
    magiskboot.exe repack boot.img boot_new.img
  • 小等一会将会打包完成

注意

  • 请严格按照解包教程内的解包方法操作才可使用本方法进行打包

dat格式打包

1. 获得所需工具

img2sdat - GitHub

所需环境: Python - 官网

访问 img2sdat 仓库并点击 Code - Download zip 下载

2. 打包

  • 将工具解压到 img文件 所在目录
  • 在该目录下打开 cmd 命令行
  • 输入:
    1
    python img2sdat.py img文件 -v 4 [-p 分区名]
    示例:
    1
    python img2sdat.py system.img -v 4 -p system
  • 小等一会将会打包完成

注意

  • [-p 分区名] 为可选项 不传入此参数打包得到的 dat 名称默认为 system.new.datsystem.patch.datsystem.transfer.list

br格式打包

1. 获得所需工具

brotli - GitHub

请访问工具 GitHub 仓库并从 Release 内下载工具

2. 打包

  • 将工具解压到 br文件 所在目录
  • 在该目录下打开 cmd 命令行
  • 输入:
    1
    brotli -q 5 dat文件 -o 输出的br文件
    示例:
    1
    brotli -q 5 system.new.dat -o system.new.dat.br
  • 小等一会,br文件将会被解压,解压后的文件在同目录

注意

  • -q 后的数字为压缩等级,可选1 - 9。数字越大,压缩率越高,耗时越长。

打包AndroidROM
https://yblog.15937.top/2025/11/01/打包AndroidROM/
作者
来自Uotan Wiki · 刷机百科
发布于
2025年11月1日
许可协议