#固件 #苹果 #解析器 #文件格式 #文件内容 #ftab

app ftabutil

用于处理 ftab(又称 rkosftab)文件的实用程序

2 个不稳定版本

0.2.0 2022年11月10日
0.1.0 2022年11月5日

#54#文件内容

MIT/Apache

47KB
977

ftabutil

Crates.io

一个简单的实用程序,用于构建和提取 Apple 生产配件固件图像中发现的 'ftab'(又称 'rkosftab')图像。

关于 'ftab' 文件格式的简要介绍

'ftab'(可能代表 File TABle)文件是简单的文件表,其中键是一个4字节标签(例如,'rkos' 代表 RTKit OS)而值是对应文件的內容。一个可选的 APTicket 可以作为文件内容的签名。

有关 'ftab' 格式的更多信息,请参阅 这篇文章

构建 'ftab' 文件

ftabutil 引入了一个概念——清单,它是 'ftab' 文件字段和内容的 TOML 描述。在解压缩 'ftab' 文件时自动生成清单,但也可以手动创建。以下是一个此类清单的示例

# Unknown fields that are ignored by all the available parsers, required.
unk_0 = 83886336
unk_1 = 4294967295
unk_2 = 0
unk_3 = 0
unk_4 = 0
unk_5 = 0
unk_6 = 0
# Path to the ticket to be included in the 'ftab' file, optional.
ticket = "ApImg4Ticker.der"

# List of files to be included as the file's segments.
[[segments]]
# Path to the file to be included as a segment.
path = "rkos.bin"
# The tag to be assigned to the segment. Can either be a 4-byte string
# or an integer less than 2^32 that will be encoded as a big-endian 
# 32-bit integer.
tag = "rkos"
# Unknown field that is always equal to zero.
unk = 0

# ...

清单可以与 pack 子命令一起使用,如下所示

ftabutil pack path/to/manifest.toml optional/path/to/ftab.bin

有关更多信息,请参阅 pack 子命令的文档。

不稳定地访问未知字段

在撰写本文时,格式的一些字段是未知的且未使用。该工具提供了对这些字段的访问,但实际上并未对其文档化。在将来,这些字段的名称很可能会有所变化,因此您不应依赖于清单格式稳定性。

许可证

许可协议为以下之一

任选其一。

贡献

欢迎提交拉取请求。我可能会要求您更接近地匹配编码风格,但通常只需运行 rustfmt 即可。功能请求应作为问题提交。

除非您明确声明,否则您提交的任何贡献,根据 Apache-2.0 许可证定义,应作为上述双重许可,不附加任何额外条款或条件。

依赖项

~2-10MB
~93K SLoC