Software Update:MAR: Difference between revisions

Line 68: Line 68:
* No signature is more than 2048 bytes long.
* No signature is more than 2048 bytes long.


<h2> Additional sections </h2>
== Additional sections ==
<p>Additional MAR file sections may defined in the future.  These sections must follow directly after the SIGNATURES section.   
Additional MAR file sections may defined in the future.  These sections must follow directly after the SIGNATURES section.   
</p><p>Each additional block must be in the following format:
 
</p>
Each additional block must be in the following format:
<pre class="_fck_mw_lspace"> 4 bytes: Block separator {0, 0, 0, 0} (To disambiguate from the INDEX block)
 
4 bytes: Block separator {0, 0, 0, 0} (To disambiguate from the INDEX block)
  4 bytes: Block identifier
  4 bytes: Block identifier
  4 bytes: Block size (Z)
  4 bytes: Block size (Z)
  Z bytes: The rest of the block.
  Z bytes: The rest of the block.
</pre>
<p>The block separator is so the MAR reader code knows whether it is reading an additional block or if it is reading the INDEX.IndexSize.
</p><p>The Block identifier is a value used to uniquely identify additional blocks so that they may be optionally added in any order.
</p>


<h3>Product Information Block</h3>
The block separator is so the MAR reader code knows whether it is reading an additional block or if it is reading the INDEX.IndexSize.
<pre class="_fck_mw_lspace"> 4 bytes: Block separator {0, 0, 0, 0} (To disambiguate from the INDEX block)
 
The Block identifier is a value used to uniquely identify additional blocks so that they may be optionally added in any order.
 
=== Product Information Block ===
4 bytes: Block separator {0, 0, 0, 0} (To disambiguate from the INDEX block)
  4 bytes: Block identifier
  4 bytes: Block identifier
  4 bytes: Block size (Z)
  4 bytes: Block size (Z)
  Z bytes: The rest of the block.
  Z bytes: The rest of the block.
</pre>


== Source Code ==
== Source Code ==
Confirmed users
394

edits