Line 20: |
Line 20: |
| /title.db | | /title.db |
| | | |
− | "'''title.db'''" - The "title.db" file (among other things perhaps), archives data about titles installed on the SD Card which includes their [[Serials#Product Code|Product Code]], NCCH types(to determine if a 'Manual' option should be available for the title), Title ID, Title size and Title Version(the title version determines the name of the [[SD Filesystem#title|.cmd]] file which contains data from the title TMD used for anti-tampering purposes). This file '''does not''' store a hash of the [[SD Filesystem#title|.cmd]] file for each given title, but the title.db expects to find a [[SD Filesystem#title|.cmd]] with a name specific to the title version, and the nature of the [[SD Filesystem#title|.cmd]] file makes re-naming/editing or using under a different title ID(by the end user) detectable (finding/creating an additional .cmd file for a specific title i.e. having two different sets of app data from the same version/title ID is not feasible for retail units). This data is taken from the title's [[SD Filesystem#title|TMD]] and [[NCCH#CXI|executable NCCH]] during install, this is also party why the encrypted TMD found in each title directory is redundant, as the important information is moved to the ".db" and ".cmd" files during title installation. Since this file controls what SD Card titles are accessible to the 3DS, it is possible to move between different versions of an SD Card title if you have the title.db and title data for each version of that specific title. | + | "'''title.db'''" - The "title.db" file (among other things perhaps), archives data about titles installed on the SD Card which includes their [[Serials#Product Code|Product Code]], whether the title uses an [[NCCH#CFA|electronic manual]], Title ID, Title size and Title Version(the title version determines the name of the [[SD Filesystem#title|.cmd]] file which contains data from the title TMD used for anti-tampering purposes). This file '''does not''' store a hash of the [[SD Filesystem#title|.cmd]] file for each given title, but the title.db expects to find a [[SD Filesystem#title|.cmd]] with a name specific to the title version, and the nature of the [[SD Filesystem#title|.cmd]] file makes re-naming/editing or using under a different title ID(by the end user) detectable (finding/creating an additional .cmd file for a specific title i.e. having two different sets of app data from the same version/title ID is not feasible for retail units). This data is taken from the title's [[SD Filesystem#title|TMD]] and [[NCCH#CXI|executable NCCH]] during install, this is also party why the encrypted TMD found in each title directory is redundant, as the important information is moved to the ".db" and ".cmd" files during title installation. |
− | *This file isn't updated when downloading a title, until installation is complete. So if the download is un-expectedly interrupted/canceled this prevents title rights from being written to the title.db. If the title rights are erroneously written, the eShop would mistake the title for being installed, and not allow the title to be re-downloaded(of course erroneous title rights can be deleted from system settings, but the end user would not know to do this). Also in the case of title updates, this has the added benefit of allowing the user to revert to the version of the title before the update, if the update is canceled before completion. | + | *Since this file controls what SD Card titles are accessible to the 3DS, it is possible to move between different versions of an SD Card title if you have the title.db and title data for each version of that specific title. |
| + | *This file isn't updated when downloading a title, until installation is complete. So if the download is un-expectedly interrupted/canceled this prevents title rights from being written to the title.db. If the title rights are erroneously written, the eShop would mistake the title for being installed, and not allow the title to be re-downloaded(of course erroneous title rights can be deleted from system settings, but the end user would not be expected know to do this). Also in the case of title updates, this has the added benefit of allowing the user to revert to the version of the title before the update, if the update is canceled before completion. |
| | | |
| "'''import.db'''" - The function of the file is not well understood. It appears to be related to the download/install of titles, as in the progress of downloading titles this file will have changed but the title.db will not be modified until the title has been properly downloaded. This file doesn't contain any title specific data which the 3DS has been noted to use in relation to titles on the SD Card, even though this file is modified when titles are installed/deleted. Infact, no matter what titles you install, if you use an old copy of the "import.db" with a recent copy of the "title.db", this creates no noticeable issues. | | "'''import.db'''" - The function of the file is not well understood. It appears to be related to the download/install of titles, as in the progress of downloading titles this file will have changed but the title.db will not be modified until the title has been properly downloaded. This file doesn't contain any title specific data which the 3DS has been noted to use in relation to titles on the SD Card, even though this file is modified when titles are installed/deleted. Infact, no matter what titles you install, if you use an old copy of the "import.db" with a recent copy of the "title.db", this creates no noticeable issues. |
Line 47: |
Line 48: |
| | | |
| | | |
− | "'''XXXXXXXX.app'''" - (There is no pattern to the file name) These files are [[NCCH]] files, where the entire file is encrypted with a per-console key. There can be more than one NCCH in this directory, as seen with .[[CCI]] files, the game executable ([[CXI]]) can be accompanied with additional non-executable NCCH files ([[NCCH#CFA|CFA]]) such as the game manual and DLP Child containers. Determining the function of the encrypted NCCH, is done by finding the Content Index of the "XXXXXXXX.app" file in the title's TMD(see above for retrieving decrypted TMD), interpreting the Content Index is as follows: | + | "'''XXXXXXXX.app'''" - (There is no pattern to the file name) These files are [[NCCH]] files, where the entire file is encrypted with a per-console key. There can be more than one NCCH in this directory, as seen with .[[CCI]] files, the game executable ([[CXI]]) can be accompanied with additional non-executable NCCH files ([[NCCH#CFA|CFA]]) such as the electronic manual and DLP Child containers. Determining the function of the encrypted NCCH, is done by finding the Content Index of the "XXXXXXXX.app" file in the title's TMD(see above for retrieving decrypted TMD), interpreting the Content Index is as follows: |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |