#im4p #img4 #im4r #im4m #encryption-decryption #image-compression #parser

app image4-util

纯Rust工具,用于处理Image4文件(即IMG4、IM4P、IM4M、IM4R)

9个版本 (4个破坏性更新)

0.5.2 2023年8月6日
0.5.1 2023年7月7日
0.5.0 2023年6月15日
0.4.2 2023年6月1日
0.1.0 2023年5月9日

#781 in 编码

Download history 20/week @ 2024-04-04

每月85次下载

MIT/Apache

225KB
5K SLoC

image4-util

Crate

纯Rust工具,用于处理Image4文件(即IMG4、IM4P、IM4M、IM4R)。

功能

  • 从Image4容器(IMG4)或Image4有效载荷文件(IM4P)中提取有效载荷内容。
  • 创建完整的Image4容器或Image4有效载荷文件。
  • 使用已知的AES密钥和IV解密加密的图像。
  • 解压缩使用LZSS和LZFSE(LZVN尚不支持)压缩的图像。
  • 解析、创建和签名Image4清单。支持已签名和未签名的清单。
  • 为签名Image4清单创建证书。

安装

cargo install image4-util

日志记录

日志实现基于env_logger库。有3个日志级别:infowarnerror(非发布构建支持debug日志级别)。默认情况下,只启用warningerror级别。您可以使用IMAGE4_LOG环境变量设置不同的最小日志级别(将设置为off以完全关闭日志记录)。

示例

默认情况下,image4-util不详细

$ image4-util extract --iv xxx --key xxx -v llb.im4p
[?] File at llb.bin exists. Do you want to replace it? yes
$

但是,如果启用info日志级别,它会相当详细。

$ IMAGE4_LOG=info image4-util extract --iv xxx --key xxx llb.im4p
[*] Extracting file at 'llb.im4p' to 'llb.bin'.
[*] 4CC tag: illb
[*] Builder string: iBoot-7429.41.5
[?] File at llb.bin exists. Do you want to replace it? yes
[*] Decompressed 606278 bytes into 1319704 bytes.
[*] Success.
$

这里的xxx将替换为您实际的关键字和IV。

最低支持的Rust版本

此crate至少需要Rust 1.65。MSRV更改将伴随着次要版本号的增加

许可证

根据您的要求,在以下许可证下授权

贡献

除非您明确说明,否则您根据Apache-2.0许可证定义的工作中故意提交的任何贡献,均应双重许可,如上所述,无任何附加条款或条件。

依赖项

~15-24MB
~351K SLoC