272
edits
Changes
Mozilla ARchive
= Mozilla ARchive =
This document describes the Mozilla ARchive (MAR) format used by the update system to deliver update packages. It is basically a series of files with an index tacked on to the end.
== Details ==
The file structure in a nut-shell is a header (HEADER), followed by a list of variable length files, and finally ending with an index of the files (INDEX). The index is a list of variable length entries (INDEX_ENTRY).
HEADER
4 bytes : "MAR1"
4 bytes : offset-to-index (big endian)
INDEX
4 bytes : size-of-index (big endian)
INDEX_ENTRY
4 bytes : offset (big endian)
4 bytes : length (big endian)
N bytes : name (byte array)
1 byte : null terminator
== Why not use ZIP or some other standard file format? ==
There is no single overriding reason for this decision.
This document describes the Mozilla ARchive (MAR) format used by the update system to deliver update packages. It is basically a series of files with an index tacked on to the end.
== Details ==
The file structure in a nut-shell is a header (HEADER), followed by a list of variable length files, and finally ending with an index of the files (INDEX). The index is a list of variable length entries (INDEX_ENTRY).
HEADER
4 bytes : "MAR1"
4 bytes : offset-to-index (big endian)
INDEX
4 bytes : size-of-index (big endian)
INDEX_ENTRY
4 bytes : offset (big endian)
4 bytes : length (big endian)
N bytes : name (byte array)
1 byte : null terminator
== Why not use ZIP or some other standard file format? ==
There is no single overriding reason for this decision.