XCI: Difference between revisions
No edit summary |
No edit summary |
||
(8 intermediate revisions by the same user not shown) | |||
Line 17: | Line 17: | ||
|- | |- | ||
| 0x1200 | | 0x1200 | ||
| | | 0x200 | ||
| | | [11.0.0+] [[#NewCardHeader]] | ||
|- | |||
| 0x1400 | |||
| 0x400 | |||
| [11.0.0+] [[#NewCardHeaderCertArea]] | |||
|- | |||
| 0x1800 | |||
| 0x100 | |||
| [11.0.0+] NewCardHeaderCertAreaModulus | |||
|- | |||
| 0x1900 | |||
| 0x6700 | |||
| Reserved | |||
|- | |- | ||
| 0x8000 | | 0x8000 | ||
Line 76: | Line 88: | ||
| 0x8 | | 0x8 | ||
| 0x8 | | 0x8 | ||
| | | Reserved | ||
|- | |- | ||
| 0x10 | | 0x10 | ||
Line 130: | Line 142: | ||
| 0x100 | | 0x100 | ||
| 0x4 | | 0x4 | ||
| | | Magic ("HEAD") | ||
|- | |- | ||
| 0x104 | | 0x104 | ||
Line 150: | Line 162: | ||
| 0x10E | | 0x10E | ||
| 0x1 | | 0x1 | ||
| | | [[#Version]] | ||
|- | |- | ||
| 0x10F | | 0x10F | ||
Line 190: | Line 202: | ||
| 0x180 | | 0x180 | ||
| 0x4 | | 0x4 | ||
| SelSec | | [[#SelSec]] | ||
|- | |- | ||
| 0x184 | | 0x184 | ||
Line 206: | Line 218: | ||
| 0x190 | | 0x190 | ||
| 0x70 | | 0x70 | ||
| [[# | | [[#CardHeaderEncryptedData]] | ||
|} | |||
=== RomSize === | |||
[[Filesystem_services|FS]] retrieves this data as [[Filesystem_services#GameCardSize|GameCardSize]]. | |||
{| class="wikitable" border="1" | |||
|- | |||
! Value | |||
! Description | |||
|- | |||
| 0xFA | |||
| 1GB | |||
|- | |||
| 0xF8 | |||
| 2GB | |||
|- | |||
| 0xF0 | |||
| 4GB | |||
|- | |||
| 0xE0 | |||
| 8GB | |||
|- | |||
| 0xE1 | |||
| 16GB | |||
|- | |||
| 0xE2 | |||
| 32GB | |||
|} | |||
=== Version === | |||
{| class="wikitable" border="1" | |||
|- | |||
! Value | |||
! Description | |||
|- | |||
| 0 | |||
| Default | |||
|- | |||
| 1 | |||
| | |||
|- | |||
| 2 | |||
| | |||
|- | |||
| 3 | |||
| [20.0.0+] T2Supported | |||
|} | |} | ||
=== | === Flags === | ||
[[Filesystem_services|FS]] retrieves this data as [[Filesystem_services#GameCardAttribute|GameCardAttribute]]. | |||
{| class="wikitable" border="1" | |||
|- | |||
! Bits | |||
! Description | |||
|- | |||
| 0 | |||
| AutoBoot | |||
|- | |||
| 1 | |||
| HistoryErase | |||
|- | |||
| 2 | |||
| [4.0.0+] RepairTool | |||
|- | |||
| 3 | |||
| [9.0.0+] DifferentRegionCupToTerraDevice | |||
|- | |||
| 4 | |||
| [9.0.0+] DifferentRegionCupToGlobalDevice | |||
|- | |||
| 7 | |||
| [11.0.0+] CardHeaderSignKey | |||
|} | |||
=== SelSec === | |||
{| class="wikitable" border="1" | |||
|- | |||
! Value | |||
! Description | |||
|- | |||
| 1 | |||
| T1 | |||
|- | |||
| 2 | |||
| T2 | |||
|} | |||
=== CardHeaderEncryptedData === | |||
This region is stored encrypted (AES-128-CBC). | This region is stored encrypted (AES-128-CBC). | ||
Line 220: | Line 318: | ||
| 0x0 | | 0x0 | ||
| 0x8 | | 0x8 | ||
| FwVersion | | [[#FwVersion]] | ||
|- | |- | ||
| 0x8 | | 0x8 | ||
| 0x4 | | 0x4 | ||
| AccCtrl1 | | [[#AccCtrl1]] | ||
|- | |- | ||
| 0xC | | 0xC | ||
Line 252: | Line 350: | ||
| 0x24 | | 0x24 | ||
| 0x1 | | 0x1 | ||
| [9.0.0+] CompatibilityType | | [9.0.0+] [[#CompatibilityType]] | ||
|- | |- | ||
| 0x25 | | 0x25 | ||
| 0x3 | | 0x3 | ||
| | | Reserved | ||
|- | |- | ||
| 0x28 | | 0x28 | ||
Line 268: | Line 366: | ||
| 0x38 | | 0x38 | ||
| 0x38 | | 0x38 | ||
| | | Reserved | ||
|} | |} | ||
=== | ==== FwVersion ==== | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
Line 279: | Line 375: | ||
! Description | ! Description | ||
|- | |- | ||
| | | 0 | ||
| | | Development | ||
|- | |- | ||
| | | 1 | ||
| | | Retail | ||
|- | |- | ||
| | | 2 | ||
| | | [4.0.0+] Retail | ||
|- | |- | ||
| | | 3 | ||
| | | [11.0.0+] Development | ||
|- | |- | ||
| | | 4 | ||
| | | [11.0.0+] Retail | ||
|- | |- | ||
| | | 5 | ||
| | | [12.0.0+] Retail | ||
|} | |} | ||
=== | ==== AccCtrl1 ==== | ||
{| class="wikitable" border="1" | |||
|- | |||
! Value | |||
! Description | |||
|- | |||
| 0x00A10011 | |||
| 25MHz | |||
|- | |||
| 0x00A10010 | |||
| 50MHz | |||
|} | |||
==== CompatibilityType ==== | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
! | ! Value | ||
! Description | ! Description | ||
|- | |- | ||
| 0 | | 0 | ||
| | | Normal | ||
|- | |- | ||
| 1 | | 1 | ||
| | | Terra | ||
|} | |||
== NewCardHeader == | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x100 | |||
| RSA-2048 PKCS #1 signature over the header (data from 0x100 to 0x200) | |||
|- | |||
| 0x100 | |||
| 0x4 | |||
| Magic ("HEAD") | |||
|- | |||
| 0x104 | |||
| 0x4 | |||
| RomAreaStartPageAddress (in Gamecard page units, which are 0x200 bytes) | |||
|- | |||
| 0x108 | |||
| 0x4 | |||
| BackupAreaStartPageAddress (always 0xFFFFFFFF) | |||
|- | |||
| 0x10C | |||
| 0x1 | |||
| TitleKeyDecIndex (high nibble) and KekIndex (low nibble) | |||
|- | |||
| 0x10D | |||
| 0x1 | |||
| [[#RomSize]] | |||
|- | |||
| 0x10E | |||
| 0x1 | |||
| [[#Version]] | |||
|- | |||
| 0x10F | |||
| 0x1 | |||
| [[#Flags]] | |||
|- | |||
| 0x110 | |||
| 0x8 | |||
| PackageId (used for challenge–response authentication) | |||
|- | |||
| 0x118 | |||
| 0x4 | |||
| ValidDataEndAddress (in Gamecard page units, which are 0x200 bytes) | |||
|- | |||
| 0x11C | |||
| 0x1 | |||
| [20.0.0+] CardHeaderSignKeyIndex ([1.0.0-19.0.1] Reserved) | |||
|- | |||
| 0x11D | |||
| 0x1 | |||
| [18.0.0+] [[#Flags2]] ([1.0.0-17.0.1] Reserved) | |||
|- | |||
| 0x11E | |||
| 0x2 | |||
| [19.0.0+] [[#NumberOfApplicationIds]] ([1.0.0-18.1.0] Reserved) | |||
|- | |||
| 0x120 | |||
| 0x10 | |||
| Iv (reversed) | |||
|- | |||
| 0x130 | |||
| 0x8 | |||
| PartitionFsHeaderAddress | |||
|- | |||
| 0x138 | |||
| 0x8 | |||
| PartitionFsHeaderSize | |||
|- | |||
| 0x140 | |||
| 0x20 | |||
| PartitionFsHeaderHash (SHA-256 hash of the [[#PartitionFsHeader]]) | |||
|- | |||
| 0x160 | |||
| 0x20 | |||
| InitialDataHash (SHA-256 hash of the [[#InitialData]]) | |||
|- | |||
| 0x180 | |||
| 0x4 | |||
| [[#SelSec]] | |||
|- | |||
| 0x184 | |||
| 0x4 | |||
| SelT1Key (always 2) | |||
|- | |||
| 0x188 | |||
| 0x4 | |||
| SelKey (always 0) | |||
|- | |||
| 0x18C | |||
| 0x4 | |||
| LimArea (in Gamecard page units, which are 0x200 bytes) | |||
|- | |||
| 0x190 | |||
| 0x70 | |||
| [[#NewCardHeaderEncryptedData]] | |||
|} | |||
=== Flags2 === | |||
[[Filesystem_services|FS]] retrieves this data as [[Filesystem_services#GameCardAttribute2|GameCardAttribute2]]. | |||
=== NumberOfApplicationIds === | |||
This is the number of entries in the ApplicationIdList located right before ValidDataEndAddress. | |||
=== NewCardHeaderEncryptedData === | |||
This region is stored encrypted (AES-128-CBC). | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x8 | |||
| [[#FwVersion]] | |||
|- | |||
| 0x8 | |||
| 0x4 | |||
| [[#AccCtrl1]] | |||
|- | |||
| 0xC | |||
| 0x4 | |||
| Wait1TimeRead (always 0x1388) | |||
|- | |||
| 0x10 | |||
| 0x4 | |||
| Wait2TimeRead (always 0) | |||
|- | |||
| 0x14 | |||
| 0x4 | |||
| Wait1TimeWrite (always 0) | |||
|- | |||
| 0x18 | |||
| 0x4 | |||
| Wait2TimeWrite (always 0) | |||
|- | |||
| 0x1C | |||
| 0x4 | |||
| FwMode (the current SdkAddonVersion) | |||
|- | |||
| 0x20 | |||
| 0x4 | |||
| UppVersion | |||
|- | |||
| 0x24 | |||
| 0x1 | |||
| [[#CompatibilityType]] | |||
|- | |||
| 0x25 | |||
| 0x3 | |||
| Reserved | |||
|- | |||
| 0x28 | |||
| 0x8 | |||
| UppHash (SHA-256 hash of the [[#UpdatePartition]]) | |||
|- | |||
| 0x30 | |||
| 0x8 | |||
| UppId (always 0x0100000000000816) | |||
|- | |||
| 0x38 | |||
| 0x8 | |||
| Reserved | |||
|- | |||
| 0x40 | |||
| 0x20 | |||
| RelatedCardHeaderHash (SHA-256 hash of [[#CardHeader]]) | |||
|- | |||
| 0x60 | |||
| 0x10 | |||
| Reserved | |||
|} | |||
== NewCardHeaderCertArea == | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x100 | |||
| RSA-2048 PKCS #1 signature over the data from 0x100 to 0x300 | |||
|- | |||
| 0x100 | |||
| 0x4 | |||
| Magic | |||
|- | |||
| 0x104 | |||
| 0x4 | |||
| Version | |||
|- | |||
| 0x108 | |||
| 0x8 | |||
| | |||
|- | |||
| 0x110 | |||
| 0x1 | |||
| CardHeaderSignKeyIndex | |||
|- | |||
| 0x111 | |||
| 0x1F | |||
| Reserved | |||
|- | |- | ||
| | | 0x130 | ||
| | | 0x100 | ||
| Modulus | |||
|- | |- | ||
| | | 0x230 | ||
| | | 0x3 | ||
| PublicExponent | |||
|- | |- | ||
| | | 0x233 | ||
| | | 0x1CD | ||
| Reserved | |||
|} | |} | ||
Line 339: | Line 657: | ||
| 0x100 | | 0x100 | ||
| 0x4 | | 0x4 | ||
| | | Magic ("CERT") | ||
|- | |- | ||
| 0x104 | | 0x104 | ||
Line 355: | Line 673: | ||
| 0x110 | | 0x110 | ||
| 0x10 | | 0x10 | ||
| | | T1CardDeviceId | ||
|- | |- | ||
| 0x120 | | 0x120 | ||
Line 362: | Line 680: | ||
|- | |- | ||
| 0x130 | | 0x130 | ||
| | | 0x10 | ||
| | | HwKey (encrypted) | ||
|- | |||
| 0x140 | |||
| 0xC0 | |||
| Reserved (encrypted) | |||
|- | |- | ||
| 0x200 | | 0x200 | ||
Line 456: | Line 778: | ||
| 0x0 | | 0x0 | ||
| 0x4 | | 0x4 | ||
| | | Magic ("HFS0") | ||
|- | |- | ||
| 0x4 | | 0x4 |