Line 25: |
Line 25: |
| |- | | |- |
| | 9 || [10.0.0+] GetAddOnContentLostErrorCode | | | 9 || [10.0.0+] GetAddOnContentLostErrorCode |
| + | |- |
| + | | 10 || [11.0.0+] GetAddOnContentListChangedEventWithProcessId |
| |- | | |- |
| | 100 || [7.0.0+] [[#IPurchaseEventManager|CreateEcPurchasedEventManager]] | | | 100 || [7.0.0+] [[#IPurchaseEventManager|CreateEcPurchasedEventManager]] |
Line 84: |
Line 86: |
| | 17 || ListApplicationRecordContentMeta | | | 17 || ListApplicationRecordContentMeta |
| |- | | |- |
− | | 18 || | + | | 18 || CheckLaunchRights |
| |- | | |- |
| | 19 || [[#LaunchApplication]] | | | 19 || [[#LaunchApplication]] |
Line 428: |
Line 430: |
| |} | | |} |
| | | |
− | = ns:am2, ns:ec, ns:rid, ns:rt, ns:web = | + | = ns:am2, ns:ec, ns:rid, ns:rt, ns:web, ns:ro = |
| These services are all, at the top level, "nn::ns::detail::IServiceGetterInterface". These commands check a state field for a command-specific bit and returns an error if not set, this is likely a permissions check for service+command. | | These services are all, at the top level, "nn::ns::detail::IServiceGetterInterface". These commands check a state field for a command-specific bit and returns an error if not set, this is likely a permissions check for service+command. |
| + | |
| + | [11.0.0+] ns:ro was added. |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 435: |
Line 439: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 7988 || [6.0.0+] [[#IDynamicRightsInterface|GetDynamicRightsInterface]]. | + | | 7988 || [6.0.0+] [[#IDynamicRightsInterface|GetDynamicRightsInterface]] |
| |- | | |- |
− | | 7989 || [5.1.0+] [[#IReadOnlyApplicationControlDataInterface|GetReadOnlyApplicationControlDataInterface]]. | + | | 7989 || [5.1.0+] [[#IReadOnlyApplicationControlDataInterface|GetReadOnlyApplicationControlDataInterface]] |
| |- | | |- |
− | | 7991 || [5.0.0+] [[#IReadOnlyApplicationRecordInterface|GetReadOnlyApplicationRecordInterface]]. | + | | 7991 || [5.0.0+] [[#IReadOnlyApplicationRecordInterface|GetReadOnlyApplicationRecordInterface]] |
| |- | | |- |
| | 7992 || [4.0.0+] [[#IECommerceInterface|GetECommerceInterface]] | | | 7992 || [4.0.0+] [[#IECommerceInterface|GetECommerceInterface]] |
Line 770: |
Line 774: |
| |- | | |- |
| | 915 || [9.0.0+] ShowApplicationRecord | | | 915 || [9.0.0+] ShowApplicationRecord |
| + | |- |
| + | | 916 || [11.0.0+] IsApplicationAutoDeleteDisabled |
| |- | | |- |
| | 1000 || [[#RequestVerifyApplicationDeprecated]] | | | 1000 || [[#RequestVerifyApplicationDeprecated]] |
Line 802: |
Line 808: |
| |- | | |- |
| | 1312 || [10.0.0+] HasMovableEntity | | | 1312 || [10.0.0+] HasMovableEntity |
| + | |- |
| + | | 1313 || [11.0.0+] CleanupOrphanContents |
| + | |- |
| + | | 1314 || [11.0.0+] CheckPreconditionSatisfiedToMove |
| |- | | |- |
| | 1400 || PrepareShutdown | | | 1400 || PrepareShutdown |
Line 830: |
Line 840: |
| |- | | |- |
| | 1704 || [8.0.0+] [[#GetApplicationViewWithPromotionInfo]] | | | 1704 || [8.0.0+] [[#GetApplicationViewWithPromotionInfo]] |
| + | |- |
| + | | 1705 || [11.0.0+] [[#IsPatchAutoDeletableApplication]] |
| |- | | |- |
| | 1800 || IsNotificationSetupCompleted | | | 1800 || IsNotificationSetupCompleted |
Line 938: |
Line 950: |
| |- | | |- |
| | 2353 || [10.0.0+] GetApplicationDownloadTaskInfo | | | 2353 || [10.0.0+] GetApplicationDownloadTaskInfo |
| + | |- |
| + | | 2354 || [11.0.0+] PrioritizeApplicationBackgroundTask |
| |- | | |- |
| | 2400 || [8.0.0+] [[#GetPromotionInfo]] | | | 2400 || [8.0.0+] [[#GetPromotionInfo]] |
Line 965: |
Line 979: |
| | 2800 || [9.0.0+] GetApplicationIdOfPreomia | | | 2800 || [9.0.0+] GetApplicationIdOfPreomia |
| |- | | |- |
− | | 9999 || [10.0.0+] GetApplicationCertificate | + | | 3000 || [11.0.0+] [[#RegisterDeviceLockKey]] |
| + | |- |
| + | | 3001 || [11.0.0+] [[#UnregisterDeviceLockKey]] |
| + | |- |
| + | | 3002 || [11.0.0+] [[#VerifyDeviceLockKey]] |
| + | |- |
| + | | 3003 || [11.0.0+] [[#HideApplicationIcon]] |
| + | |- |
| + | | 3004 || [11.0.0+] [[#ShowApplicationIcon]] |
| + | |- |
| + | | 3005 || [11.0.0+] [[#HideApplicationTitle]] |
| + | |- |
| + | | 3006 || [11.0.0+] [[#ShowApplicationTitle]] |
| + | |- |
| + | | 3007 || [11.0.0+] [[#EnableGameCard]] |
| + | |- |
| + | | 3008 || [11.0.0+] [[#DisableGameCard]] |
| + | |- |
| + | | 3009 || [11.0.0+] [[#EnableLocalContentShare]] |
| + | |- |
| + | | 3010 || [11.0.0+] [[#DisableLocalContentShare]] |
| + | |- |
| + | | 3011 || [11.0.0+] [[#IsApplicationIconHidden]] |
| + | |- |
| + | | 3012 || [11.0.0+] [[#IsApplicationTitleHidden]] |
| + | |- |
| + | | 3013 || [11.0.0+] [[#IsGameCardEnabled]] |
| + | |- |
| + | | 3014 || [11.0.0+] [[#IsLocalContentShareEnabled]] |
| + | |- |
| + | | 9999 || [10.0.0-10.2.0] GetApplicationCertificate |
| |} | | |} |
| | | |
Line 1,246: |
Line 1,290: |
| ==== GetApplicationViewWithPromotionInfo ==== | | ==== GetApplicationViewWithPromotionInfo ==== |
| Takes a type-0x6 output buffer containing an array of [[#ApplicationViewWithPromotionInfo]], a type-0x5 input buffer containing an array of u64 [[NCM_services#ApplicationId|ApplicationIds]], no output. | | Takes a type-0x6 output buffer containing an array of [[#ApplicationViewWithPromotionInfo]], a type-0x5 input buffer containing an array of u64 [[NCM_services#ApplicationId|ApplicationIds]], no output. |
| + | |
| + | ==== IsPatchAutoDeletableApplication ==== |
| + | Takes an input [[NCM_services#ApplicationId|ApplicationId]], returns an output bool. |
| + | |
| + | Compares the input ApplicationId with the value of [[System_Settings|system-setting]] <code>ns.application!auto_deletable_application_id_on_not_enough_space</code>, with the bool being set to the comparsion result. |
| | | |
| ==== RequestDownloadApplicationPrepurchasedRights ==== | | ==== RequestDownloadApplicationPrepurchasedRights ==== |
Line 1,324: |
Line 1,373: |
| ** Uses [[NIM_services|nim]] cmd56, returning the Result on failure. Waits for the IAsyncResult operation from this to finish, then uses the Get cmd to get the output Result. | | ** Uses [[NIM_services|nim]] cmd56, returning the Result on failure. Waits for the IAsyncResult operation from this to finish, then uses the Get cmd to get the output Result. |
| ** Handles cleanup and returns. | | ** Handles cleanup and returns. |
− | * On success, this loads various data which is then used for saving a SystemPlayReport when a state flag is set. | + | * On success, this loads various data which is then used for saving a SystemPlayReport when the cached [[System_Settings|system-setting]] "systemreport!enabled" is set. |
| ** The EventId is "receive_app_contents" with ApplicationId <NS ProgramId>. | | ** The EventId is "receive_app_contents" with ApplicationId <NS ProgramId>. |
| | | |
Line 1,353: |
Line 1,402: |
| ** Uses [[NIM_services|nim]] cmd61, returning the Result on failure. Waits for the IAsyncResult operation from this to finish, then uses the Get cmd to get the output Result. | | ** Uses [[NIM_services|nim]] cmd61, returning the Result on failure. Waits for the IAsyncResult operation from this to finish, then uses the Get cmd to get the output Result. |
| ** Handles cleanup and returns. | | ** Handles cleanup and returns. |
− | * On success, this loads various data which is then used for saving a SystemPlayReport when a state flag is set. | + | * On success, this loads various data which is then used for saving a SystemPlayReport when the cached [[System_Settings|system-setting]] "systemreport!enabled" is set. |
| ** The EventId is "send_app_contents" with ApplicationId <NS ProgramId>. | | ** The EventId is "send_app_contents" with ApplicationId <NS ProgramId>. |
| | | |
Line 1,428: |
Line 1,477: |
| ==== GetApplicationResource ==== | | ==== GetApplicationResource ==== |
| Returns an [[#IApplicationResource]]. | | Returns an [[#IApplicationResource]]. |
| + | |
| + | ==== RegisterDeviceLockKey ==== |
| + | Takes a type-0x5 input buffer containing an InArray of u8, no output. |
| + | |
| + | User-processes expose this with two funcs: one which uses an user-specified u8 array directly, while the other uses [[HID_services#NpadButtonSet|NpadButton]]. |
| + | |
| + | This does SHA256 hashing, etc. |
| + | |
| + | ==== UnregisterDeviceLockKey ==== |
| + | No input/output. |
| + | |
| + | Runs code identical to [[#RegisterDeviceLockKey]], except the passed buffer/size are 0. |
| + | |
| + | ==== VerifyDeviceLockKey ==== |
| + | Takes a type-0x5 input buffer containing an InArray of u8, no output. |
| + | |
| + | User-processes expose this with two funcs: one which uses an user-specified u8 array directly, while the other uses [[HID_services#NpadButtonSet|NpadButton]]. |
| + | |
| + | This runs hashing similar to [[#RegisterDeviceLockKey]], with the calculated hash being verified with the one from state. |
| + | |
| + | ==== HideApplicationIcon ==== |
| + | No input/output. |
| + | |
| + | ==== ShowApplicationIcon ==== |
| + | No input/output. |
| + | |
| + | ==== HideApplicationTitle ==== |
| + | No input/output. |
| + | |
| + | ==== ShowApplicationTitle ==== |
| + | No input/output. |
| + | |
| + | ==== EnableGameCard ==== |
| + | No input/output. |
| + | |
| + | ==== DisableGameCard ==== |
| + | No input/output. |
| + | |
| + | ==== EnableLocalContentShare ==== |
| + | No input/output. |
| + | |
| + | ==== DisableLocalContentShare ==== |
| + | No input/output. |
| + | |
| + | ==== IsApplicationIconHidden ==== |
| + | No input, returns an output bool. |
| + | |
| + | ==== IsApplicationTitleHidden ==== |
| + | No input, returns an output bool. |
| + | |
| + | ==== IsGameCardEnabled ==== |
| + | No input, returns an output bool. |
| + | |
| + | ==== IsLocalContentShareEnabled ==== |
| + | No input, returns an output bool. |
| + | |
| + | Various Deliver cmds now load the same flag used by this cmd (IsLocalContentShareEnabled), with an error being returned when it's not enabled. |
| | | |
| === IGameCardStopper === | | === IGameCardStopper === |
Line 1,509: |
Line 1,615: |
| |- | | |- |
| | 1000 || PerformAutoUpdate | | | 1000 || PerformAutoUpdate |
| + | |- |
| + | | 1001 || [11.0.0+] ListAutoUpdateSchedule |
| |} | | |} |
| | | |
Line 2,092: |
Line 2,200: |
| | | |
| * Uses ListSystemUpdateTask again, then [[NIM_services|nim]] IsExFatDriverIncluded. Runs ExFat handling when the output flag is set. | | * Uses ListSystemUpdateTask again, then [[NIM_services|nim]] IsExFatDriverIncluded. Runs ExFat handling when the output flag is set. |
− | * On newer system-versions, this uses [[NIM_services|nim]] GetSystemUpdateTaskInfo then on success uses data from there to save a SystemPlayReport when a state flag is set (by default it's not set). | + | * On newer system-versions, this uses [[NIM_services|nim]] GetSystemUpdateTaskInfo then on success uses data from there to save a SystemPlayReport when the cached [[System_Settings|system-setting]] "systemreport!enabled" is set. |
| ** The EventId is "systemupdate_dl_throughput" with ApplicationId 0100000000001018. | | ** The EventId is "systemupdate_dl_throughput" with ApplicationId 0100000000001018. |
− | ** The following fields are added to the report, see [[NIM_services#SystemUpdateTaskInfo|nim SystemUpdateTaskInfo]]: "ContentMetaId", "Version", "DownloadSize", and "ThroughputKBps", | + | ** The following fields are added to the report, see [[NIM_services#SystemUpdateTaskInfo|nim SystemUpdateTaskInfo]]: "ContentMetaId", "Version", "DownloadSize", and "ThroughputKBps". |
| * On newer system-versions, this saves another SystemPlayReport when a state flag is set (same flag mentioned above). | | * On newer system-versions, this saves another SystemPlayReport when a state flag is set (same flag mentioned above). |
| ** The EventId is "systemupdate_pass" with ApplicationId 0100000000001021. | | ** The EventId is "systemupdate_pass" with ApplicationId 0100000000001021. |
Line 2,181: |
Line 2,289: |
| ** Uses [[NIM_services|nim]] cmd72, returning the Result on failure. Waits for the IAsyncResult operation from this to finish, then uses the Get cmd to get the output Result. | | ** Uses [[NIM_services|nim]] cmd72, returning the Result on failure. Waits for the IAsyncResult operation from this to finish, then uses the Get cmd to get the output Result. |
| ** Handles cleanup and returns. | | ** Handles cleanup and returns. |
− | * On success, this loads various data which is then used for saving a SystemPlayReport when a state flag is set. | + | * On success, this loads various data which is then used for saving a SystemPlayReport when the cached [[System_Settings|system-setting]] "systemreport!enabled" is set. |
| ** The EventId is "receive_system_update" with ApplicationId <NS ProgramId>. | | ** The EventId is "receive_system_update" with ApplicationId <NS ProgramId>. |
| ** This report has the following fields: | | ** This report has the following fields: |