System Settings allows you to manage various settings, use System Transfer, and use Data Management.
All applications(CTR/TWL) launched by System Settings are launched via APT:PrepareToDoApplicationJump/APT:DoApplicationJump, such as DS INTERNET and System Transfer.
|Service||Last seen on version|
Here you can manage 3DS extra data, and 3DSWare/"Software".
When managing 3DS Software installed to the SD Card, the title.db is read by the core receiving AM commands. From the title.db file, AM gets a list of installed titles, title sizes and the name of the ".cmd" file for each title, which is used to check the authenticity of the title data(product code, title version, and if an electronic manaual is used, is also kept for each title, in the title.db, but won't be used by the Data Management Utility). For each title listed, it checks if the title is authentic(via the .cmd file). If the title passes authentication, Data Management decrypts/reads the ICN data from the executable NCCH(CXI) and displays it along with the archived title size. If a title doesn't pass authentication, a placeholder icon(light grey with a '?' in the center), name ('????????') and a size of zero are used. Deleting titles removes the title data from the title.db and import.db, and deletes the directory of the content.
See DSiWare Exports.
Most of the System Format is done with FS:InitializeCtrFileSystem. This command updates the high u64 of the keyY stored in movable.sed. Since this keyY was updated, the data stored on SD card(sdmc/Nintendo 3DS/<ID0>/<ID1>) and the data under nand/data/<ID0> is rendered useless, since that data used the old keyY. Since that data is no longer usable, the system then deletes the two above SD/NAND directories.
When you first enter the System Format menu, it will check if a NNID is linked. If there's a linked-NNID, it will then display: "Are you ready to connect to the Internet to check whether data can be formatted"? Continuing will only result in connecting to wifi for checking in with Nintendo's servers, which may fail if the console is banned. Once that's done it will continue with the usual system-format messages; proceeding will result in the NNID cookie, potentially still present on NAND backups or multiboot scenarios, being invalidated until the next sign-in (at which point even old sessions will be valid again).
The system updater title is identical to the regular system settings, except only system update is accessible with this. On dev units, this title can only be launched under certain conditions.
On retail units, this title is accessible in scenarios where you have to update via the Internet to use certain 3DS software other than the home menu. i.e. using the eShop, on a system version less than the current one. When one selects "Cancel" from here on retail, the system will shutdown. NS launches SAFE_MODE_FIRM for running this title, when the UPDATEFLAG is set during system boot.
Exiting System Settings
Upon exit, the system reboots instead of simply returning to home menu.
Parental Controls Reset
The following refers to the functionality which generates the Parental Controls "Master Key".
|System version, for the mset title||Parental controls reset functionality version||Inquiry number length||Notes|
|1.0.0-X - 6.3.0-X||v0||8||Mostly inherited from the Wii/DSi algorithm which used CRC-32 (0xEDB88320) with custom XOR-out (0xAAAA). 0x14C1 was added to produce the final result.
For the 3DS algorithm, only constants were changed: the polynomial was changed to 0xEDBA6320 and the addition constant became 0x1657.
The input to either function is an ASCII string of the format "%02u%02u%04u" where the parameters are month, day, and low 4 digits of the inquiry number. The low 5 decimal digits from the output u32 are then used for the master key.
Because of the date being used in the algorithm, this results in the master key only being valid on a particular day, though this is trivially defeated by setting the system time to the correct date that the key was generated on.
This had a minor refactor in 6.0.0-X but is functionally identical.
|7.0.0-X - 7.1.0-X||v1||10|
|7.2.0-X - current||v2||10||The master key is indirectly a function of the current date, and of the system version and region.|
The ExtData File System for System Settings is as follows:
root ├── icon ├── boss └── user ├── Backup.dat └── MsetExt.dat
|icon||Stubbed. Always image 00000002.||0x4 Bytes||n/a|
|MsetExt.dat||DSiWare Exports Management||0x960 Bytes||2.0.0-2||Download|
|Backup.dat||SD Savedata Backups Management||0xf5a0 Bytes||6.0.0-11||Download|
This keeps a record for the DSiWare Exports for a maximum of 300 exports. Each record is in the format:
|0||4||Game Code in Little Endian|
All unused entries are filled with "0xff".
This keeps a record for the 30 save data backup slots for SD Savedata Backups. Each entry corresponds to an individual backup slot.
|0x8||0x800 (0x80*16)||16 UTF-16 Title Strings|
|0x818||8||Total Save Data Size|