Line 15: |
Line 15: |
| |- | | |- |
| | 0x00040000 | | | 0x00040000 |
− | | GetTaskStorageInfo | + | | GetStorageInfo |
| |- | | |- |
| | 0x00050042 | | | 0x00050042 |
− | | ? | + | | RegisterPrivateRootCa |
| |- | | |- |
| | 0x00060084 | | | 0x00060084 |
− | | <nowiki>(u32 Size0, u32 Size1, ((Size0<<4) | 10), Buf0, ((Size1<<4) | 10), Buf1)</nowiki> This writes the content of the input buffers into files "bossdb:/%s_CL" and "bossdb:/%s_CLK", where "%s" is generated from the programID. | + | | RegisterPrivateClientCert <nowiki>(u32 Size0, u32 Size1, ((Size0<<4) | 10), Buf0, ((Size1<<4) | 10), Buf1)</nowiki> This writes the content of the input buffers into files "bossdb:/%s_CL" and "bossdb:/%s_CLK", where "%s" is generated from the programID. |
| |- | | |- |
| | 0x00070000 | | | 0x00070000 |
− | | ? | + | | GetNewArrivalFlag |
| |- | | |- |
| | 0x00080002 | | | 0x00080002 |
− | | Used for sending a handle. This is used with a table of programIDs etc with a maximum of 5 entries. | + | | [[BOSS:RegisterNewArrivalEvent|RegisterNewArrivalEvent]]: Used for sending a handle. This is used with a table of programIDs etc with a maximum of 5 entries. |
| |- | | |- |
| | 0x00090040 | | | 0x00090040 |
Line 48: |
Line 48: |
| |- | | |- |
| | 0x000F0042 | | | 0x000F0042 |
− | | ? | + | | GetStepIdList |
| |- | | |- |
| | 0x00100102 | | | 0x00100102 |
Line 54: |
Line 54: |
| |- | | |- |
| | 0x00110102 | | | 0x00110102 |
− | | ? | + | | [[BOSS:GetNsDataIdList1|GetNsDataIdList1]] |
| |- | | |- |
| | 0x00120102 | | | 0x00120102 |
− | | ? | + | | [[BOSS:GetNsDataIdList2|GetNsDataIdList2]] |
| |- | | |- |
| | 0x00130102 | | | 0x00130102 |
− | | ? | + | | [[BOSS:GetNsDataIdList3|GetNsDataIdList3]] |
| |- | | |- |
| | 0x00140082 | | | 0x00140082 |
Line 72: |
Line 72: |
| |- | | |- |
| | 0x00170082 | | | 0x00170082 |
− | | ? | + | | UpdateTaskInterval |
| |- | | |- |
| | 0x00180082 | | | 0x00180082 |
Line 78: |
Line 78: |
| |- | | |- |
| | 0x00190042 | | | 0x00190042 |
− | | ? | + | | GetTaskInterval |
| |- | | |- |
| | 0x001A0042 | | | 0x001A0042 |
Line 105: |
Line 105: |
| |- | | |- |
| | 0x00220042 | | | 0x00220042 |
− | | ? | + | | GetTaskCommErrorCode |
| |- | | |- |
| | 0x002300C2 | | | 0x002300C2 |
Line 111: |
Line 111: |
| |- | | |- |
| | 0x00240082 | | | 0x00240082 |
− | | ? | + | | GetTaskError |
| |- | | |- |
| | 0x00250082 | | | 0x00250082 |
− | | ? | + | | GetTaskInfo |
| |- | | |- |
| | 0x00260040 | | | 0x00260040 |
Line 126: |
Line 126: |
| |- | | |- |
| | 0x00290080 | | | 0x00290080 |
− | | ? | + | | SetNsDataAdditionalInfo |
| |- | | |- |
| | 0x002A0040 | | | 0x002A0040 |
− | | Unknown. Writes an output u32 to cmdreply[2]. | + | | GetNsDataAdditionalInfo. Writes an output u32 to cmdreply[2]. |
| |- | | |- |
| | 0x002B0080 | | | 0x002B0080 |
Line 138: |
Line 138: |
| |- | | |- |
| | 0x002D0040 | | | 0x002D0040 |
− | | unknown... | + | | GetNsDataLastUpdate (u32 NsDataId) Writes an output u64 to cmdreply[2-3], from the content file in extdata. |
| |- | | |- |
| | 0x002E0040 | | | 0x002E0040 |
Line 147: |
Line 147: |
| |- | | |- |
| | 0x00300000 | | | 0x00300000 |
− | | unknown... | + | | GetStorageEntryInfo |
| |- | | |- |
| | 0x00310100 | | | 0x00310100 |
− | | ? | + | | SetStorageOption |
| |- | | |- |
| | 0x00320000 | | | 0x00320000 |
− | | ? | + | | GetStorageOption |
| |- | | |- |
| | 0x00330042 | | | 0x00330042 |
Line 165: |
Line 165: |
| |- | | |- |
| | 0x00360084 | | | 0x00360084 |
− | | <nowiki>(u32 TaskID_Size, u32 BufSize, ((TaskID_Size<<4) | 10), TaskID_buf, ((BufSize<<4) | 10), Buf)</nowiki> BufSize must match 0x60. | + | | SetTaskQuery <nowiki>(u32 TaskID_Size, u32 BufSize, ((TaskID_Size<<4) | 10), TaskID_buf, ((BufSize<<4) | 10), Buf)</nowiki> BufSize must match 0x60. |
| |- | | |- |
| | 0x00370084 | | | 0x00370084 |
− | | <nowiki>(u32 TaskID_Size, u32 BufSize, ((TaskID_Size<<4) | 10), TaskID_buf, ((BufSize<<4) | 10), Buf)</nowiki> BufSize must match 0x60. | + | | GetTaskQuery <nowiki>(u32 TaskID_Size, u32 BufSize, ((TaskID_Size<<4) | 10), TaskID_buf, ((BufSize<<4) | 10), Buf)</nowiki> BufSize must match 0x60. |
| |} | | |} |
| | | |
Line 199: |
Line 199: |
| |- | | |- |
| | 0x040D0182 | | | 0x040D0182 |
− | | unknown... | + | | [[BOSSP:GetNsDataIdListPrivileged|GetNsDataIdListPrivileged]] |
| + | |- |
| + | | 0x040E0182 |
| + | | [[BOSSP:GetNsDataIdListPrivileged1|GetNsDataIdListPrivileged1]] |
| |- | | |- |
| | 0x04130082 | | | 0x04130082 |
Line 258: |
Line 261: |
| | | |
| ==BOSS Service "boss:M"== | | ==BOSS Service "boss:M"== |
| + | |
| + | ==programIDs== |
| + | BOSS uses programIDs raw without any handling for the New3DS programID-low bitmask. For example, attempting a NsDataId listing with the New3DS bitmask set will fail, if BOSS is only setup for that programID with the New3DS bitmask clear. |
| + | |
| + | When [[BOSSU:InitializeSession|initializing]] BOSS with the default programID, the New3DS programID-low bitmask is always clear for New3DS titles since that's how it was originally registered with [[Filesystem_services|FS]]. Hence, the programID in the [[SpotPass|BOSS-container]] must always have the New3DS bitmask clear. This also means everything using the BOSSP commands with the raw programIDs loaded from AM title-listing are broken with New3DS titles, for example [[Extended_Banner]]. |
| | | |
| ==Content Data Storage== | | ==Content Data Storage== |
Line 263: |
Line 271: |
| | | |
| All of these commands using [[FS:CheckAuthorityToAccessExtSaveData]] are: [[BOSS:SetStorageInfo]] and RegisterStorageEntry, for both BOSSU and BOSSP. | | All of these commands using [[FS:CheckAuthorityToAccessExtSaveData]] are: [[BOSS:SetStorageInfo]] and RegisterStorageEntry, for both BOSSU and BOSSP. |
| + | |
| + | BOSS-container content is stored in the extdata registered for the programID specified in the BOSS-container, what task it's associated with / what title registered it is irrelevant with BOSS-container data storage. |
| | | |
| ==Custom SpotPass content== | | ==Custom SpotPass content== |
Line 332: |
Line 342: |
| | 0x0 | | | 0x0 |
| | 0x4 | | | 0x4 |
− | | ? | + | | Content data-type, originally from the [[SpotPass|BOSS-container]]. |
| |} | | |} |
| | | |
Line 480: |
Line 490: |
| | 0x10 | | | 0x10 |
| | 0x1 | | | 0x1 |
− | | ? | + | | When non-zero this enables loading the client cert+privk from FS, requires the filepaths to be actually set. |
| |- | | |- |
| | 0x11 | | | 0x11 |
| | 0x1 | | | 0x1 |
− | | ? | + | | When non-zero this enables loading a trusted rootCA cert DER from FS, requires the filepath to be actually set. |
| |- | | |- |
| | 0x12 | | | 0x12 |
Line 581: |
Line 591: |
| | 0xC8A0F833 | | | 0xC8A0F833 |
| | taskID not found. | | | taskID not found. |
| + | |- |
| + | | 0xC8A0F836 |
| + | | taskID already exists, for task creation. |
| + | |- |
| + | | 0xC8A0F842 |
| + | | The specified programID is not setup for BOSS. |
| + | |- |
| + | | 0xC8A0F843 |
| + | | The specified NsDataId was not found. |
| |} | | |} |