Each file in the manifest contains the following information:
Size in bytes | Description |
---|---|
4 bytes | Filename length in bytes |
?? | Filename (length specified in previous) |
4 bytes | Un-compressed file size in bytes |
4 bytes | Unix timestamp of file |
4 bytes | Compressed file size in bytes |
4 bytes | CRC32 checksum of un-compressed file contents |
4 bytes | Bit-mapped File-specific flags |
4 bytes | Serialized File Meta-data length (0 for none) |
?? | Serialized File Meta-data, stored in serialize() format |
Note that as of API version 1.1.1, empty directories are stored as filenames
with a trailing slash like my/directory/
The File-specific bitmap values recognized are:
Value | Description |
---|---|
0x000001FF |
These bits are reserved for defining specific file permissions of a file. Permissions are used for fstat() and can be used to recreate desired permissions upon extraction. |
0x00001000 |
If set, this file is compressed with zlib DEFLATE compression |
0x00002000 |
If set, this file is compressed with bzip2 compression |