Parental Control services: Difference between revisions
Parental controls documentation |
|||
(9 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
PCTL handles all parental controls management. | |||
= pctl:s, pctl:r, pctl:a, pctl = | |||
These are "nn::pctl::detail::ipc::IParentalControlServiceFactory". | |||
The max_sessions are these are: pctl has 6, pctl:s has 8, pctl:a has 1, and pctl:r has 1. | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| 0 || | | 0 || CreateService | ||
|- | |- | ||
| 1 || [4.0.0+] CreateServiceWithoutInitialize | |||
|} | |} | ||
== IParentalControlService == | == IParentalControlService == | ||
This is "nn::pctl::detail::ipc::IParentalControlService". | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |||
| 1 || [4.0.0+] Initialize | |||
|- | |- | ||
| 1001 || CheckFreeCommunicationPermission | | 1001 || CheckFreeCommunicationPermission | ||
Line 41: | Line 47: | ||
|- | |- | ||
| 1012 || GetRestrictedFeatures | | 1012 || GetRestrictedFeatures | ||
|- | |||
| 1013 || [4.0.0+] ConfirmStereoVisionPermission | |||
|- | |||
| 1014 || [5.0.0+] ConfirmPlayableApplicationVideoOld | |||
|- | |||
| 1015 || [5.0.0+] ConfirmPlayableApplicationVideo | |||
|- | |||
| 1016 || [6.0.0+] ConfirmShowNewsPermission | |||
|- | |||
| 1017 || [10.0.0+] EndFreeCommunication | |||
|- | |||
| 1018 || [10.0.0+] IsFreeCommunicationAvailable | |||
|- | |- | ||
| 1031 || IsRestrictionEnabled | | 1031 || IsRestrictionEnabled | ||
Line 70: | Line 88: | ||
| 1046 || DisableFeaturesForReset | | 1046 || DisableFeaturesForReset | ||
|- | |- | ||
| 1047 || NotifyApplicationDownloadStarted | | 1047 || [3.0.0+] NotifyApplicationDownloadStarted | ||
|- | |||
| 1048 || [6.0.0+] NotifyNetworkProfileCreated | |||
|- | |||
| 1061 || [4.0.0+] ConfirmStereoVisionRestrictionConfigurable | |||
|- | |||
| 1062 || [4.0.0+] GetStereoVisionRestriction | |||
|- | |||
| 1063 || [4.0.0+] SetStereoVisionRestriction | |||
|- | |||
| 1064 || [5.0.0+] ResetConfirmedStereoVisionPermission | |||
|- | |||
| 1065 || [5.0.0+] [[#IsStereoVisionPermitted]] | |||
|- | |- | ||
| 1201 || UnlockRestrictionTemporarily | | 1201 || UnlockRestrictionTemporarily | ||
Line 85: | Line 115: | ||
|- | |- | ||
| 1207 || GetPinCodeChangedEvent | | 1207 || GetPinCodeChangedEvent | ||
|- | |||
| 1208 || [4.0.0+] GetPinCode | |||
|- | |- | ||
| 1403 || IsPairingActive | | 1403 || IsPairingActive | ||
Line 95: | Line 127: | ||
|- | |- | ||
| 1424 || GetAccountState | | 1424 || GetAccountState | ||
|- | |||
| 1425 || [6.0.0+] RequestPostEvents | |||
|- | |- | ||
| 1432 || GetSynchronizationEvent | | 1432 || GetSynchronizationEvent | ||
Line 111: | Line 145: | ||
|- | |- | ||
| 1457 || GetPlayTimerEventToRequestSuspension | | 1457 || GetPlayTimerEventToRequestSuspension | ||
|- | |||
| 1458 || [4.0.0+] IsPlayTimerAlarmDisabled | |||
|- | |- | ||
| 1471 || NotifyWrongPinCodeInputManyTimes | | 1471 || NotifyWrongPinCodeInputManyTimes | ||
Line 129: | Line 165: | ||
|- | |- | ||
| 1902 || ClearFreeCommunicationApplicationListForDebug | | 1902 || ClearFreeCommunicationApplicationListForDebug | ||
|- | |||
| 1903 || [5.0.0+] GetExemptApplicationListCountForDebug | |||
|- | |||
| 1904 || [5.0.0+] GetExemptApplicationListForDebug | |||
|- | |||
| 1905 || [5.0.0+] UpdateExemptApplicationListForDebug | |||
|- | |||
| 1906 || [5.0.0+] AddToExemptApplicationListForDebug | |||
|- | |||
| 1907 || [5.0.0+] DeleteFromExemptApplicationListForDebug | |||
|- | |||
| 1908 || [5.0.0+] ClearExemptApplicationListForDebug | |||
|- | |- | ||
| 1941 || DeletePairing | | 1941 || DeletePairing | ||
Line 135: | Line 183: | ||
|- | |- | ||
| 1952 || GetPlayTimerSpentTimeForTest | | 1952 || GetPlayTimerSpentTimeForTest | ||
|- | |||
| 1953 || [4.0.0+] SetPlayTimerAlarmDisabledForDebug | |||
|- | |- | ||
| 2001 || RequestPairingAsync | | 2001 || RequestPairingAsync | ||
Line 166: | Line 216: | ||
| 2015 || FinishSynchronizeParentalControlSettingsWithLastUpdated | | 2015 || FinishSynchronizeParentalControlSettingsWithLastUpdated | ||
|- | |- | ||
| 2016 || [5.0.0+] RequestUpdateExemptionListAsync | |||
|} | |} | ||
=== IsStereoVisionPermitted === | |||
No input, returns an output u8 bool. True indicates that VrMode is allowed, false otherwise. | |||
== GenerateInquiryCode == | == GenerateInquiryCode == | ||
Line 179: | Line 232: | ||
Master Keys are validated as follows on <= [[3.0.0]]: first, svcSleepThread(1000000000LL) is called to introduce a delay to prevent brute force attacks. Then, strlen(master_key) is called -- if this is not 8, 0 is returned. Next, the inquiry code is regenerated and snprintf("%02d%08llu", 10, generated_inquiry_rnd) is compared to the inquiry data passed in as an argument. If this doesn't match, 0 is returned. Then, hmac-sha256(snprintf("%02d%08llu", 10, generated_inquiry_rnd)) is called using hardcoded keydata, and the master key argument is compared to snprintf("%08llu", (hmac_result & 0xFFFFFFFFFFFF) % 100000000). If this matches, 1 is returned, otherwise 0 is returned. | Master Keys are validated as follows on <= [[3.0.0]]: first, svcSleepThread(1000000000LL) is called to introduce a delay to prevent brute force attacks. Then, strlen(master_key) is called -- if this is not 8, 0 is returned. Next, the inquiry code is regenerated and snprintf("%02d%08llu", 10, generated_inquiry_rnd) is compared to the inquiry data passed in as an argument. If this doesn't match, 0 is returned. Then, hmac-sha256(snprintf("%02d%08llu", 10, generated_inquiry_rnd)) is called using hardcoded keydata, and the master key argument is compared to snprintf("%08llu", (hmac_result & 0xFFFFFFFFFFFF) % 100000000). If this matches, 1 is returned, otherwise 0 is returned. | ||
On [[3.0.1]] this was | On [[3.0.1]] this was changed to use different hardcoded keydata, and to pass 11 as the snprintf argument instead of 10. | ||
[[Category:Services]] |