自定义数据段
自定义数据段是载荷末尾可选的一块二进制数据,通过配置字节 0 的 bit 4(HasCustom)标记其存在。
位置
不论目录树还是扁平模式,自定义数据段始终在载荷的末尾:
[ 载荷主体 ] [ 8-byte 长度 (uint64 LE) ] [ 自定义数据 ]- 长度字段为 8 字节小端序 uint64
- 后续为对应字节数的任意二进制数据
读取方式
扁平模式
解析完所有文件条目和 manifest 后,当前位置即为自定义数据段起始:
pos → [ 长度 (8 bytes) ] [ 数据 (length bytes) ]目录树模式
在解析完 JSON 元数据后,无法直接知道文件块的结束位置。自定义数据段通过查载荷末尾获取:
- 读取载荷末尾 8 字节作为长度
- 从末尾向前偏移(8 + length)得到数据起始
- 真正的文件块结束位置 = 数据起始
用途
自定义数据段没有内部格式规定,由应用层自由定义。常见用途:
- 可执行指令(启动入口等)
- 许可证全文
- 图标等二进制资源
- 元描述 JSON(如 README 示例中的结构)
示例 JSON 格式的 custom data:
json
{
"run": "./main.exe",
"license": "MIT",
"license_text": "...",
"custom_icon": "base64..."
}