Package2: Difference between revisions

 
(6 intermediate revisions by 2 users not shown)
Line 136: Line 136:
Before being decrypted, the encrypted header's CTR additionally encodes metadata used to validate package2's contents as follows:
Before being decrypted, the encrypted header's CTR additionally encodes metadata used to validate package2's contents as follows:
* Size of the entire package2 with the raw header = ctr_word2 ^ ctr_word3 ^ ctr_word0
* Size of the entire package2 with the raw header = ctr_word2 ^ ctr_word3 ^ ctr_word0
* Metadata version field = ((ctr_word1 ^ (ctr_word1 >> 16)) & 0xFF) ^ (ctr_word1 >> 24)
* Key generation = ((ctr_word1 ^ (ctr_word1 >> 16)) & 0xFF) ^ (ctr_word1 >> 24)


In [4.0.0], the metadata version field must be less or equal to 4.
In [4.0.0], the key generation must be less or equal to 4.


== Section 0 ==
== Section 0 ==
Line 241: Line 241:
| 0x5C
| 0x5C
| 0x24
| 0x24
| Reserved (2 unused [[#Segment_Header|Segment Headers]])
| Reserved
|-
|-
| 0x80
| 0x80
Line 283: Line 283:
|-
|-
! System version
! System version
! Bootloader maximum version
! Package2 minimum version
! Bootloader current version
! Bootloader current version
! Package2 current version
! Package2 minimum valid version
|-
|-
| [[1.0.0]]
| [[1.0.0]]
| 0x2
| 0x3
| 0x1
| 0x1
| 0x4
| 0x4
|-
|-
| [[2.0.0]]
| [[2.0.0]]
| 0x3
| 0x4
| 0x2
| 0x2
| 0x5
| 0x5
|-
|-
| [[3.0.0]]
| [[3.0.0]]
| 0x4
| 0x5
| 0x3
| 0x3
| 0x6
| 0x6
|-
|-
| [[3.0.2]]
| [[3.0.2]]
| 0x5
| 0x6
| 0x4
| 0x4
| 0x7
| 0x7
|-
|-
| [[4.0.0]]
| [[4.0.0]]
| 0x6
| 0x7
| 0x5
| 0x5
| 0x8
| 0x8
|-
|-
| [[5.0.0]]
| [[5.0.0]]
| 0x7
| 0x8
| 0x6
| 0x6
| 0x9
| 0x9
|-
|-
| [[6.0.0]]
| [[6.0.0]]
| 0x8
| 0x9
| 0x7
| 0x7
| 0xA
| 0xA
|-
|-
| [[6.2.0]]
| [[6.2.0]]
| 0x9
| 0xA
| 0x8
| 0x8
| 0xB
| 0xB
|-
|-
| [[7.0.0]]
| [[7.0.0]]
| 0xA
| 0xB
| 0x9
| 0x9
| 0xC
| 0xC
|-
|-
| [[8.1.0]]
| [[8.1.0]]
| 0xB
| 0xC
| 0xA
| 0xA
| 0xD
| 0xD
|-
|-
| [[9.0.0]]
| [[9.0.0]]
| 0xC
| 0xD
| 0xB
| 0xB
| 0xE
| 0xE
|-
|-
| [[9.1.0]]
| [[9.1.0]]
| 0xD
| 0xE
| 0xC
| 0xC
| 0xF
| 0xF
|-
|-
| [[10.0.0]]
| [[10.0.0]]
| 0xD
| 0x10
|-
| [[11.0.0]]
| 0xE
| 0xE
| 0x11
|-
| [[12.0.2]]
| 0xF
| 0x12
|-
| [[12.1.0]]
| 0xF
| 0x13
|-
| [[13.0.0]]
| 0xF
| 0xF
| 0xD
| 0x14
| 0x10
|}
|}