Flash Filesystem: Difference between revisions
m -> |
No edit summary |
||
Line 1: | Line 1: | ||
= NAND structure = | = NAND structure = | ||
The Switch's eMMC storage features a large user area, two smaller boot partitions | The Switch's eMMC storage features a large user area, two smaller boot partitions and a replay-protected memory block which is unused (no authentication key is programmed). | ||
All official partition names come from [[SystemInitializer]]. | |||
== Boot Partitions == | == Boot Partitions == | ||
'''Boot Partition 0 (0 of 1)''' | '''Boot Partition 0 (0 of 1)''' | ||
The official name for this partition is "BootPartition1Root" and it has [[Filesystem_services|Bis]] Partition ID == 0. | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
Line 13: | Line 18: | ||
| 0x000000 | | 0x000000 | ||
| 0x4000 | | 0x4000 | ||
| | | Normal Firmware [[BCT|BCT]] from [[Title_list#System_Data_Archives|Title 0100000000000819]] | ||
|- | |- | ||
| 0x004000 | | 0x004000 | ||
| 0x4000 | | 0x4000 | ||
| | | SafeMode Firmware [[BCT|BCT]] from [[Title_list#System_Data_Archives|Title 010000000000081A]] | ||
|- | |- | ||
| 0x008000 | | 0x008000 | ||
| 0x4000 | | 0x4000 | ||
| | | Normal Firmware [[BCT|BCT]] from [[Title_list#System_Data_Archives|Title 0100000000000819]] (backup) | ||
|- | |- | ||
| 0x00C000 | | 0x00C000 | ||
| 0x4000 | | 0x4000 | ||
| | | SafeMode Firmware [[BCT|BCT]] from [[Title_list#System_Data_Archives|Title 010000000000081A]] (backup) | ||
|- | |- | ||
| 0x010000 | | 0x010000 | ||
Line 33: | Line 38: | ||
| 0x100000 | | 0x100000 | ||
| 0x40000 | | 0x40000 | ||
| Title 0100000000000819 | | Normal Firmware [[Package1|package1]] from [[Title_list#System_Data_Archives|Title 0100000000000819]] | ||
|- | |- | ||
| 0x140000 | | 0x140000 | ||
| 0x40000 | | 0x40000 | ||
| Title 0100000000000819 | | Normal Firmware [[Package1|package1]] from [[Title_list#System_Data_Archives|Title 0100000000000819]] (backup) | ||
|- | |- | ||
| 0x180000 | | 0x180000 | ||
Line 49: | Line 54: | ||
| 0x184020 | | 0x184020 | ||
| 0x8? | | 0x8? | ||
| Increments on every boot until hitting a certain number? Bottom 10 bits (0x3FF) are always zero. All zero on 1.0. | | Increments on every boot until hitting a certain number? Bottom 10 bits (0x3FF) are always zero. All zero on 1.0. | ||
|} | |} | ||
'''Boot Partition 1 (1 of 1)''' | '''Boot Partition 1 (1 of 1)''' | ||
The official name for this partition is "BootPartition2Root" and it has [[Filesystem_services|Bis]] Partition ID == 10. | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
Line 61: | Line 69: | ||
| 0x000000 | | 0x000000 | ||
| 0x40000 | | 0x40000 | ||
| Title 010000000000081A | | SafeMode Firmware [[Package1|package1]] from [[Title_list#System_Data_Archives|Title 010000000000081A]] | ||
|- | |- | ||
| 0x040000 | | 0x040000 | ||
| 0x40000 | | 0x40000 | ||
| Title 010000000000081A | | SafeMode Firmware [[Package1|package1]] from [[Title_list#System_Data_Archives|Title 010000000000081A]] (backup) | ||
|} | |} | ||
=== Keyblob === | === Keyblob === | ||
Starting at offset 0x180000 is an array of 0x200-byte entries, for a total of 32 keyblobs. Each one is unique compared to the others and they are all console unique. | Starting at offset 0x180000 is an array of 0x200-byte entries, for a total of 32 keyblobs. Each one is unique compared to the others and they are all console unique. This is officially known as the "EKS" (encryption key source) area. | ||
From each 0x200-byte entry only the first 0xB0 bytes effectively form the keyblob as below. | From each 0x200-byte entry only the first 0xB0 bytes effectively form the keyblob as below. | ||
Line 108: | Line 108: | ||
[[Boot]] also uses this index for repairing corrupt sectors. | [[Boot]] also uses this index for repairing corrupt sectors. | ||
The currently active keyblob is officially known as "SecureInfo". | |||
== User Partitions == | == User Partitions == | ||
Line 124: | Line 126: | ||
| 20 | | 20 | ||
| No | | No | ||
| GPT header, Bis-storage also allows raw access to the entire NAND eMMC sectors starting at sector0. The official name for this | | GPT header, Bis-storage also allows raw access to the entire NAND eMMC sectors starting at sector0. The official name for this partition is "UserDataRoot". | ||
|- | |- | ||
| PRODINFO | | PRODINFO | ||
Line 131: | Line 133: | ||
| 27 | | 27 | ||
| Yes | | Yes | ||
| "CAL0" raw partition containing set:cal data. | | "CAL0" raw partition containing set:cal data. The official name for this partition is "CalibrationBinary". | ||
|- | |- | ||
| PRODINFOF | | PRODINFOF | ||
Line 138: | Line 140: | ||
| 28 | | 28 | ||
| Yes | | Yes | ||
| FAT12 filesystem, additional calibration. | | FAT12 filesystem, additional calibration. The official name for this partition is "CalibrationFile". | ||
|- | |- | ||
| BCPKG2-1-Normal-Main | | BCPKG2-1-Normal-Main | ||
Line 145: | Line 147: | ||
| 21 | | 21 | ||
| No | | No | ||
| | | Raw partition where the first 0x4000 bytes (usually empty) contain the "BootConfig" and the remaining space contains the [[Package2|package2]] image from [[Title_list#System_Data_Archives|Title 0100000000000819]] by default. With the exFAT update installed, the [[Package2|package2]] image is switched to the one from [[Title_list#System_Data_Archives|Title 010000000000081B]]. The official name for this partition is "BootConfigAndPackage2Part1". | ||
|- | |- | ||
| BCPKG2-2-Normal-Sub | | BCPKG2-2-Normal-Sub | ||
Line 152: | Line 154: | ||
| 22 | | 22 | ||
| No | | No | ||
| | | Backup partition for BCPKG2-1-Normal-Main. The official name for this partition is "BootConfigAndPackage2Part2". | ||
|- | |- | ||
| BCPKG2-3-SafeMode-Main | | BCPKG2-3-SafeMode-Main | ||
Line 159: | Line 161: | ||
| 23 | | 23 | ||
| No | | No | ||
| | | Raw partition where the first 0x4000 bytes (usually empty) contain the "BootConfig" and the remaining space contains the [[Package2|package2]] image from [[Title_list#System_Data_Archives|Title 010000000000081A]] by default. Starting with firmware version [[4.0.0|4.0.0]], the [[Package2|package2]] image is switched to the one from [[Title_list#System_Data_Archives|Title 010000000000081C]]. The official name for this partition is "BootConfigAndPackage2Part3". | ||
|- | |- | ||
| BCPKG2-4-SafeMode-Sub | | BCPKG2-4-SafeMode-Sub | ||
Line 166: | Line 168: | ||
| 24 | | 24 | ||
| No | | No | ||
| | | Backup partition for BCPKG2-3-SafeMode-Main. The official name for this partition is "BootConfigAndPackage2Part4". | ||
|- | |- | ||
| BCPKG2-5-Repair-Main | | BCPKG2-5-Repair-Main | ||
Line 173: | Line 175: | ||
| 25 | | 25 | ||
| No | | No | ||
| Installed at the factory, never written afterwards on retail. In one case this is identical to normal [[1.0.0]] | | Installed at the factory, never written afterwards on retail. In one case this is identical to normal [[1.0.0]] [[Package2|package2]], except this has encrypted data at the end padded for 0x1000-byte alignment. The official name for this partition is "BootConfigAndPackage2Part5". | ||
|- | |- | ||
| BCPKG2-6-Repair-Sub | | BCPKG2-6-Repair-Sub | ||
Line 180: | Line 182: | ||
| 26 | | 26 | ||
| No | | No | ||
| | | Backup partition for BCPKG2-5-Repair-Main. The official name for this partition is "BootConfigAndPackage2Part6". | ||
|- | |- | ||
| SAFE | | SAFE | ||
Line 187: | Line 189: | ||
| 29 | | 29 | ||
| Yes | | Yes | ||
| FAT32 filesystem. | | FAT32 filesystem. The official name for this partition is "SafeMode". | ||
|- | |- | ||
| SYSTEM | | SYSTEM | ||
Line 194: | Line 196: | ||
| 31 and 32 | | 31 and 32 | ||
| Yes | | Yes | ||
| FAT32 filesystem. | | FAT32 filesystem. The official name for this partition is "SystemProperEncryption". | ||
|- | |- | ||
| USER | | USER | ||
Line 208: | Line 210: | ||
| | | | ||
| No | | No | ||
| This is the backup GPT header specified by the main GPT header. This is also the last sector readable with Bis-storage paritionID 20. | | This is the backup GPT header specified by the main GPT header. This is also the last sector readable with Bis-storage paritionID 20. | ||
|} | |} | ||