NCSD: Difference between revisions
mNo edit summary |
No edit summary |
||
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). |