Changes

Jump to navigation Jump to search
9,087 bytes added ,  01:18, 11 September 2019
Line 1: Line 1: −
= prepo:s =
+
BCAT (Background Content Asymmetric synchronized delivery and Transmission) encompasses a set of content download/upload related services.
 +
 
 +
= bcat:a, bcat:m, bcat:u, bcat:s =
 +
These are "nn::bcat::detail::ipc::IServiceCreator".
 +
 
 +
These were added with [2.0.0+].
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name || Notes
 +
|-
 +
| 0 || CreateBcatService || Takes an input u64 ProcessId, returns an [[#IBcatService]]
 +
|-
 +
| 1 || CreateDeliveryCacheStorageService || Takes an input u64 ProcessId, returns an [[#IDeliveryCacheStorageService]]
 +
|-
 +
| 2 || CreateDeliveryCacheStorageServiceWithApplicationId || Takes an input u64 TitleId, returns an [[#IDeliveryCacheStorageService]]
 +
|-
 +
| [2.0.0-2.3.0] 3 || CreateDeliveryCacheProgressService || Takes an input u64 ProcessId, returns an [[#IDeliveryCacheProgressService]]
 +
|-
 +
| [2.0.0-2.3.0] 4 || CreateDeliveryCacheProgressServiceWithApplicationId || Takes an input u64 TitleId, returns an [[#IDeliveryCacheProgressService]]
 +
|}
 +
 
 +
Equivalent to 3DS BOSS(SpotPass). See [[BCAT_Content_Container|here]] for BCAT-content-container.
 +
 
 +
== IBcatService ==
 +
This is "nn::bcat::detail::ipc::IBcatService".
 +
 
 +
This was added with [2.0.0+].
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 10100 || [[#RequestSyncDeliveryCache]]
 +
|-
 +
| 10101 || [5.0.0+] RequestSyncDeliveryCacheWithDirectoryName
 +
|-
 +
| 10200 || [5.0.0+] CancelSyncDeliveryCacheRequest
 +
|-
 +
| 20100 || [[#RequestSyncDeliveryCacheWithApplicationId]]
 +
|-
 +
| 20101 || [5.0.0+] RequestSyncDeliveryCacheWithApplicationIdAndDirectoryName
 +
|-
 +
| 20300 || [8.0.0+] [[#GetDeliveryCacheStorageUpdateNotifier]]
 +
|-
 +
| 20301 || [8.0.0+] [[#RequestSuspendDeliveryTask]]
 +
|-
 +
| 20400 || [9.0.0+] [[#RegisterSystemApplicationDeliveryTask]]
 +
|-
 +
| 20401 || [9.0.0+] [[#UnregisterSystemApplicationDeliveryTask]]
 +
|-
 +
| 30100 || SetPassphrase
 +
|-
 +
| 30101 || [2.0.0-2.3.0]
 +
|-
 +
| 30102 || [2.0.0-2.3.0]
 +
|-
 +
| 30200 || [3.0.0+] RegisterDeliveryTask
 +
|-
 +
| 30201 || [3.0.0+] UnregisterDeliveryTask
 +
|-
 +
| 30202 || [3.0.0+] BlockDeliveryTask
 +
|-
 +
| 30203 || [3.0.0+] UnblockDeliveryTask
 +
|-
 +
| 30300 || [8.0.0+] RegisterSystemApplicationDeliveryTasks
 +
|-
 +
| 90100 || GetDeliveryTaskList
 +
|-
 +
| 90200 || [[#GetDeliveryList]]
 +
|-
 +
| 90201 || [3.0.0+] ClearDeliveryCacheStorage
 +
|-
 +
| 90202 || [8.0.0+] ClearDeliveryTaskSubscriptionStatus
 +
|-
 +
| 90300 || [3.0.0+] GetPushNotificationLog
 +
|}
 +
 
 +
=== RequestSyncDeliveryCache ===
 +
No input/output.
 +
 
 +
[3.0.0+] Now returns an [[#IDeliveryCacheProgressService]].
 +
 
 +
=== RequestSyncDeliveryCacheWithApplicationId ===
 +
Takes a total of 8-bytes of input, no output.
 +
 
 +
[3.0.0+] Now takes an additional 8-bytes of input, and returns an [[#IDeliveryCacheProgressService]].
 +
 
 +
=== GetDeliveryCacheStorageUpdateNotifier ===
 +
Takes a total of 8-bytes of input, returns an [[#INotifierService]].
 +
 
 +
=== RequestSuspendDeliveryTask ===
 +
Takes a total of 8-bytes of input, returns an [[#IDeliveryTaskSuspensionService]].
 +
 
 +
== RegisterSystemApplicationDeliveryTask ==
 +
Takes an input u64 <code>nn::ApplicationId</code>, no output.
 +
 
 +
== UnregisterSystemApplicationDeliveryTask ==
 +
Takes an input u64 <code>nn::ApplicationId</code>, no output.
 +
 
 +
=== GetDeliveryList ===
 +
Takes a type-0x6 output buffer, returns a total of 4-bytes of output.
 +
 
 +
[3.0.0+] Now takes a total of 8-bytes of input, and returns an additional 4-bytes of output.
 +
 
 +
=== IDeliveryCacheProgressService ===
 +
This is "nn::bcat::detail::ipc::IDeliveryCacheProgressService".
 +
 
 +
This was added with [2.0.0+].
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || GetEvent
 +
|-
 +
| 1 || GetImpl
 +
|}
 +
 
 +
== IDeliveryCacheStorageService ==
 +
This is "nn::bcat::detail::ipc::IDeliveryCacheStorageService".
 +
 
 +
This was added with [2.0.0+].
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || CreateFileService
 +
|-
 +
| 1 || CreateDirectoryService
 +
|-
 +
| 10 || EnumerateDeliveryCacheDirectory
 +
|}
 +
 
 +
=== IDeliveryCacheFileService ===
 +
This is "nn::bcat::detail::ipc::IDeliveryCacheFileService".
 +
 
 +
This was added with [2.0.0+].
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || Open
 +
|-
 +
| 1 || Read
 +
|-
 +
| 2 || GetSize
 +
|-
 +
| 3 || GetDigest
 +
|}
 +
 
 +
=== IDeliveryCacheDirectoryService ===
 +
This is "nn::bcat::detail::ipc::IDeliveryCacheDirectoryService".
 +
 
 +
This was added with [2.0.0+].
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || Open
 +
|-
 +
| 1 || Read
 +
|-
 +
| 2 || GetCount
 +
|}
 +
 
 +
=== INotifierService ===
 +
This is "nn::bcat::detail::ipc::INotifierService".
 +
 
 +
Added with [8.0.0+].
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name || Notes
 +
|-
 +
| 0 || GetEvent ||
 +
|}
 +
 
 +
=== IDeliveryTaskSuspensionService ===
 +
This is "nn::bcat::detail::ipc::IDeliveryTaskSuspensionService".
 +
 
 +
Added with [8.0.0+].
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name || Notes
 +
|-
 +
| 0 || GetEvent ||
 +
|}
 +
 
 +
= <nowiki>news:a, news:c, news:m, news:p, news:v</nowiki> =
 +
These are <nowiki>"nn::news::detail::ipc::IServiceCreator"</nowiki>.
 +
 
 +
On [1.0.0] these are <nowiki>"nn::news::detail::ipc::INewsService"</nowiki>, see [[#INewsService]].
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name || Notes
 +
|-
 +
| 0 || CreateNewsService || No input, returns an [[#INewsService]].
 +
|-
 +
| 1 || CreateNewlyArrivedEventHolder || No input, returns an [[#INewlyArrivedEventHolder]].
 +
|-
 +
| 2 || CreateNewsDataService || No input, returns an [[#INewsDataService]].
 +
|-
 +
| 3 || CreateNewsDatabaseService || No input, returns an [[#INewsDatabaseService]].
 +
|-
 +
| 4 || CreateOverwriteEventHolder || No input, returns an [[#IOverwriteEventHolder]].
 +
|}
 +
 
 +
== INewsService ==
 +
This is <nowiki>"nn::news::detail::ipc::INewsService"</nowiki>.
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 10100 || PostLocalNews
 +
|-
 +
| 20100 || SetPassphrase
 +
|-
 +
| 30100 || GetSubscriptionStatus
 +
|-
 +
| 30101 || [3.0.0+] GetTopicList
 +
|-
 +
| 30110 || [6.0.0+]
 +
|-
 +
| 30200 || IsSystemUpdateRequired
 +
|-
 +
| 30201 || [8.0.0+]
 +
|-
 +
| 30300 || RequestImmediateReception
 +
|-
 +
| 30400 || [3.0.0+] DecodeArchiveFile
 +
|-
 +
| 30500 || [8.0.0+] ? (Takes a total of 8-bytes of input, a handle, and a type-0x9 input buffer, returns an [[#IUnknown2]])
 +
|-
 +
| [1.0.0] 30900 || (No input, returns an [[#INewlyArrivedEventHolder]])
 +
|-
 +
| [1.0.0] 30901 || (No input, returns an [[#INewsDataService]])
 +
|-
 +
| [1.0.0] 30902 || (No input, returns an [[#INewsDatabaseService]])
 +
|-
 +
| 40100 || SetSubscriptionStatus
 +
|-
 +
| 40101 || [3.0.0+] RequestAutoSubscription
 +
|-
 +
| 40200 || ClearStorage
 +
|-
 +
| 40201 || ClearSubscriptionStatusAll
 +
|-
 +
| 90100 || GetNewsDatabaseDump
 +
|}
 +
 
 +
== INewlyArrivedEventHolder ==
 +
This is <nowiki>"nn::news::detail::ipc::INewlyArrivedEventHolder"</nowiki>.
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || Get
 +
|}
 +
 
 +
== INewsDataService ==
 +
This is <nowiki>"nn::news::detail::ipc::INewsDataService"</nowiki>.
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || Open
 +
|-
 +
| 1 || OpenWithNewsRecordV1
 +
|-
 +
| 2 || Read
 +
|-
 +
| 3 || GetSize
 +
|-
 +
| 1001 || [6.0.0+] OpenWithNewsRecord
 +
|}
 +
 
 +
== INewsDatabaseService ==
 +
This is <nowiki>"nn::news::detail::ipc::INewsDatabaseService"</nowiki>.
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || GetListV1
 +
|-
 +
| 1 || Count
 +
|-
 +
| 2 || CountWithKey
 +
|-
 +
| 3 || UpdateIntegerValue
 +
|-
 +
| 4 || UpdateIntegerValueWithAddition
 +
|-
 +
| 5 || UpdateStringValue
 +
|-
 +
| 1000 || [6.0.0+] GetList
 +
|}
 +
 
 +
== IOverwriteEventHolder ==
 +
This is <nowiki>"nn::news::detail::ipc::IOverwriteEventHolder"</nowiki>.
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || Get
 +
|}
 +
 
 +
== IUnknown2 ==
 +
This was added with [8.0.0+].
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 ||
 +
|-
 +
| 1 ||
 +
|-
 +
| 2 ||
 +
|-
 +
| 3 ||
 +
|}
 +
 
 +
= prepo:a, prepo:a2, prepo:m, prepo:u, prepo:s =
 +
These are "nn::prepo::detail::ipc::IPrepoService".
 +
 
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
 
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 10100 ||
+
| 10100 || SaveReportOld ([1.0.0-5.1.0] SaveReport)
 +
|-
 +
| 10101 || SaveReportWithUserOld ([1.0.0-5.1.0] SaveReportWithUser)
 +
|-
 +
| 10102 || [6.0.0+] SaveReport
 +
|-
 +
| 10103 || [6.0.0+] SaveReportWithUser
 +
|-
 +
| 10200 || RequestImmediateTransmission
 +
|-
 +
| 10300 || GetTransmissionStatus
 +
|-
 +
| 10400 || [9.0.0+] GetSystemSessionId
 +
|-
 +
| 20100 || SaveSystemReport
 +
|-
 +
| 20101 || SaveSystemReportWithUser
 +
|-
 +
| 20200 || [4.0.0+] SetOperationMode
 +
|-
 +
| 30100 || ClearStorage
 +
|-
 +
| 30200 || [6.0.0+] ClearStatistics
 +
|-
 +
| 30300 || [6.0.0+] GetStorageUsage
 +
|-
 +
| 30400 || [6.0.0+] GetStatistics
 +
|-
 +
| 30401 || [6.0.0+] GetThroughputHistory
 
|-
 
|-
| 10101 ||
+
| 30500 || [6.0.0+] GetLastUploadError
 
|-
 
|-
| 10200 ||
+
| 40100 || [2.0.0+] IsUserAgreementCheckEnabled
 
|-
 
|-
| 10300 ||
+
| 40101 || [2.0.0+] SetUserAgreementCheckEnabled
 
|-
 
|-
| 20100 ||
+
| 90100 || [6.0.0+] ReadAllReportFiles ([1.0.0-5.1.0] GetStorageUsage)
 
|-
 
|-
| 20101 ||
+
| 90101 || [1.0.0]
 
|-
 
|-
| 30100 ||
+
| 90102 || [1.0.0]
 
|-
 
|-
| 40100 ||
+
| [5.0.0-5.1.0] 90200 || GetStatistics
 
|-
 
|-
| 40101 ||
+
| [5.0.0-5.1.0] 90201 || GetThroughputHistory
 
|-
 
|-
| 90100 ||
+
| [5.0.0-5.1.0] 90300 || GetLastUploadError
 
|}
 
|}
 +
 +
== Data reporting ==
 +
The "Play Report" (prepo) service uploads system and user information to a cloud server.
 +
This includes the following fields:
 +
sys_info
 +
data
 +
application_id
 +
event_id
 +
operation_mode
 +
lc_recorded_at (followed by a timestamp)
 +
nc_recorded_at (followed by a timestamp)
 +
nsa_id
 +
os_version
 +
 +
And the contents of the following file:
 +
is_user_agreement_check_enabled.bin
 +
 +
All the information is periodically uploaded to the following URL:<br>
 +
* <nowiki>https://receive-%.dg.srv.nintendo.net/post</nowiki>
 +
 +
It also checks the validity of the device's authentication token using the following URL:<br>
 +
* <nowiki>https://dauth-%.ndas.srv.nintendo.net/v1/device_auth_token</nowiki>
    
[[Category:Services]]
 
[[Category:Services]]

Navigation menu