Line 98: |
Line 98: |
| | | |
| The region-specific NVer title for this NCSD presumably must exist on NAND. The NVer title version may also be used to check whether a system update is required before running the app. | | The region-specific NVer title for this NCSD presumably must exist on NAND. The NVer title version may also be used to check whether a system update is required before running the app. |
| + | |
| + | == NCSD ExHeader == |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! OFFSET |
| + | ! SIZE |
| + | ! DESCRIPTION |
| + | |- |
| + | | 0x1000 |
| + | | 8 |
| + | | Title ID of main NCCH |
| + | |- |
| + | | 0x1008 |
| + | | 8 |
| + | | Reserved |
| + | |- |
| + | | 0x1010 |
| + | | 0x30 |
| + | | Initial Data |
| + | |- |
| + | | 0x1040 |
| + | | 0xC0 |
| + | | Reserved |
| + | |- |
| + | | 0x1100 |
| + | | 4 |
| + | | Magic ID, always 'NCCH' |
| + | |- |
| + | | 0x1104 |
| + | | 4 |
| + | | Content size, in media units (1 media unit = 0x200 bytes) |
| + | |- |
| + | | 0x1108 |
| + | | 8 |
| + | | Partition ID |
| + | |- |
| + | | 0x1110 |
| + | | 2 |
| + | | Maker code |
| + | |- |
| + | | 0x1112 |
| + | | 2 |
| + | | Version |
| + | |- |
| + | | 0x1114 |
| + | | 4 |
| + | | Reserved |
| + | |- |
| + | | 0x1118 |
| + | | 8 |
| + | | Program ID |
| + | |- |
| + | | 0x1120 |
| + | | 1 |
| + | | Temp flag |
| + | |- |
| + | | 0x1121 |
| + | | 0x2F |
| + | | Reserved |
| + | |- |
| + | | 0x1150 |
| + | | 0x10 |
| + | | Product code |
| + | |- |
| + | | 0x1160 |
| + | | 0x20 |
| + | | Extended header hash (SHA-256), over the cleartext ExHeader |
| + | |- |
| + | | 0x1180 |
| + | | 4 |
| + | | Extended header size |
| + | |- |
| + | | 0x1184 |
| + | | 4 |
| + | | Reserved |
| + | |- |
| + | | 0x1188 |
| + | | 8 |
| + | | Flags: byte[5]-byte[7] indicate content type ( system update, application, manual, ... ) size of media unit ( 512*2^byte[6] ) and encryption. |
| + | |- |
| + | | 0x1190 |
| + | | 4 |
| + | | Plain region offset, in media units |
| + | |- |
| + | | 0x1194 |
| + | | 4 |
| + | | Plain region size, in media units |
| + | |- |
| + | | 0x1198 |
| + | | 8 |
| + | | Reserved |
| + | |- |
| + | | 0x11A0 |
| + | | 4 |
| + | | ExeFS offset, in media units |
| + | |- |
| + | | 0x11A4 |
| + | | 4 |
| + | | ExeFS size, in media units |
| + | |- |
| + | | 0x11A8 |
| + | | 4 |
| + | | ExeFS hash region size, in media units |
| + | |- |
| + | | 0x11AC |
| + | | 4 |
| + | | Reserved |
| + | |- |
| + | | 0x11B0 |
| + | | 4 |
| + | | RomFS offset, in media units |
| + | |- |
| + | | 0x11B4 |
| + | | 4 |
| + | | RomFS size, in media units |
| + | |- |
| + | | 0x11B8 |
| + | | 4 |
| + | | RomFS hash region size, in media units |
| + | |- |
| + | | 0x11BC |
| + | | 4 |
| + | | Reserved |
| + | |- |
| + | | 0x11C0 |
| + | | 0x20 |
| + | | ExeFS superblock hash, over the cleartext ExeFS |
| + | |- |
| + | | 0x11E0 |
| + | | 0x20 |
| + | | RomFS superblock hash |
| + | |- |
| + | | 0x1200 |
| + | | 0x2E00 |
| + | | Reserved/Unused (Is filled with either 'F's or '0's) |
| + | |} |
| + | From the magic 'NCCH' to the end of the 'RomFS superblock hash' the data is identical to the [[NCCH#NCCH Header|NCCH Header]] of the [[NCCH#CXI|Executable NCCH]] Partition (NCCH 0). |