Changes

Jump to navigation Jump to search
9,622 bytes added ,  16:32, 14 September 2019
Line 24: Line 24:  
| 8 || [4.0.0+] GetAddOnContentListChangedEvent
 
| 8 || [4.0.0+] GetAddOnContentListChangedEvent
 
|-
 
|-
| 100 || [7.0.0+] CreateEcPurchasedEventManager
+
| 100 || [7.0.0+] [[#IPurchaseEventManager|CreateEcPurchasedEventManager]]
 +
|-
 +
| 101 || [9.0.0+] [[#IPurchaseEventManager|CreatePermanentEcPurchasedEventManager]]
 
|}
 
|}
   Line 41: Line 43:  
|-
 
|-
 
| 3 || PopPurchasedProductInfo
 
| 3 || PopPurchasedProductInfo
 +
|-
 +
| 4 || [9.0.0+] PopPurchasedProductInfoWithUid
 
|}
 
|}
   Line 258: Line 262:  
| 1001 || [2.0.0+] CorruptApplicationForDebug
 
| 1001 || [2.0.0+] CorruptApplicationForDebug
 
|-
 
|-
| 1200 || [2.0.0+] NeedsUpdateVulnerability
+
| 1200 || [2.0.0+] [[#NeedsUpdateVulnerability]]
 
|-
 
|-
 
| 1300 || [2.0.0+] IsAnyApplicationEntityInstalled
 
| 1300 || [2.0.0+] IsAnyApplicationEntityInstalled
Line 293: Line 297:     
=== Application Record Format ===
 
=== Application Record Format ===
   
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 408: Line 411:  
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 7989 || Returns an output [[#IReadOnlyApplicationControlDataInterface]].
+
| 7988 || [6.0.0+] [[#IDynamicRightsInterface|GetDynamicRightsInterface]].
 
|-
 
|-
| 7992 || [[#IECommerceInterface|GetECommerceInterface]]
+
| 7989 || [5.1.0+] [[#IReadOnlyApplicationControlDataInterface|GetReadOnlyApplicationControlDataInterface]].
 
|-
 
|-
| 7993 || [[#IApplicationVersionInterface|GetApplicationVersionInterface]]
+
| 7991 || [5.0.0+] [[#IReadOnlyApplicationRecordInterface|GetReadOnlyApplicationRecordInterface]].
 +
|-
 +
| 7992 || [4.0.0+] [[#IECommerceInterface|GetECommerceInterface]]
 +
|-
 +
| 7993 || [4.0.0+] [[#IApplicationVersionInterface|GetApplicationVersionInterface]]
 
|-
 
|-
 
| 7994 || [[#IFactoryResetInterface|GetFactoryResetInterface]]
 
| 7994 || [[#IFactoryResetInterface|GetFactoryResetInterface]]
Line 425: Line 432:  
|-
 
|-
 
| 7999 || [[#IDocumentInterface|GetDocumentInterface]]
 
| 7999 || [[#IDocumentInterface|GetDocumentInterface]]
|-
   
|}
 
|}
   Line 436: Line 442:  
|-
 
|-
 
| 0 || CreateUserAccount
 
| 0 || CreateUserAccount
|-
   
|}
 
|}
   Line 485: Line 490:  
|-
 
|-
 
| 30 || RequestApplicationUpdateInfo
 
| 30 || RequestApplicationUpdateInfo
 +
|-
 +
| 31 || [1.0.0-3.0.2]
 
|-
 
|-
 
| 32 || CancelApplicationDownload
 
| 32 || CancelApplicationDownload
Line 498: Line 505:  
| 38 || CheckApplicationLaunchVersion
 
| 38 || CheckApplicationLaunchVersion
 
|-
 
|-
| [1.0.0-6.2.0] 39 || CheckApplicationLaunchRights
+
| 39 || [1.0.0-6.2.0] CheckApplicationLaunchRights
 
|-
 
|-
 
| 40 || GetApplicationLogoData
 
| 40 || GetApplicationLogoData
Line 548: Line 555:  
| 65 || GetRequestServerStopper
 
| 65 || GetRequestServerStopper
 
|-
 
|-
| 66 || GetBackgroundApplyDeltaStressTaskInfo
+
| 66 || [3.0.0+] GetBackgroundApplyDeltaStressTaskInfo
 
|-
 
|-
| 67 || CancelApplicationApplyDelta
+
| 67 || [3.0.0+] CancelApplicationApplyDelta
 
|-
 
|-
| 68 || ResumeApplicationApplyDelta
+
| 68 || [3.0.0+] ResumeApplicationApplyDelta
 
|-
 
|-
| 69 || CalculateApplicationApplyDeltaRequiredSize
+
| 69 || [3.0.0+] CalculateApplicationApplyDeltaRequiredSize
 
|-
 
|-
| 70 || ResumeAll
+
| 70 || [3.0.0+] ResumeAll
 
|-
 
|-
| 71 || GetStorageSize
+
| 71 || [3.0.0+] GetStorageSize
 
|-
 
|-
| 80 || RequestDownloadApplication
+
| 80 || [3.0.0+] RequestDownloadApplication
 
|-
 
|-
| 81 || RequestDownloadAddOnContent
+
| 81 || [3.0.0+] RequestDownloadAddOnContent
 
|-
 
|-
| 82 || DownloadApplication
+
| 82 || [3.0.0+] DownloadApplication
 
|-
 
|-
| [3.0.0-6.2.0] 83 || CheckApplicationResumeRights
+
| 83 || [4.0.0-6.2.0] CheckApplicationResumeRights
 
|-
 
|-
| 84 || GetDynamicCommitEvent
+
| 84 || [4.0.0+] GetDynamicCommitEvent
 
|-
 
|-
| 85 || RequestUpdateApplication2
+
| 85 || [4.0.0+] RequestUpdateApplication2
 
|-
 
|-
| 86 || EnableApplicationCrashReport
+
| 86 || [4.0.0+] EnableApplicationCrashReport
 
|-
 
|-
| 87 || IsApplicationCrashReportEnabled
+
| 87 || [4.0.0+] IsApplicationCrashReportEnabled
 
|-
 
|-
| 90 || BoostSystemMemoryResourceLimit
+
| 90 || [4.0.0-8.1.0] BoostSystemMemoryResourceLimit
 
|-
 
|-
 
| 91 || [5.0.0+] DeprecatedLaunchApplication
 
| 91 || [5.0.0+] DeprecatedLaunchApplication
Line 593: Line 600:  
|-
 
|-
 
| 98 || [6.0.0+] EnableApplicationAllThreadDumpOnCrash
 
| 98 || [6.0.0+] EnableApplicationAllThreadDumpOnCrash
 +
|-
 +
| 99 || [8.0.0+] [[#LaunchDevMenu]]
 
|-
 
|-
 
| 100 || ResetToFactorySettings
 
| 100 || ResetToFactorySettings
Line 641: Line 650:  
|-
 
|-
 
| 406 || [6.0.0+] GetApplicationControlProperty
 
| 406 || [6.0.0+] GetApplicationControlProperty
 +
|-
 +
| 407 || [8.0.0+] ListApplicationTitle
 +
|-
 +
| 408 || [8.0.0+] ListApplicationIcon
 
|-
 
|-
 
| 502 || RequestCheckGameCardRegistration
 
| 502 || RequestCheckGameCardRegistration
Line 648: Line 661:  
| 504 || RequestRegisterGameCard
 
| 504 || RequestRegisterGameCard
 
|-
 
|-
| 505 || GetGameCardMountFailureEvent
+
| 505 || [3.0.0+] GetGameCardMountFailureEvent
 
|-
 
|-
| 506 || IsGameCardInserted
+
| 506 || [3.0.0+] IsGameCardInserted
 
|-
 
|-
| 507 || EnsureGameCardAccess
+
| 507 || [3.0.0+] EnsureGameCardAccess
 
|-
 
|-
| 508 || GetLastGameCardMountFailureResult
+
| 508 || [3.0.0+] GetLastGameCardMountFailureResult
 
|-
 
|-
| 509 || ListApplicationIdOnGameCard
+
| 509 || [5.0.0+] ListApplicationIdOnGameCard
 +
|-
 +
| 510 || [9.0.0+] [[#GetGameCardPlatformRegion]]
 
|-
 
|-
 
| 600 || CountApplicationContentMeta
 
| 600 || CountApplicationContentMeta
Line 670: Line 685:  
| 605 || ListApplicationContentMetaStatusWithRightsCheck
 
| 605 || ListApplicationContentMetaStatusWithRightsCheck
 
|-
 
|-
| 606 || GetContentMetaStorage
+
| 606 || [3.0.0+] GetContentMetaStorage
 
|-
 
|-
 
| 607 || [6.0.0+] ListAvailableAddOnContent
 
| 607 || [6.0.0+] ListAvailableAddOnContent
Line 690: Line 705:  
| 801 || ListVersionList
 
| 801 || ListVersionList
 
|-
 
|-
| 802 || RequestVersionListData
+
| 802 || [3.0.0+] RequestVersionListData
 
|-
 
|-
 
| 900 || GetApplicationRecord
 
| 900 || GetApplicationRecord
Line 710: Line 725:  
| 908 || ListApplicationRecordInstalledContentMeta
 
| 908 || ListApplicationRecordInstalledContentMeta
 
|-
 
|-
| 909 || WithdrawCleanupAddOnContentsWithNoRightsRecommendation
+
| 909 || [3.0.0+] WithdrawCleanupAddOnContentsWithNoRightsRecommendation
 
|-
 
|-
| 910 || [6.0.0+] HasApplicationRecord
+
| 910 || [5.0.0+] HasApplicationRecord
 
|-
 
|-
 
| 911 || [5.1.0+] SetPreInstalledApplication
 
| 911 || [5.1.0+] SetPreInstalledApplication
 
|-
 
|-
 
| 912 || [5.1.0+] ClearPreInstalledApplicationFlag
 
| 912 || [5.1.0+] ClearPreInstalledApplicationFlag
 +
|-
 +
| 913 || [9.0.0+] ListAllApplicationRecord
 +
|-
 +
| 914 || [9.0.0+] HideApplicationRecord
 +
|-
 +
| 915 || [9.0.0+] ShowApplicationRecord
 
|-
 
|-
 
| 1000 || RequestVerifyApplicationDeprecated
 
| 1000 || RequestVerifyApplicationDeprecated
Line 722: Line 743:  
| 1001 || CorruptApplicationForDebug
 
| 1001 || CorruptApplicationForDebug
 
|-
 
|-
| 1002 || RequestVerifyAddOnContentsRights
+
| 1002 || [3.0.0+] RequestVerifyAddOnContentsRights
 
|-
 
|-
| 1003 || RequestVerifyApplication
+
| 1003 || [5.0.0+] RequestVerifyApplication
 
|-
 
|-
| 1004 || CorruptContentForDebug
+
| 1004 || [5.0.0+] CorruptContentForDebug
 
|-
 
|-
| 1200 || NeedsUpdateVulnerability
+
| 1200 || [[#NeedsUpdateVulnerability]]
 
|-
 
|-
 
| 1300 || IsAnyApplicationEntityInstalled
 
| 1300 || IsAnyApplicationEntityInstalled
Line 736: Line 757:  
| 1302 || CleanupUnrecordedApplicationEntity
 
| 1302 || CleanupUnrecordedApplicationEntity
 
|-
 
|-
| 1303 || CleanupAddOnContentsWithNoRights
+
| 1303 || [3.0.0+] CleanupAddOnContentsWithNoRights
|-
  −
| 1304 || DeleteApplicationContentEntity
  −
|-
  −
| 1305 || [?.?.?-5.1.0] TryDeleteRunningApplicationEntity
  −
|-
  −
| 1306 || [?.?.?-5.1.0] TryDeleteRunningApplicationCompletely
   
|-
 
|-
| 1307 || [?.?.?-5.1.0] TryDeleteRunningApplicationContentEntities
+
| 1304 || [3.0.0+] DeleteApplicationContentEntity
 
|-
 
|-
| 1308 || [6.0.0+] DeleteApplicationCompletelyForDebug
+
| 1308 || [5.0.0+] DeleteApplicationCompletelyForDebug
 
|-
 
|-
 
| 1309 || [6.0.0+] CleanupUnavailableAddOnContents
 
| 1309 || [6.0.0+] CleanupUnavailableAddOnContents
Line 758: Line 773:  
| 1502 || GetLastSdCardFormatUnexpectedResult
 
| 1502 || GetLastSdCardFormatUnexpectedResult
 
|-
 
|-
| 1504 || InsertSdCard
+
| 1504 || [3.0.0+] InsertSdCard
 
|-
 
|-
| 1505 || RemoveSdCard
+
| 1505 || [3.0.0+] RemoveSdCard
 +
|-
 +
| 1506 || [9.0.0+] GetSdCardStartupStatus
 
|-
 
|-
 
| 1600 || GetSystemSeedForPseudoDeviceId
 
| 1600 || GetSystemSeedForPseudoDeviceId
 
|-
 
|-
| 1601 || ResetSystemSeedForPseudoDeviceId
+
| 1601 || [3.0.0+] ResetSystemSeedForPseudoDeviceId
 
|-
 
|-
 
| 1700 || ListApplicationDownloadingContentMeta
 
| 1700 || ListApplicationDownloadingContentMeta
 
|-
 
|-
| 1701 || GetApplicationView
+
| 1701 || [3.0.0+] GetApplicationView
 
|-
 
|-
| 1702 || GetApplicationDownloadTaskStatus
+
| 1702 || [3.0.0+] GetApplicationDownloadTaskStatus
 
|-
 
|-
| 1703 || GetApplicationViewDownloadErrorContext
+
| 1703 || [4.0.0+] GetApplicationViewDownloadErrorContext
 +
|-
 +
| 1704 || [8.0.0+] GetApplicationViewWithPromotionInfo
 
|-
 
|-
 
| 1800 || IsNotificationSetupCompleted
 
| 1800 || IsNotificationSetupCompleted
Line 780: Line 799:  
| 1802 || ListLastNotificationInfo
 
| 1802 || ListLastNotificationInfo
 
|-
 
|-
| 1803 || ListNotificationTask
+
| 1803 || [3.0.0+] ListNotificationTask
 
|-
 
|-
| 1900 || IsActiveAccount
+
| 1900 || [3.0.0+] IsActiveAccount
 
|-
 
|-
| 1901 || RequestDownloadApplicationPrepurchasedRights
+
| 1901 || [4.0.0+] RequestDownloadApplicationPrepurchasedRights
 
|-
 
|-
| 1902 || GetApplicationTicketInfo
+
| 1902 || [5.0.0+] GetApplicationTicketInfo
 
|-
 
|-
| 2000 || GetSystemDeliveryInfo
+
| 2000 || [4.0.0+] GetSystemDeliveryInfo
 
|-
 
|-
| 2001 || SelectLatestSystemDeliveryInfo
+
| 2001 || [4.0.0+] SelectLatestSystemDeliveryInfo
 
|-
 
|-
| 2002 || VerifyDeliveryProtocolVersion
+
| 2002 || [4.0.0+] VerifyDeliveryProtocolVersion
 
|-
 
|-
| 2003 || GetApplicationDeliveryInfo
+
| 2003 || [4.0.0+] GetApplicationDeliveryInfo
 
|-
 
|-
| 2004 || HasAllContentsToDeliver
+
| 2004 || [4.0.0+] HasAllContentsToDeliver
 
|-
 
|-
| 2005 || CompareApplicationDeliveryInfo
+
| 2005 || [4.0.0+] CompareApplicationDeliveryInfo
 
|-
 
|-
| 2006 || CanDeliverApplication
+
| 2006 || [4.0.0+] CanDeliverApplication
 
|-
 
|-
| 2007 || ListContentMetaKeyToDeliverApplication
+
| 2007 || [4.0.0+] ListContentMetaKeyToDeliverApplication
 
|-
 
|-
| 2008 || NeedsSystemUpdateToDeliverApplication
+
| 2008 || [4.0.0+] NeedsSystemUpdateToDeliverApplication
 
|-
 
|-
| 2009 || EstimateRequiredSize
+
| 2009 || [4.0.0+] EstimateRequiredSize
 
|-
 
|-
| 2010 || RequestReceiveApplication
+
| 2010 || [4.0.0+] RequestReceiveApplication
 
|-
 
|-
| 2011 || CommitReceiveApplication
+
| 2011 || [4.0.0+] CommitReceiveApplication
 
|-
 
|-
| 2012 || GetReceiveApplicationProgress
+
| 2012 || [4.0.0+] GetReceiveApplicationProgress
 
|-
 
|-
| 2013 || RequestSendApplication
+
| 2013 || [4.0.0+] RequestSendApplication
 
|-
 
|-
| 2014 || GetSendApplicationProgress
+
| 2014 || [4.0.0+] GetSendApplicationProgress
 
|-
 
|-
| 2015 || CompareSystemDeliveryInfo
+
| 2015 || [4.0.0+] CompareSystemDeliveryInfo
 
|-
 
|-
| 2016 || ListNotCommittedContentMeta
+
| 2016 || [4.0.0+] ListNotCommittedContentMeta
 
|-
 
|-
| 2017 || RecoverDownloadTask
+
| 2017 || [4.0.0+] RecoverDownloadTask
 
|-
 
|-
| 2018 || [6.0.0+] GetApplicationDeliveryInfoHash
+
| 2018 || [5.0.0+] GetApplicationDeliveryInfoHash
 
|-
 
|-
 
| 2050 || [6.0.0+] GetApplicationRightsOnClient
 
| 2050 || [6.0.0+] GetApplicationRightsOnClient
 +
|-
 +
| 2051 || [9.0.0+] InvalidateRightsIdCache
 
|-
 
|-
 
| 2100 || [6.0.0+] GetApplicationTerminateResult
 
| 2100 || [6.0.0+] GetApplicationTerminateResult
Line 842: Line 863:  
| 2154 || [6.0.0+] ForceActivateRightsContextForExit
 
| 2154 || [6.0.0+] ForceActivateRightsContextForExit
 
|-
 
|-
| 2155 || [6.0.0+] UpdateRightsEnvironmentStatus
+
| 2155 || [7.0.0+] UpdateRightsEnvironmentStatus
 +
|-
 +
| 2156 || [9.0.0+] CreateRightsEnvironmentForPreomia
 
|-
 
|-
 
| 2160 || [6.0.0+] AddTargetApplicationToRightsEnvironment
 
| 2160 || [6.0.0+] AddTargetApplicationToRightsEnvironment
Line 858: Line 881:  
| 2182 || [6.0.0+] SetActiveRightsContextUsingStateToRightsEnvironment
 
| 2182 || [6.0.0+] SetActiveRightsContextUsingStateToRightsEnvironment
 
|-
 
|-
| 2190 || [6.0.0+] GetRightsEnvironmentHandleForApplication
+
| 2190 || [6.0.0+] [[#GetRightsEnvironmentHandleForApplication]]
 
|-
 
|-
 
| 2199 || [6.0.0+] GetRightsEnvironmentCountForDebug
 
| 2199 || [6.0.0+] GetRightsEnvironmentCountForDebug
Line 866: Line 889:  
| 2201 || [6.0.0+] GetInstalledApplicationCopyIdentifier
 
| 2201 || [6.0.0+] GetInstalledApplicationCopyIdentifier
 
|-
 
|-
| 2250 || [6.0.0+] RequestReportActiveELicence
+
| 2250 || [6.0.0-6.2.0] RequestReportActiveELicence
 +
|-
 +
| 2300 || [6.0.0-8.1.0] ListEventLog
 +
|-
 +
| 2350 || [7.0.0+] PerformAutoUpdateByApplicationId
 +
|-
 +
| 2351 || [9.0.0+] RequestNoDownloadRightsErrorResolution
 +
|-
 +
| 2352 || [9.0.0+] RequestResolveNoDownloadRightsError
 +
|-
 +
| 2400 || [8.0.0+] GetPromotionInfo
 +
|-
 +
| 2401 || [8.0.0+] CountPromotionInfo
 +
|-
 +
| 2402 || [8.0.0+] ListPromotionInfo
 +
|-
 +
| 2403 || [8.0.0+] ImportPromotionJsonForDebug
 +
|-
 +
| 2404 || [8.0.0+] ClearPromotionInfoForDebug
 +
|-
 +
| 2500 || [8.0.0+] ConfirmAvailableTime
 +
|-
 +
| 2510 || [9.0.0+] [[#CreateApplicationResource]]
 +
|-
 +
| 2511 || [9.0.0+] [[#GetApplicationResource]]
 +
|-
 +
| 2513 || [9.0.0+] LaunchPreomia
 
|-
 
|-
| 2300 || [6.0.0+] ListEventLog
+
| 2514 || [9.0.0+]  
 
|-
 
|-
 +
| 2800 || [9.0.0+] GetApplicationIdOfPreomia
 
|}
 
|}
 +
 +
[4.0.0+] RequestDownloadAddOnContent now takes an additional 8-bytes of input.
 +
 +
==== LaunchDevMenu ====
 +
No input/output.
 +
 +
This is used by AM cmd [[Applet_Manager_services#LaunchDevMenu|LaunchDevMenu]].
 +
 +
This loads titleIDs from [[System_Settings|system-settings]] <code>ns.applet!devmenu_id</code> and <code>ns.applet!devoverlaydisp_id</code>, which only exists on devunits. An error is thrown if loading these fail.
 +
 +
[[NCM_services|NCM]] OpenContentMetaDatabase is used with StorageId = NandSystem, then IContentMetaDatabase GetLatestContentMetaKey is used with both of the above titleIDs to verify that the cmd is successful.
 +
 +
Then if the above succeeds, the above titles are launched with the above StorageId via [[Process_Manager_services|pmshell]] LaunchProgram, with a 0.5s sleep-thread afterwards on success.
 +
 +
=== GetGameCardPlatformRegion ===
 +
No input, returns an u8 '''PlatformRegion''' (0x00 = Default, 0x01 = China).
 +
 +
This calls [[Filesystem_services#IDeviceOperator|fsp-srv IDeviceOperator]] GetGameCardCompatibilityType and returns the result.
 +
 +
==== GetRightsEnvironmentHandleForApplication ====
 +
No input, returns a total of 8-bytes of output.
 +
 +
[9.0.0+] Now takes a total of 8-bytes of input, returns a total of 8-bytes of output.
 +
 +
==== CreateApplicationResource ====
 +
Returns an [[#IApplicationResource]].
 +
 +
==== GetApplicationResource ====
 +
Returns an [[#IApplicationResource]].
    
=== IApplicationVersionInterface ===
 
=== IApplicationVersionInterface ===
 +
This is "nn::ns::detail::IApplicationVersionInterface".
 +
 +
This was added with [4.0.0+].
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 894: Line 977:  
|-
 
|-
 
| 1000 || PerformAutoUpdate
 
| 1000 || PerformAutoUpdate
|-
   
|}
 
|}
   Line 919: Line 1,001:  
|-
 
|-
 
| 607 || IsAnyApplicationRunning
 
| 607 || IsAnyApplicationRunning
|-
   
|}
 
|}
   Line 933: Line 1,014:  
| 23 || ResolveApplicationContentPath
 
| 23 || ResolveApplicationContentPath
 
|-
 
|-
| 92 || [6.0.0+] GetRunningApplicationProgramId
+
| 92 || [5.0.0+] GetRunningApplicationProgramId
|-
   
|}
 
|}
   Line 954: Line 1,034:  
| 705 || RequestDownloadTaskListData
 
| 705 || RequestDownloadTaskListData
 
|-
 
|-
| 706 || TryCommitCurrentApplicationDownloadTask
+
| 706 || [4.0.0+] TryCommitCurrentApplicationDownloadTask
 
|-
 
|-
| 707 || EnableAutoCommit
+
| 707 || [4.0.0+] EnableAutoCommit
 
|-
 
|-
| 708 || DisableAutoCommit
+
| 708 || [4.0.0+] DisableAutoCommit
 
|-
 
|-
| 709 || TriggerDynamicCommitEvent
+
| 709 || [4.0.0+] TriggerDynamicCommitEvent
 +
|}
 +
 
 +
=== IReadOnlyApplicationRecordInterface ===
 +
This is "nn::ns::detail::IReadOnlyApplicationRecordInterface".
 +
 
 +
This was added with [5.0.0+].
 +
 
 +
{| class="wikitable" border="1"
 
|-
 
|-
 +
! Cmd || Name || Notes
 +
|-
 +
| 0 || HasApplicationRecord || Same as [[#IApplicationManagerInterface]] cmd 910
 
|}
 
|}
   Line 973: Line 1,064:  
! Cmd || Name || Notes
 
! Cmd || Name || Notes
 
|-
 
|-
| 0 || ||  
+
| 0 || [[#GetApplicationControlData]] || Same as [[#IApplicationManagerInterface]] cmd 400
 +
|-
 +
| 1 || [[#GetApplicationDesiredLanguage]] || Same as [[#IApplicationManagerInterface]] cmd 55
 +
|-
 +
| 2 || ConvertApplicationLanguageToLanguageCode || Same as [[#IApplicationManagerInterface]] cmd 59
 +
|-
 +
| 3 || [[#ConvertLanguageCodeToApplicationLanguage]] || Same as [[#IApplicationManagerInterface]] cmd 60
 +
|-
 +
| 4 || [9.0.0+] SelectApplicationDesiredLanguage ||
 +
|}
 +
 
 +
=== IDynamicRightsInterface ===
 +
This is "nn::ns::detail::IDynamicRightsInterface".
 +
 
 +
This was added with [6.0.0+].
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name || Notes
 +
|-
 +
| 0 || RequestApplicationRightsOnServer ||
 +
|-
 +
| 1 || RequestAssignRights ||
 +
|-
 +
| 4 || DeprecatedRequestAssignRightsToResume ||
 +
|-
 +
| 5 || VerifyActivatedRightsOwners ||
 +
|-
 +
| 6 || DeprecatedGetApplicationRightsStatus ||
 +
|-
 +
| 7 || RequestPrefetchForDynamicRights ||
 +
|-
 +
| 8 || GetDynamicRightsState ||
 +
|-
 +
| 9 || [7.0.0+] RequestApplicationRightsOnServerToResume ||
 +
|-
 +
| 10 || [7.0.0+] RequestAssignRightsToResume ||  
 
|-
 
|-
| 1 || ||  
+
| 11 || [7.0.0+] GetActivatedRightsUsers ||  
 
|-
 
|-
| 2 || ||  
+
| 12 || [8.0.0+] GetApplicationRightsStatus ||
 
|-
 
|-
| 3 || ||  
+
| 13 || [8.0.0+] GetRunningApplicationStatus ||
 
|}
 
|}
    
=== IECommerceInterface===
 
=== IECommerceInterface===
 +
This is "nn::ns::detail::IECommerceInterface".
 +
 +
This was added with [4.0.0+].
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 998: Line 1,129:  
|-
 
|-
 
| 5 || [6.1.0+] RequestRevokeAllELicense || Takes a total of 0x10-bytes of input, returns an [[#IAsyncResult]].
 
| 5 || [6.1.0+] RequestRevokeAllELicense || Takes a total of 0x10-bytes of input, returns an [[#IAsyncResult]].
 +
|-
 +
| 6 || [9.0.0+] RequestSyncRightsBasedOnAssignedELicenses ||
 
|}
 
|}
   Line 1,012: Line 1,145:  
|-
 
|-
 
| 102 || ResetToFactorySettingsForRefurbishment
 
| 102 || ResetToFactorySettingsForRefurbishment
 +
|}
 +
 +
=== IApplicationResource ===
 +
This is "nn::ns::detail::IApplicationResource".
 +
 +
This was added with [9.0.0+].
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 
|-
 
|-
 +
| 0 || Attach
 +
|-
 +
| 1 || BoostSystemMemoryResourceLimit
 
|}
 
|}
   Line 1,022: Line 1,168:  
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 1200 || [3.0.0+] NeedsUpdateVulnerability
+
| 1200 || [3.0.0+] [[#NeedsUpdateVulnerability]]
 
|-
 
|-
| 1201 || [4.0.0+] UpdateSafeSystemVersionForDebug
+
| 1201 || [4.0.0+] [[#UpdateSafeSystemVersionForDebug]]
|-
  −
| 1202 || [4.0.0+] GetSafeSystemVersion
   
|-
 
|-
 +
| 1202 || [4.0.0+] [[#GetSafeSystemVersion]]
 
|}
 
|}
 +
 +
== NeedsUpdateVulnerability ==
 +
No input, returns an output u8 bool flag.
 +
 +
Web-applets use this command to check if the system needs an update.
 +
 +
== UpdateSafeSystemVersionForDebug ==
 +
Takes an input u64 '''titleID''' and an u32 '''version'''.
 +
 +
This command is not available for retail units. On a debug unit, if the [[System_Settings|system setting]] <code>vulnerability!enable_debug</code> is set, this mounts the system savegame [[Flash_Filesystem#System_Savegames|0x8000000000000049]] as "ns_ssversion:/", opens the file "ns_ssversion:/entry" and writes the supplied '''titleID''' and '''version''' in it.
 +
 +
Finally, it calls [[NCM_services#ncm|OpenContentMetaDatabase]] with [[Filesystem_services#StorageId|StorageID]] 3, then calls [[NCM_services#IContentMetaDatabase|GetLatestContentMetaKey]] with the supplied '''titleID''' and compares the version field from the returned [[CNMT#Content_Meta_Records|Content Meta Record]] with the supplied '''version'''.
 +
 +
If the supplied '''version''' is higher than the one in NCM's database, the value returned by [[NS_Services#NeedsUpdateVulnerability|NeedsUpdateVulnerability]] is set to "true".
 +
 +
== GetSafeSystemVersion ==
 +
No input, returns a 0x10 byte array with the cached contents of "ns_ssversion:/entry" (u64 '''titleID''', u32 '''version''' and u32 '''policy''' from <code>vulnerability!needs_update_vulnerability_policy</code>).
    
= ns:su =
 
= ns:su =
Line 1,055: Line 1,217:  
| 10 || NotifySystemUpdateForContentDelivery
 
| 10 || NotifySystemUpdateForContentDelivery
 
|-
 
|-
| 11 || PrepareShutdown
+
| 11 || [3.0.0+] PrepareShutdown
 
|-
 
|-
| 16 || DestroySystemUpdateTask
+
| 12 || [3.0.0-3.0.2]
 
|-
 
|-
| 17 || RequestSendSystemUpdate
+
| 13 || [3.0.0-3.0.2]
 
|-
 
|-
| 18 || GetSendSystemUpdateProgress
+
| 14 || [3.0.0-3.0.2]
 
|-
 
|-
 +
| 15 || [3.0.0-3.0.2]
 +
|-
 +
| 16 || [4.0.0+] DestroySystemUpdateTask
 +
|-
 +
| 17 || [4.0.0+] RequestSendSystemUpdate
 +
|-
 +
| 18 || [4.0.0+] GetSendSystemUpdateProgress
 
|}
 
|}
   Line 1,070: Line 1,239:  
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 0 || HasDownloaded
+
| 0 || [[#HasDownloaded]]
 
|-
 
|-
 
| 1 || RequestCheckLatestUpdate
 
| 1 || RequestCheckLatestUpdate
Line 1,076: Line 1,245:  
| 2 || RequestDownloadLatestUpdate
 
| 2 || RequestDownloadLatestUpdate
 
|-
 
|-
| 3 || GetDownloadProgress
+
| 3 || [[#GetDownloadProgress]]
 
|-
 
|-
| 4 || ApplyDownloadedUpdate
+
| 4 || [[#ApplyDownloadedUpdate]]
 
|-
 
|-
 
| 5 || RequestPrepareCardUpdate
 
| 5 || RequestPrepareCardUpdate
Line 1,088: Line 1,257:  
| 8 || ApplyCardUpdate
 
| 8 || ApplyCardUpdate
 
|-
 
|-
| 9 || GetDownloadedEulaDataSize
+
| 9 || [[#GetDownloadedEulaDataSize]]
 
|-
 
|-
| 10 || GetDownloadedEulaData
+
| 10 || [[#GetDownloadedEulaData]]
 
|-
 
|-
 
| 11 || SetupCardUpdate
 
| 11 || SetupCardUpdate
Line 1,116: Line 1,285:  
| 22 || [6.0.0+] RequestCheckLatestUpdateIncludesRebootlessUpdate
 
| 22 || [6.0.0+] RequestCheckLatestUpdateIncludesRebootlessUpdate
 
|}
 
|}
 +
 +
=== HasDownloaded ===
 +
No input, returns an output u8 bool flag.
 +
 +
Gets whether a network sysupdate was downloaded, with install pending.
 +
 +
Uses [[NIM_services|nim]] ListSystemUpdateTask and [[NIM_services|nim]] GetSystemUpdateTaskInfo. When ListSystemUpdateTask successfully returns a task and GetSystemUpdateTaskInfo is successful, the output flag is set to: <code>*((u8*)(taskinfo+0) == 0x3</code>. Otherwise, flag=0.
 +
 +
This always returns 0, however this will assert if GetSystemUpdateTaskInfo fails with ret!=0x3C89.
 +
 +
=== GetDownloadProgress ===
 +
No input, returns a 0x10-byte output struct.
 +
 +
Similar to [[#HasDownloaded]] except instead of a flag, this returns the 0x10-bytes from taskinfo+8. The output struct is cleared when the task(info) isn't available.
 +
 +
=== ApplyDownloadedUpdate ===
 +
No input/output.
 +
 +
Runs code similar to [[#HasDownloaded]], throwing an error if a network sysupdate isn't ready for install. Then the sysupdate is installed:
 +
 +
* Uses ListSystemUpdateTask again, then [[NIM_services|nim]] IsExFatDriverIncluded. Runs ExFat handling when the output flag is set.
 +
* The two flags in [[Flash_Filesystem#System_Update_Control]] are set to 1.
 +
* Uses [[NIM_services|nim]] CommitSystemUpdateTask and [[NIM_services|nim]] DestroySystemUpdateTask.
 +
* Installs FIRM.
 +
 +
=== GetDownloadedEulaDataSize ===
 +
Takes a type-0x15 input buffer '''path''', returns an output u64 '''filesize'''.
 +
 +
Runs code similar to [[#HasDownloaded]], throwing an error if a network sysupdate isn't ready for install.
 +
 +
Uses ListSystemUpdateTask again. Then [[NIM_services|nim]] GetDownloadedSystemDataPath, with the output ContentPath being used to mount the EULA title with FS.
 +
 +
Then "<mountname>:/<'''path'''>" is opened, gets the '''filesize''', then runs cleanup.
 +
 +
=== GetDownloadedEulaData ===
 +
Takes a type-0x15 input buffer '''path''' and a type-0x6 output buffer, returns an output u64 '''filesize'''.
 +
 +
Similar to [[#GetDownloadedEulaDataSize]] except this reads the file instead, using the specified output buffer with size=filesize. This will throw an error if the filesize is larger than the buffer size.
 +
 +
= IAsyncValue =
 +
This is "nn::ns::detail::IAsyncValue".
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || GetSize
 +
|-
 +
| 1 || Get
 +
|-
 +
| 2 || Cancel
 +
|-
 +
| 3 || [4.0.0+] GetErrorContext
 +
|}
 +
 +
Cmd3: No input/output, takes a type-0x16 output buffer.
 +
 +
= IAsyncResult =
 +
This is "nn::ns::detail::IAsyncResult".
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || Get
 +
|-
 +
| 1 || Cancel
 +
|-
 +
| 2 || [4.0.0+] GetErrorContext
 +
|}
 +
 +
Cmd2: No input/output, takes a type-0x16 output buffer.
    
= ns:dev =
 
= ns:dev =
Line 1,142: Line 1,383:  
| 9 || [[#LaunchApplicationWithStorageIdForDevelop]]
 
| 9 || [[#LaunchApplicationWithStorageIdForDevelop]]
 
|-
 
|-
| 10 || [6.0.0+] TerminateApplication2
+
| 10 || [6.0.0-8.1.0] TerminateApplication2
 
|-
 
|-
 
| 11 || [6.0.0+] GetRunningApplicationProcessIdForDevelop
 
| 11 || [6.0.0+] GetRunningApplicationProcessIdForDevelop
 
|-
 
|-
 
| 12 || [6.0.0+] SetCurrentApplicationRightsEnvironmentCanBeActiveForDevelop
 
| 12 || [6.0.0+] SetCurrentApplicationRightsEnvironmentCanBeActiveForDevelop
 +
|-
 +
| 13 || [9.0.0+] [[#CreateApplicationResourceForDevelop]]
 +
|-
 +
| 14 || [9.0.0+] [[#IsPreomiaForDevelop]]
 
|}
 
|}
   Line 1,180: Line 1,425:  
Takes 2 input u8s, an u32 [[Process_Manager_services#LaunchFlags|LaunchFlags]], and an u64 titleID. Returns an output u64 PID.
 
Takes 2 input u8s, an u32 [[Process_Manager_services#LaunchFlags|LaunchFlags]], and an u64 titleID. Returns an output u64 PID.
   −
Launches an application title which is registered with NS.  
+
Launches an application title which is registered with NS.
 +
 
 +
== CreateApplicationResourceForDevelop ==
 +
Takes an input u32 (1 = Preomia). Returns an [[#IApplicationResource]].
 +
 
 +
== IsPreomiaForDevelop ==
 +
Takes an u64 titleID. Returns a bool.
    
[[Category:Services]]
 
[[Category:Services]]

Navigation menu