Profile Selector: Difference between revisions

No edit summary
Line 16: Line 16:


== UiSettings ==
== UiSettings ==
This is "nn::account::UiSettings".
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x4 || [[#UiMode]]
|-
| 0x4 || 0x4 ||
|-
| 0x8 || 0x80 || u128 invalidUidList[8]. This is copied from [[#UserSelectionSettings]].
|-
| 0x88 || 0x8 ||
|-
| 0x90 || 0x1 || u8 isNetworkServiceAccountRequired. This is copied from [[#UserSelectionSettings]].
|-
| 0x91 || 0x1 || u8 isSkipEnabled. This is copied from [[#UserSelectionSettings]].
|-
| 0x92 || 0x1 ||
|-
| 0x93 || 0x1 || u8 isPermitted.
|-
| 0x94 || 0x1 || u8 showSkipButton. This is copied from [[#UserSelectionSettings]].
|-
| 0x95 || 0x1 || u8 additionalSelect. This is copied from [[#UserSelectionSettings]].
|-
| 0x96 || 0x1 || This is copied from [[#UserSelectionSettingsForSystemService]].
|-
| 0x97 || 0x1 ||
|-
| 0x98 || 0x4 || This is copied from [[#UserSelectionSettingsForSystemService]].
|-
| 0x9C || 0x4 ||
|}
This has size 0xA0 (0x98 with [1.0.0]) and seems to only affect the UI display. Typical value is all zero with byte 0x96 equal to 0x01.
This has size 0xA0 (0x98 with [1.0.0]) and seems to only affect the UI display. Typical value is all zero with byte 0x96 equal to 0x01.
Setting the first byte to 1 will make the applet display in order to create a new user.
Setting the first byte to 1 will make the applet display in order to create a new user.
"starter" sets the first byte to 5 in order to display initial user setup.
"starter" sets the first byte to 5 in order to display initial user setup.


[2.0.0+]: sdknso ShowUserSelectorForSystem now has an additional input param UserSelectionSettingsForSystemService: u8 +4 is copied to UiSettings+0x96, and u32 +0 is copied to UiSettings+0xA0. sdknso ShowUserSelectorForLauncher/ShowUserSelector now sets u8 UiSettings+0x96 to value 1.
[2.0.0+]: sdknso ShowUserSelectorForSystem now has an additional input param UserSelectionSettingsForSystemService: u8 +4 is copied to UiSettings+0x96, and u32 +0 is copied to UiSettings+0x98. sdknso ShowUserSelectorForLauncher/ShowUserSelector now sets u8 UiSettings+0x96 to value 1.


== Result ==  
== UiMode ==
This is 0x18-bytes.
This is "nn::account::UiMode".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Offset || Size || Notes
! Value || Description
|-
| 0 || SelectUser
|-
| 1 || CreateUser
|-
| 2 || EnsureNsaAvailable
|-
| 3 || EditUserIcon
|-
| 4 || EditUserNickname
|-
| 5 || CreateUserForStarter
|-
| 6 || AcquireNintendoAccountAuthorization
|-
| 7 || IntroduceExternalNetworkServiceAccount
|-
| 8 || IntroduceExternalNetworkServiceAccountForRegistration
|-
| 9 || [3.0.0+] LinkAccountNnid
|-
| 10 || [6.0.0+] ShowLicenseRequirementsForNetworkService
|-
| 11 || [6.0.0+] ShowLicenseRequirementsForNetworkServiceWithUserContext
|-
| 12 || [8.0.0+] CreateUserForImmediateNaLoginTest
|}
 
== UserSelectionSettings ==
This is "nn::account::UserSelectionSettings ".
 
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x80 || u128 invalidUidList[8]
|-
| 0x80 || 0x1 || u8 isSkipEnabled
|-
| 0x81 || 0x1 || u8 isNetworkServiceAccountRequired
|-
| 0x82 || 0x1 || u8 showSkipButton
|-
| 0x83 || 0x1 || u8 additionalSelect
|-
| 0x84 || 0x1 || u8 isUnqualifiedUserSelectable
|}
 
== UserSelectionSettingsForSystemService ==
This is "nn::account::UserSelectionSettingsForSystemService".
 
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x4 ||
|-
| 0x4 || 0x1 ||
|-
| 0x5 || 0x3 || u8 padding[3]
|}
 
== UiResult ==
This is "nn::account::UiResult".
 
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
|-
| 0x0 || 0x8 || Result (0 = Success, 2 = Failure)
| 0x0 || 0x8 || Result (0 = Success, 2 = Failure)
|-
|-
| 0x8 || 0x10 || UUID of selected user
| 0x8 || 0x10 || UUID of selected user
|-
|}
|}