Расширения имени файла | .xar , .pkg , [1].xip |
---|---|
Тип интернет-СМИ | приложение / x-xar [1] |
Единый идентификатор типа (UTI) | com.apple.xar-архив |
Магическое число | xar! |
Тип формата | формат файла архива |
Расширен с | XML , gzip |
XAR (сокращение от e X Tenible AR chive format ) - файловый архиватор с открытым исходным кодом и формат файлов архиватора . Он был создан в рамках проекта OpenDarwin и используется в macOS X 10.5 и выше для процедур установки программного обеспечения, а также расширений браузера в Safari 5.0 и выше. Xar заменил использование файлов pax, сжатых с помощью gzip . [2]
Одна ветвь разработки в RPM , RPM5 , использует Xar. [3]
Файловая структура [ править ]
Файл состоит из трех разделов: заголовка, оглавления и кучи. Все поля хранятся в обратном порядке. [4]
Заголовок [ править ]
Компенсировать# | Размер (в байтах) | Цель |
---|---|---|
0 | 4 | Подпись файла, используемая для идентификации формата файла как Xar. Это всегда должно быть равно xar! |
4 | 2 | Размер заголовка |
6 | 2 | Версия формата Xar для использования. На данный момент есть только версия 1. |
8 | 8 | Длина сжатых данных TOC. |
16 | 8 | Длина несжатых данных оглавления. |
24 | 4 | Алгоритм контрольной суммы: |
28 год | 0, 4, 36 | иногда байты заполнения или имя алгоритма контрольной суммы |
Оглавление [ править ]
Xar отличается от cpio , tar или ar тем, что в нем хранится оглавление (оглавление) в начале файла, что усложняет добавление в архив, но делает ненужным сканирование архива для извлечения отдельного содержащегося файла. . Содержание хранится в виде Zlib сжатых, UTF-8 кодируются, XML - документ . [6] [4] Каждый файл, который хранится в Xar, независимо сжимается / кодируется. Это дает возможность закодировать файл (ы) с помощью gzip, в то время как другой файл в том же архиве закодирован с использованием другого метода, такого как bzip2.. В некоторых системах член архива также может быть закодирован методом сжатия xz или lzma . [5]
Пример содержания
<? xml version = "1.0" encoding = "UTF-8"?> <xar> <toc> <checkum style = "sha1" > <offset> 0 </offset> <size> 20 </size> </ контрольная сумма > <file id = "1" > <group> staff </group> <gid> 20 </gid> <user> joe </user> <uid> 501 </uid> <mode> 0755 </mode> < тип> каталог </type> <name> com.foobar </name> <file id = "2" > <group> </group> <gid> 20 </gid> <user> </user> <uid> 501 </uid> <mode> 0775 </mode> <type> каталог </type> <name> Contents </name> < идентификатор файла = "3" > <data> <length> 428 </length> <offset> 20 </offset> <size> 1005 </size> <encoding style = "application / x-gzip" /> < стиль архивной контрольной суммы = "SHA1" >a5f6f1461213a904f831d4ef6f214638342842ed </archived-checksum> <извлеченная контрольная сумма style = "SHA1" > 21d21a0c90378248ce0dfb6f345376d1b00d65fc </extracted-checksum> </data> <group> </group> <gid> 20 </gid> <user> </user> <uid> 501 </uid> <mode> 0664 </mode> <type> файл </type> <name> Info.plist </name> </file> <file id = "4" > <group> </group> <gid> 20 </gid> <user> </user> <uid> 501 </ uid> <mode> 0775 </mode> <type> каталог </type> <name> Resources </name> <file id = "5" > <data> <length> 14868 </length> <offset> 448 </offset> <size> 274432 </size> <encoding style = "application / х-GZIP» /> <архивированная-контрольная сумма стиль = "SHA1" > efe5c97921de7ccc5aebc158d158e9d4280d6814 </ архивированная-контрольная сумма> <экстрагированной-контрольная сумма стиль = "SHA1" > 45c8be42d1d9afdb57ddd5e9311453010ec46161 </ экстрагированная-контрольная сумма> </ данные> <group> </group> <gid> 20 </gid> <user> </user> <uid> 501 </uid> <mode> 0664 </mode> <type> file </type> <name> foobar </name> </file> <file id = "6" > <data> <length> 17635 </length> <offset> 15316 </offset> <size> 45056 </size> <encoding style = "application / x-gzip" /> <archived-checkum style = "SHA1" >3c761ffcc81ee6e232e4f4a1c4a81654c26c4e52 </archived-checksum> <извлеченная-контрольная сумма style = "SHA1"> 0ea31f8ef0e5987a1838a64ab5c26ebf3ee4bc37 </extracted-checksum> </data> <group> </group> <gid> 20 </gid> <user> </user> <uid> 501 </uid> <mode> 0664 </mode> <type> file </type> <name> docSet.skidx </name> </file> <file id = "7" > <group> </group> <gid> 20 </gid> <user> </ пользователь> <uid> 501 </uid> <mode>0775 </mode> <type> каталог </type> <name> Документы</name> <file id = "8" > <data> <length> 35790 </length> <offset> 32951 </offset> <size> 209242 </size> <encoding style = "application / x-gzip" /> <архивированная-контрольная сумма стиль = "SHA1" > 5242cd71585c34e722932f324706f8c00e1ae0c5 </ архивированная-контрольная сумма> <экстрагированной-контрольная сумма стиль = "SHA1" > c0e013e53d829511835e2b429abb5198731e9a3e </ экстрагированная-контрольная сумма> </ данные> <группа> </ группа> <gid> 20 </gid> <user> </user> <uid>501 </uid> <mode> 0664 </mode> <type> файл </type> <name> foobar.html </name> </file> </file> </file> </file> </ file > </toc> </xar>
Ссылки [ править ]
- ^ a b "приложение / x-xar" . Проверено 19 марта 2019 .
- ^ Nabble - XAR в Mac OS X архивной 7 февраля 2007 года в Wayback Machine
- ^ Менеджер пакетов RPM 5
- ^ а б https://github.com/mackyle/xar/wiki/xarformat
- ^ а б Браун, Роб; Фуллер, Лэндон; Леймбах, Дэвид; Ван Вехтен, Кевин (04.06.2015). "xar - расширяемая страница руководства ARchiver mojave" . Проверено 26 марта 2019 .
- ^ https://code.google.com/archive/p/xar/wikis/xarformat.wiki
Внешние ссылки [ править ]
- Оригинальный проект Xar (мертв)
- вилка из оригинального проекта (тоже мертвая)
- Домашняя страница Apple xar и архив