Difference between revisions of "Title Database"

From 3dbrew
Jump to navigation Jump to search
Line 1: Line 1:
 
These files contain data relating to install/usage/management of installed 3DS titles. The database files are located at:
 
These files contain data relating to install/usage/management of installed 3DS titles. The database files are located at:
  
* nand/<Unknown-Path>/dbs
+
* nand/dbs
 
* sdmc/Nintendo 3DS/<ID0>/<ID1>/dbs
 
* sdmc/Nintendo 3DS/<ID0>/<ID1>/dbs
  
ID0 is the first 0x10-bytes from a SHA256 [[nand/private/movable.sed|hash]]. (The installation of [[SD Filesystem|SD Card]] titles was introduced in [[2.0.0-2]] update and the dbs files are encrypted.)
+
ID0 is the first 0x10-bytes from a SHA256 [[nand/private/movable.sed|hash]]. The installation of [[SD Filesystem|SD Card]] titles was introduced in the [[2.0.0-2]] update and the SD dbs files are encrypted. The NAND dbs files are cleartext. These files are [[extdata]] images.
  
 
There are only two files in this directory, for SD card:
 
There are only two files in this directory, for SD card:

Revision as of 04:04, 1 November 2012

These files contain data relating to install/usage/management of installed 3DS titles. The database files are located at:

  • nand/dbs
  • sdmc/Nintendo 3DS/<ID0>/<ID1>/dbs

ID0 is the first 0x10-bytes from a SHA256 hash. The installation of SD Card titles was introduced in the 2.0.0-2 update and the SD dbs files are encrypted. The NAND dbs files are cleartext. These files are extdata images.

There are only two files in this directory, for SD card:

/import.db
/title.db

"title.db" - This file (among other things perhaps), archives data about titles installed on the 3DS which includes their Product Code, whether the title uses an electronic manual, Title ID, Title size and Title Version(the title version determines the name of the .cmd file which contains data from the title TMD used for anti-tampering purposes).

  • This data is taken from the title's TMD and executable NCCH during install, this is also partly 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 does not store a hash of the .cmd file for each given title, but the title.db expects to find a .cmd with a name specific to the title version, and the nature of the .cmd file makes re-naming/editing or using under a different title ID(by the end user) detectable (users of retail consoles are not going to have more than one .cmd file for a given titleID/title version).
  • Since this file controls what titles are accessible to the 3DS, it is possible to move between different versions of a 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 AM 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, however this is only possible with titles installed to the SD Card). 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 download of the update is canceled before completion.
  • IMPORTANT - turning off power while the title.db is edited(the final stage of installing titles), will most likely corrupt your 3DS' title.db. Which will make installed titles inaccessible. While this creates no permanent damage for SD Card titles and can be easily fixed using a backup title.db, or just re-downloading titles from the eShop. Corrupting the NAND title.db, will most likely result in a brick.

"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 AM has been noted to use in relation to installed titles, even though this file is modified when titles are installed/deleted. In fact, 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.


Note: It is quite unlikely that the either the import.db or title.db contain the cached icon and names of installed titles. The amount of data which changes in those two file when a title installed/deleted is not sufficient to contain the size of data required for the icons and names of the application, they are most likely cached in the NAND.