工具
img4tool Apple IMG4 容器工具
tihmstar 开发的命令行工具和 C++ 库,用于处理 Apple 的 IMG4 固件容器格式。它可以打印 IMG4 文件、IM4P 载荷容器和 IM4M 签名清单的 ASN.1 内容,包括载荷类型、描述和密钥包(KBAG);也可从 IMG4 或 SHSH 文件中提取 IM4P 或 IM4M、从 IM4P 中提取载荷,自动解压 LZSS 或 BVX2(LZFSE)压缩数据,并在提供 IV 和密钥时解密。此外,它能根据 BuildManifest 校验 IM4M 票据或已签名的 IMG4,把 IM4M 转换为 SHSH,并为恢复工具构建或重命名容器。
- 目标
- 固件
- 类别
- 固件工具
- 关联
- 基础工具
- 来源复核于
使用条件与局限
- 审阅时最新版本为 build 218,发布于 2026-01-29,提供的是 CI 生成的 macOS 和 Ubuntu buildroot 压缩包,而非打包好的安装程序。所审阅的 master 提交(2026-08-20 合并)比它多两个提交,合并了一项 generator 参数修复。版本号即仓库的提交总数。
- 从源码构建需要 autoconf、automake、libtool、pkg-config 和支持 C++11 的编译器,并依赖 tihmstar 的 libgeneral。libplist-2.0(用于读取 SHSH、校验和格式转换)以及用于解密和载荷哈希校验的加密后端(OpenSSL,macOS 上也可用 CommonCrypto)均为可选依赖;缺少加密后端时无法解密,校验也会提示无法检查载荷哈希。BVX2 支持需要 Apple 的 libcompression 或 liblzfse;可选的 libfwkeyfetch 构建会增加一个密钥查询选项,本条目不涉及该功能。
- 输入文件为使用者自有的 IMG4、IM4P、IM4M 或 SHSH 文件以及 BuildManifest。仓库只有源码,没有提交任何 Apple 固件、票据或密钥;解密载荷所需的 IV 和密钥须由使用者自行提供。按文件头说明,附带的 LZSS 解码器(lzssdec.c)改编自 Jonathan Levin 的 joker 代码。
- 采用 LGPL-3.0 许可。容器创建、重命名和 IM4R generator 选项服务于恢复流程,此处不再展开。本次未解析任何固件文件,也未进行构建。
关于此条目
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · tihmstar/img4tool · 修订 bb2d634
- img4tool/main.cpp#L44-L199 GitHub · tihmstar/img4tool · 修订 bb2d634
- img4tool/img4tool.cpp GitHub · tihmstar/img4tool · 修订 bb2d634
- img4tool/lzssdec.c#L1-L8 GitHub · tihmstar/img4tool · 修订 bb2d634
- configure.ac GitHub · tihmstar/img4tool · 修订 bb2d634
- .github/workflows/main.yml GitHub · tihmstar/img4tool · 修订 bb2d634
- LICENSE GitHub · tihmstar/img4tool · 修订 bb2d634
- https://github.com/tihmstar/img4tool/releases/tag/218