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]] |