Каждый файл в манифесте содержит следующую информацию:
Размер в байтах | Описание |
---|---|
4 байта | Длина имени файла в байтах |
?? | Имя файла (длина указана в предыдущем поле) |
4 байта | Размер распакованного файла в байтах |
4 байта | Метка времени Unix файла |
4 байта | Размер сжатого файла в байтах |
4 байта | Контрольная сумма CRC32 содержимого распакованного файла |
4 байта | Флаги битовой карты файла |
4 байта | Длина сериализованных метаданных файла (0 в случае отсутствия) |
?? | Сериализованные метаданные файла, хранящиеся в формате serialize() |
Обратите внимание, что начиная с версии API 1.1.1 пустые каталоги хранятся
в виде файлов с завершающим слешем в их имени, как my/directory/
К распознаваемым значениям битовой карты файла относятся:
Значение | Описание |
---|---|
0x000001FF |
Эти биты зарезервированы для определения конкретных прав доступа файла. Права доступа используются для fstat() и могут быть использованы для воссоздания требуемых прав доступа при извлечении. |
0x00001000 |
Если задано, то этот файл сжат при помощи сжатия zlib DEFLATE. |
0x00002000 |
Если задано, то этот файл сжат при помощи bzip2-сжатия. |