Difference between revisions of "Extdata"
(new ext data ids) |
|||
Line 69: | Line 69: | ||
! USA ExtdataID | ! USA ExtdataID | ||
! EUR ExtdataID | ! EUR ExtdataID | ||
− | ! | + | ! Description |
+ | ! Extdata images | ||
|- | |- | ||
| 00000082 | | 00000082 | ||
Line 75: | Line 76: | ||
| 00000098 | | 00000098 | ||
| Homemenu extdata | | Homemenu extdata | ||
+ | | | ||
|- | |- | ||
| ? | | ? | ||
Line 81: | Line 83: | ||
| Nintendo Video Extra Data | | Nintendo Video Extra Data | ||
This is where the video files are stored, and [[Nintendo_Video|includes]] the thumbnail, the description, and possibly some checksum info in each video file stored in the extdata images. There are always 9 files within the subdirectory "00000000" of this folder, even without any videos downloaded. The files are "00000001" - "00000009", and "00000003" - "00000008" have the same filesize of 50.7 MB. It is possible to restore the older videos by overwriting all the files within this directory. Provided of course you have made a backup of the files before hand, by copying all the files within this directory to your computer. As far I'm aware its not possible to mix and match the files in order to get certain videos in one grouping, ie. having all 3 Zelda orchestral recordings in one group of 4 Nintendo videos. | This is where the video files are stored, and [[Nintendo_Video|includes]] the thumbnail, the description, and possibly some checksum info in each video file stored in the extdata images. There are always 9 files within the subdirectory "00000000" of this folder, even without any videos downloaded. The files are "00000001" - "00000009", and "00000003" - "00000008" have the same filesize of 50.7 MB. It is possible to restore the older videos by overwriting all the files within this directory. Provided of course you have made a backup of the files before hand, by copying all the files within this directory to your computer. As far I'm aware its not possible to mix and match the files in order to get certain videos in one grouping, ie. having all 3 Zelda orchestral recordings in one group of 4 Nintendo videos. | ||
+ | | | ||
|- | |- | ||
| 00000207 | | 00000207 | ||
| 00000217 | | 00000217 | ||
| 00000227 | | 00000227 | ||
− | | Mii Maker, | + | | Mii Maker, contains an ExBanner |
+ | | [https://dl.dropbox.com/u/20520664/extdata00000217.zip cleartext] | ||
|- | |- | ||
| 0000020d | | 0000020d | ||
Line 91: | Line 95: | ||
| 0000022d | | 0000022d | ||
| Face Raiders, likely contains an ExBanner | | Face Raiders, likely contains an ExBanner | ||
+ | | | ||
|- | |- | ||
| 00000200 | | 00000200 | ||
Line 96: | Line 101: | ||
| 00000220 | | 00000220 | ||
| [[System_Settings|System Settings]] extdata added with [[2.0.0-2]]. | | [[System_Settings|System Settings]] extdata added with [[2.0.0-2]]. | ||
+ | | | ||
|- | |- | ||
| 00000209 | | 00000209 | ||
Line 101: | Line 107: | ||
| 00000229 | | 00000229 | ||
| eShop | | eShop | ||
+ | | | ||
|- | |- | ||
| 0000030b | | 0000030b | ||
Line 106: | Line 113: | ||
| 0000030c | | 0000030c | ||
| Nintendogs + Cats | | Nintendogs + Cats | ||
+ | | | ||
|- | |- | ||
| ? | | ? | ||
Line 111: | Line 119: | ||
| 00000326 | | 00000326 | ||
| Pokédex 3D | | Pokédex 3D | ||
+ | | | ||
|- | |- | ||
| 00000305 | | 00000305 | ||
Line 116: | Line 125: | ||
| 0000033c | | 0000033c | ||
| Super Street Fighter IV 3D | | Super Street Fighter IV 3D | ||
+ | | | ||
|- | |- | ||
| 00000328 | | 00000328 | ||
Line 121: | Line 131: | ||
| 0000033b | | 0000033b | ||
| Ridge Racer 3D | | Ridge Racer 3D | ||
+ | | | ||
|- | |- | ||
| ? | | ? | ||
Line 126: | Line 137: | ||
| 00000402 | | 00000402 | ||
| Samurai Warriors Chronicles | | Samurai Warriors Chronicles | ||
+ | | | ||
|- | |- | ||
| ? | | ? | ||
Line 131: | Line 143: | ||
| 0000038a | | 0000038a | ||
| Dead or Alive Dimensions | | Dead or Alive Dimensions | ||
+ | | | ||
|- | |- | ||
| 00000481 | | 00000481 | ||
Line 136: | Line 149: | ||
| N/A | | N/A | ||
| Monster Hunter Tri G (Download-Quests) | | Monster Hunter Tri G (Download-Quests) | ||
+ | | | ||
|- | |- | ||
| ? | | ? | ||
| ? | | ? | ||
| 00000a86 | | 00000a86 | ||
− | | Professor Layton and the | + | | Professor Layton and the Miracle Mask |
+ | | | ||
|- | |- | ||
| ? | | ? | ||
Line 146: | Line 161: | ||
| 00000c24 | | 00000c24 | ||
| Denpa men | | Denpa men | ||
+ | | | ||
|} | |} | ||
Revision as of 21:31, 23 December 2012
This page describes the format and encryption of extdata, "extra data" stored on SD card and NAND. At:
- nand/data/<ID>/extdata/<ExtdataID-High>
- sdmc/Nintendo 3DS/<ID0>/<ID1>/extdata/<ExtdataID-High>
(ExtdataID-High is always 00000000 for SD, and always 00048000 for NAND) Some titles can have Quota.dat stored in these directories. The directory-name for these directories is the ExtdataID-Low. Then there's a sub-directory 00000000, which contains the actual extdata. Size and number of files in this dir varies per title. NAND stores the shared extdata and is structured exactly the same way, see Flash Filesystem.
Extdata image 00000001 contains a SAVE partition for the FST, the actual file data is stored in the following extdata images.
Regular apps can only mount SD extdata using the same extdataID which is stored in the CXI exheader. Therefore, regular apps which have the exheader extdataID set to zero can't use extdata. This restriction doesn't apply for shared extdata with extdataID high bitmask 0x48000 stored on NAND. System apps with a certain access right can mount arbitrary extdata. All NAND extdata is shared extdata, while all SD extdata is normal extdata. Thus, normal extdata doesn't exist on NAND, and shared extdata doesn't exist on SD. The extdataID high excluding that bitmask is always zero for shared extdata.
Encryption
These files are encrypted with AES-CTR, the keyslot is initialized by movable.sed. The same keyslot is used for the NAND/SD extdata MAC. The NAND extdata images are stored in cleartext. The WCHAR LowPath "/extdata/<ExtdataIDHigh>/<ExtdataIDLow>/<PathToImage>" text path is hashed with SHA-256, including the WCHAR null-terminator. A separate hash is used for Quota.dat. The base CTR seems to be then generated by XORing the calculated hash: CTRword[i] = Hashword[i] ^ Hashword[4+i].
The base CTR is fixed therefore the CTR never changes after each write. Thus it is possible to obtain some cleartext by XORing one file(like newly created extdata) with a newer file, where the newer file overwrote zeros in the original file with non-zero data.
Filesystem
Most extdata uses the same FS as savegames, except extdata uses DIFF instead of DISA. However some extdata files are raw, without any FS. Quota.dat is an extdata image, however it's unknown what this is used for.
QUOT
- This is contained in the Quota.dat extdata image.
Start | Length | Description |
---|---|---|
0x0 | 4 | Magic ("QUOT") |
0x4 | 4 | Magic Number (0x30000) |
0x8 | 8 | Unknown |
0x10 | 0x38 | Unknown |
Filesystem structure
When extdata is created, these are *always* created regardless of whether the title actually uses them. User extdata and SpotPass extdata use separate mount points at /user and /boss. Therefore one mount can't access the other directory, and also can't access /icon.(The title's SpotPass extdata can be mounted by the title itself, if it uses SpotPass)
- /icon This file contains the extdata icon displayed in data management. This icon can only be written to by titles when creating extdata, titles would have to recreate extdata to change the icon. This file can't be read directly, instead it is read via FS:ReadExtSaveDataIcon.
- /user/ Contains the title's actual extdata files.
- /boss/ Can contain SpotPass content. SpotPass content can only be downloaded to this /boss directory.
- /user/ExBanner This directory can optionally store extended banners. When this is available, this banner is displayed instead of the CXI ExeFS banner. COMMON.bin stores the common exbanner, while <regionlang_code>.bin stores an optional separate region/language specific banner.(regionlang_code can be "JPN_JP", "USA_EN", etc)
SD Extdata
Usually the ExtdataID low is in the format '00<Unique ID>'
JPN ExtdataID | USA ExtdataID | EUR ExtdataID | Description | Extdata images |
---|---|---|---|---|
00000082 | 0000008f | 00000098 | Homemenu extdata | |
? | 000004aa | 000004ab | Nintendo Video Extra Data
This is where the video files are stored, and includes the thumbnail, the description, and possibly some checksum info in each video file stored in the extdata images. There are always 9 files within the subdirectory "00000000" of this folder, even without any videos downloaded. The files are "00000001" - "00000009", and "00000003" - "00000008" have the same filesize of 50.7 MB. It is possible to restore the older videos by overwriting all the files within this directory. Provided of course you have made a backup of the files before hand, by copying all the files within this directory to your computer. As far I'm aware its not possible to mix and match the files in order to get certain videos in one grouping, ie. having all 3 Zelda orchestral recordings in one group of 4 Nintendo videos. |
|
00000207 | 00000217 | 00000227 | Mii Maker, contains an ExBanner | cleartext |
0000020d | 0000021d | 0000022d | Face Raiders, likely contains an ExBanner | |
00000200 | 00000210 | 00000220 | System Settings extdata added with 2.0.0-2. | |
00000209 | 00000219 | 00000229 | eShop | |
0000030b | 0000030d | 0000030c | Nintendogs + Cats | |
? | 00000326 | 00000326 | Pokédex 3D | |
00000305 | 0000032d | 0000033c | Super Street Fighter IV 3D | |
00000328 | 00000358 | 0000033b | Ridge Racer 3D | |
? | 0000034d | 00000402 | Samurai Warriors Chronicles | |
? | 0000034f | 0000038a | Dead or Alive Dimensions | |
00000481 | N/A | N/A | Monster Hunter Tri G (Download-Quests) | |
? | ? | 00000a86 | Professor Layton and the Miracle Mask | |
? | ? | 00000c24 | Denpa men |
ExtdataID | Description |
---|---|
0xf0000001 | NAND JPEG/MPO files from the camera application are stored here |
0xf0000002 | NAND M4A files from the sound application are stored here |
0xf0000009 | Contains Miis and some data relating (including cached ICN data) to Play/Usage Records. |
0xf000000b | Contains idb.dat, idbt.dat, and gamecoin.dat |
0xf000000c | Contains bashotorya.dat |