Line 236: |
Line 236: |
| * The hash in the DISA hashes the Active Table (starting from tables's offset to tables's offset + table length) with SHA256. | | * The hash in the DISA hashes the Active Table (starting from tables's offset to tables's offset + table length) with SHA256. |
| | | |
− | * The partitions offsets points to a 0x1000 long block which isn't understood yet. The actual information starts after that block. | + | * The partition offsets are absolute offsets in the image. |
| + | |
| + | * The SAVE partition offset is usually 0x1000. The SAVE/DATA partitions begins with the DPFS partitions, the relative offset for the IVFC partition data is specified by the DPFS header. |
| | | |
| The DIFIs table @ 0x200 (into the image) is written twice, (Meaning, if there's 4 DIFI blobs then the table is 2 DIFIs long). | | The DIFIs table @ 0x200 (into the image) is written twice, (Meaning, if there's 4 DIFI blobs then the table is 2 DIFIs long). |
| | | |
− | The second table is for backup. The active table is mentioned at 0x13C into the image (1=First table, other=Second Table) | + | The second table is for backup. |
| | | |
| '''DIFF''' | | '''DIFF''' |
Line 333: |
Line 335: |
| | 0x28 | | | 0x28 |
| | 8 | | | 8 |
− | | Offset to the hash in DIFI (Always 0x010C) | + | | Offset to the hash in DIFI (Always 0x10C) |
| |- | | |- |
| | 0x30 | | | 0x30 |
Line 443: |
Line 445: |
| | 0x08 | | | 0x08 |
| | 8 | | | 8 |
− | | Offset To First table | + | | Offset to first table |
| |- | | |- |
| | 0x10 | | | 0x10 |
Line 455: |
Line 457: |
| | 0x20 | | | 0x20 |
| | 8 | | | 8 |
− | | Offset To Second table | + | | Offset to second table |
| |- | | |- |
| | 0x28 | | | 0x28 |
Line 467: |
Line 469: |
| | 0x38 | | | 0x38 |
| | 8 | | | 8 |
− | | Offset to Data | + | | IVFC partition offset |
| |- | | |- |
| | 0x40 | | | 0x40 |
| | 8 | | | 8 |
− | | Data Length | + | | Data length |
| |- | | |- |
| | 0x48 | | | 0x48 |
Line 481: |
Line 483: |
| * Every block this table point to is written twice (concatenated). You can see that the offset to the next block is twice the length (except the data which always begin after 0x1000). | | * Every block this table point to is written twice (concatenated). You can see that the offset to the next block is twice the length (except the data which always begin after 0x1000). |
| | | |
− | The first partition's data starts at 0x2000. First comes the hashtable (usually start @ 0x40 into the partition) and then the filesystem. | + | * The offsets contained in the DPFS and IVFC are relative to the partition offset in the DISA/DIFF. The offsets from the IVFC are additionally added with the IVFC partition offset from the DPFS. |
| + | |
| + | The first partition's data usually starts at 0x2000. First comes the hashtable (usually start @ 0x40 into the partition) and then the filesystem. |
| | | |
| The hashtable entries' size is 2^x where x is the 'Filesystem block size' from the IVFC block. | | The hashtable entries' size is 2^x where x is the 'Filesystem block size' from the IVFC block. |