标题: 鸿蒙更新包 update.bin 解包工具
时间: 2025-10-14发布,1天前修改
[2025-11-29] 修复鸿蒙PC固件system.img超过4GB导致解包不完整的问题。
抓包获取一个鸿蒙全量更新包(update_full_base.zip)。
鸿蒙PC抓包方法:https://hu60.cn/q.php/bbs.topic.107217.html#nav
鸿蒙手机可以参考上述方法,不过由于无法进入恢复模式,目前只能等大版本更新的时候才能抓到完整包。
安装依赖
以 Ubuntu 24.04 为例:
sudo apt install git python3 python3-xmltodict python3-cryptography python3-asn1crypto
下载解包工具
git clone https://gitcode.com/hu60/update_unpackaging_tools.git
解压全量更新包
mkdir update_full_base
cd update_full_base
unzip ../update_full_base.zip
解包 update.bin
python3 ../update_unpackaging_tools/unpack_update_bin.py -i ./update.bin -o .
解出来的包会在自动创建的 unpack_result_xxx 文件夹里。
安装挂载 system.img 所需依赖包
如果内核直接支持erofs文件系统则无需安装。
sudo apt install erofsfuse
如果安装失败,运行以下命令检查内核是否支持erofs:
# 尝试加载erofs内核模块
sudo modprobe erofs
# 检查内核是否支持erofs文件系统
cat /proc/filesystems | grep erofs
如果第一个命令失败,并且第二个命令没有任何输出,说明内核不支持 erofs,需要更换支持的内核(比如 Arch Linux 的内核)或者换成有 erofsfuse 软件包的系统(Debian 13、Ubuntu 24.04)才能正常挂载。
挂载 system.img
cd ./unpack_result_*
mkdir system
# 尝试挂载,自动检测分区类型
sudo mount ./system.img ./system
# 如果上面的命令失败,尝试添加 -t 参数
sudo mount -t erofs ./system.img ./system
cd ./system
ls
以下文件也可以用相同的方式挂载:
chip_prod.img
cust.img
patch.img
sys_prod.img
system.img
vendor.img
注意鸿蒙PC的sys_prod.img是ext2格式,所以参数要改成-t ext2。
当然不加参数应该也是能正常挂载的,所以推荐先不加-t参数,让系统自动判断文件系统类型。
通过 file *.img 可以查看分区的类型。
『回复列表(4|隐藏机器人聊天)』
关机,等键盘灯熄灭,然后按住F10键再开机,可以进入恢复模式。选择“升级模式,eUpdate升级,下载最新版本并恢复”,应该就能获得全量包URL了,然后点取消更新就行,不会丢失数据。
注意,不要不小心点到恢复出厂设置或者其他不清楚用途的选项,要不然数据会丢失。