Flash Filesystem: Difference between revisions
m left padding is hard |
Note on encryption |
||
Line 116: | Line 116: | ||
! Size | ! Size | ||
! [[Filesystem_services|Bis]] Partition ID | ! [[Filesystem_services|Bis]] Partition ID | ||
! Encrypted | |||
! Description | ! Description | ||
|- | |- | ||
Line 122: | Line 123: | ||
| | | | ||
| 20 | | 20 | ||
| No | |||
| GPT header, Bis-storage also allows raw access to the entire NAND eMMC sectors starting at sector0. The official name for this partitionID from [[SystemInitializer]] is "nn::fs::BisPartitionId::UserDataRoot". | | GPT header, Bis-storage also allows raw access to the entire NAND eMMC sectors starting at sector0. The official name for this partitionID from [[SystemInitializer]] is "nn::fs::BisPartitionId::UserDataRoot". | ||
|- | |- | ||
Line 128: | Line 130: | ||
| 0x003FBC00 | | 0x003FBC00 | ||
| 27 | | 27 | ||
| Yes | |||
| "CAL0" raw partition containing set:cal data. | | "CAL0" raw partition containing set:cal data. | ||
|- | |- | ||
Line 134: | Line 137: | ||
| 0x00400000 | | 0x00400000 | ||
| 28 | | 28 | ||
| Yes | |||
| FAT12 filesystem, additional calibration. | | FAT12 filesystem, additional calibration. | ||
|- | |- | ||
Line 140: | Line 144: | ||
| 0x00800000 | | 0x00800000 | ||
| 21 | | 21 | ||
| No | |||
| For all these packages, data starts at offset 0x4000 and is not console-unique. This is installed from "package2" in firmware package A (0100000000000819) by default. With the exFAT update installed, this is switched to firmware package C (010000000000081B). The data stored here matches the raw /nx/package2 file stored in the 81[9AB] data archives -- there is no additional encryption. "BCPKG2" is "BootConfigAndPackage2": for example, from [[Factory_Setup|SystemInitializer]]: "BootConfigAndPackage2Part1". | | For all these packages, data starts at offset 0x4000 and is not console-unique. This is installed from "package2" in firmware package A (0100000000000819) by default. With the exFAT update installed, this is switched to firmware package C (010000000000081B). The data stored here matches the raw /nx/package2 file stored in the 81[9AB] data archives -- there is no additional encryption. "BCPKG2" is "BootConfigAndPackage2": for example, from [[Factory_Setup|SystemInitializer]]: "BootConfigAndPackage2Part1". | ||
|- | |- | ||
Line 146: | Line 151: | ||
| 0x00800000 | | 0x00800000 | ||
| 22 | | 22 | ||
| No | |||
| Identical to BCPKG2-1-Normal-Main, probably used as a backup partition. | | Identical to BCPKG2-1-Normal-Main, probably used as a backup partition. | ||
|- | |- | ||
Line 152: | Line 158: | ||
| 0x00800000 | | 0x00800000 | ||
| 23 | | 23 | ||
| No | |||
| This is installed from "package2" in firmware package B (010000000000081A). | | This is installed from "package2" in firmware package B (010000000000081A). | ||
|- | |- | ||
Line 158: | Line 165: | ||
| 0x00800000 | | 0x00800000 | ||
| 24 | | 24 | ||
| No | |||
| Identical to BCPKG2-3-SafeMode-Main. | | Identical to BCPKG2-3-SafeMode-Main. | ||
|- | |- | ||
Line 164: | Line 172: | ||
| 0x00800000 | | 0x00800000 | ||
| 25 | | 25 | ||
| No | |||
| Installed at the factory, never written afterwards on retail. In one case this is identical to normal [[1.0.0]] pkg2, except this has encrypted data at the end padded for 0x1000-byte alignment. | | Installed at the factory, never written afterwards on retail. In one case this is identical to normal [[1.0.0]] pkg2, except this has encrypted data at the end padded for 0x1000-byte alignment. | ||
|- | |- | ||
Line 170: | Line 179: | ||
| 0x00800000 | | 0x00800000 | ||
| 26 | | 26 | ||
| No | |||
| Identical to BCPKG2-5-Repair-Main. | | Identical to BCPKG2-5-Repair-Main. | ||
|- | |- | ||
Line 176: | Line 186: | ||
| 0x04000000 | | 0x04000000 | ||
| 29 | | 29 | ||
| Yes | |||
| FAT32 filesystem. | | FAT32 filesystem. | ||
|- | |- | ||
Line 181: | Line 192: | ||
| 0x07800000 | | 0x07800000 | ||
| 0xA0000000 | | 0xA0000000 | ||
| 31 | | 31 and 32 | ||
| Yes | |||
| FAT32 filesystem. | | FAT32 filesystem. | ||
|- | |- | ||
Line 188: | Line 200: | ||
| 0x680000000 | | 0x680000000 | ||
| 30 | | 30 | ||
| Yes | |||
| FAT32 filesystem. | | FAT32 filesystem. | ||
|- | |- | ||
Line 194: | Line 207: | ||
| 0x200 | | 0x200 | ||
| | | | ||
| 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. | ||
|} | |} | ||
Line 202: | Line 216: | ||
The filenames for saveimages is just "<lower-case hex u64 saveID>". SYSTEM-partition saveIDs are specified by [[Filesystem_services|FS]] commands, while USER-partition saveIDs are determined by FS-module internally. The high u32 of the saveID is normally either 0x00000000 or 0x80000000. | The filenames for saveimages is just "<lower-case hex u64 saveID>". SYSTEM-partition saveIDs are specified by [[Filesystem_services|FS]] commands, while USER-partition saveIDs are determined by FS-module internally. The high u32 of the saveID is normally either 0x00000000 or 0x80000000. | ||
Encrypted partitions use AES-XTS using the same non-standard (endian-swapped) tweak as other Nintendo AES-XTS code, initial_sector == 0, and sector size 0x4000. All encrypted partitions use console unique keydata. | |||
=== PRODINFOF === | === PRODINFOF === |