Title metadata: Difference between revisions
note discrepancy in endianness |
|||
(9 intermediate revisions by 4 users not shown) | |||
Line 2: | Line 2: | ||
'''Title metadata''' is a format used to store information about a title (installed title, DLC, etc.) and all its installed contents, including which contents they consist of and their SHA256 hashes. | '''Title metadata''' is a format used to store information about a title (installed title, DLC, etc.) and all its installed contents, including which contents they consist of and their SHA256 hashes. | ||
[ | [https://bitbucket.org/trap15/3dshax Code is available] by trap15 to parse the available information from the 3DS format of TMDs. | ||
== Structure == | == Structure == | ||
All the data in the file represented in Big Endian. | All the data in the file represented in Big Endian, unless otherwise noted. | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 21: | Line 21: | ||
| 0x9C4 + Y||0x30*ContentCount||Content Chunk Records. | | 0x9C4 + Y||0x30*ContentCount||Content Chunk Records. | ||
|} | |} | ||
Y denotes the total size of the "Signature Data" section and depends on the signature type. | |||
=== Signature Data === | === Signature Data === | ||
The signature is of the header of the TMD. | |||
{| class="wikitable" | {| class="wikitable" | ||
| align="center" style="background:#f0f0f0;"|'''Offset''' | | align="center" style="background:#f0f0f0;"|'''Offset''' | ||
Line 37: | Line 39: | ||
==== Signature Type ==== | ==== Signature Type ==== | ||
{ | {{Signature Types}} | ||
The hash for the signature, is calculated over the header of the TMD | |||
=== Header === | === Header === | ||
Line 89: | Line 67: | ||
| 0x58||0x2||Group ID | | 0x58||0x2||Group ID | ||
|- | |- | ||
| 0x5A|| | | 0x5A||0x4||Save Data Size in Little Endian (Bytes) (Also SRL Public Save Data Size) | ||
|- | |||
| 0x5E||0x4||SRL Private Save Data Size in Little Endian (Bytes) | |||
|- | |||
| 0x62||0x4||Reserved | |||
|- | |||
| 0x66||0x1||SRL Flag | |||
|- | |||
| 0x67||0x31||Reserved | |||
|- | |- | ||
| 0x98||0x4||Access Rights | | 0x98||0x4||Access Rights | ||
Line 123: | Line 109: | ||
|- | |- | ||
| 0x04 | | 0x04 | ||
| | | 0x20 | ||
| SHA-256 hash of the next k content records that have not been hashed yet | | SHA-256 hash of the next k content records that have not been hashed yet | ||
|} | |} |