Changes

Jump to navigation Jump to search
2,585 bytes added ,  04:47, 1 October 2017
launch parameters
Line 134: Line 134:  
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
!  System Version, for the mset title
+
!  System version, for the mset title
 
!  Parental controls reset functionality version
 
!  Parental controls reset functionality version
Enquiry Number length
+
Inquiry number length
 
!  Notes
 
!  Notes
 
|-
 
|-
 
| [[1.0.0-0|1.0.0-X]] - [[6.3.0-12|6.3.0-X]]
 
| [[1.0.0-0|1.0.0-X]] - [[6.3.0-12|6.3.0-X]]
 
| v0
 
| v0
| 6?
+
| 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.
 
| 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.
   Line 154: Line 154:  
| [[7.0.0-13|7.0.0-X]] - [[7.1.0-16|7.1.0-X]]
 
| [[7.0.0-13|7.0.0-X]] - [[7.1.0-16|7.1.0-X]]
 
| v1
 
| v1
| 8?
+
| 10
|
+
| Introduced a new scheme using HMAC-SHA-256. The HMAC key is loaded from mset .rodata, and differs between regions.
 +
 
 +
The inquiry number was bumped from 8 digits to 10 digits, but the same function is used to generate the digits as in v0 (derived from MAC address).
 +
 
 +
All digits of the inquiry number are now actually used in the master key derivation function, as the string format is now "%02u%02u%010u" (month, day, inquiry number). This buffer is hashed (as above), and a little-endian word is read from the start of the output hash. The low 5 decimal digits of this word are used as the master key.
 
|-
 
|-
 
| [[7.2.0-17|7.2.0-X]] - current
 
| [[7.2.0-17|7.2.0-X]] - current
 
| v2
 
| v2
 
| 10
 
| 10
| The correct Master Key is indirectly a function of the current date, and of the [[CVer#masterkey.bin|system version and region]].
+
| Extension of v1 featuring a number of changes which serve to obscure the HMAC key used.
 +
 
 +
The HMAC key is now stored in a separate file stored in the CVer RomFS, called [[CVer#masterkey.bin|masterkey.bin]]. This is used to update the key independently of the mset title. In order to make this possible, a scheme was devised to encode the required key within the inquiry number - the first digit denotes region, and the next two digits represent the key version. These values match up with values stored in the masterkey.bin header. For compatibility with v1 (as inquiry number length did not change), the version values begin at 10 - when parsing an inquiry number, a "version" of less than 10 should be handled as algorithm v1.
 +
 
 +
The HMAC key is now also encrypted in masterkey.bin. This uses AES-128-CTR using a (normal) key in mset .rodata (which differs between regions), with the initial counter value also stored in masterkey.bin.
 +
 
 +
At some point, Nintendo chose to "abandon" the original JPN region ID (0), and moved to region ID 9 instead (which usually doesn't exist). It is unknown why they made this change, as the AES key used for both of these IDs is the same.
 
|}
 
|}
   Line 252: Line 262:  
|  0x10
 
|  0x10
 
|  Reserved
 
|  Reserved
 +
|}
 +
 +
== Launch parameters ==
 +
System Settings can start at specific menus when certain parameters are given.
 +
 +
<nowiki>*</nowiki> - returns to settings menu instead of rebooting
 +
 +
{|  class="wikitable" border="1"
 +
|-
 +
! Value
 +
! Action
 +
|-
 +
| 0x01
 +
| Initial setup (system not actually formatted, music plays earlier)
 +
|-
 +
| 0x10
 +
| Internet Settings -> Connection Settings
 +
|-
 +
| 0x11
 +
| Internet Settings -> Other Information
 +
|-
 +
| 0x6e
 +
| Internet Settings -> Connection Settings
 +
|-
 +
| 0x6f
 +
| Parental Controls
 +
|-
 +
| 0x70
 +
| Parental Controls birthday entry
 +
|-
 +
| 0x71
 +
| Data Management
 +
|-
 +
| 0x72
 +
| 3DS Software Management
 +
|-
 +
| 0x73
 +
| 3DS Extra Data Management
 +
|-
 +
| 0x74
 +
| DSiWare Management
 +
|-
 +
| 0x75
 +
| StreetPass Management
 +
|-
 +
| 0x76
 +
| Internet Settings*
 +
|-
 +
| 0x77
 +
| Other Settings, second-to-last page*
 +
|-
 +
| 0x78
 +
| Touch Screen calibration
 +
|-
 +
| 0x79
 +
| Circle Pad calibration
 +
|-
 +
| 0x7a
 +
| System Update
 +
|-
 +
| 0x7b
 +
| System Update
 +
|-
 +
| 0x7c
 +
| Format System Memory*
 
|}
 
|}
46

edits

Navigation menu