Line 47:
Line 47:
Following the header is the certificate chain, then the ticket, then the TMD, and finally the single bootable content{{Ref|https://github.com/fail0verflow/mini/blob/befb64ce1cd493946c9a9a0a412262a998f478d9/boot2.c#L35}}.
Following the header is the certificate chain, then the ticket, then the TMD, and finally the single bootable content{{Ref|https://github.com/fail0verflow/mini/blob/befb64ce1cd493946c9a9a0a412262a998f478d9/boot2.c#L35}}.
−
== Version history ==
+
== Versions ==
+
boot2 stores its version in 3 places: the "title version" in the [[TMD]], the "system version," and in [[Hardware/SEEPROM|SEEPROM]]. The title version is used by [[IOS]] to prevent downgrading on install, as well as the [[System Menu]] when deciding whether it is appropriate to try to update boot2.
+
+
The system version is normally a title ID; for boot2, the first 7 bytes are 0, while the last one is the version, which is supposed to match the SEEPROM version. This is to prevent downgrading during boot, as [[boot1]] will hang if the version in SEEPROM is higher than the last byte of the system version. The other bytes of the system version do not seem to be checked.
+
+
=== Version history ===
{| class="wikitable"
{| class="wikitable"
|-
|-