Line 10: |
Line 10: |
| *Required for initialization of [[eShop]], (for first time eShop users). Not required for using eShop after first use. | | *Required for initialization of [[eShop]], (for first time eShop users). Not required for using eShop after first use. |
| | | |
− | In some cases the BOSS module will add the following URL parameter to HTTPS requests, when connected to a [[Nintendo Zone]] AP: "ap=<NZoneApNum>". | + | In some cases the BOSS module will add the following URL parameter to HTTPS requests, when connected to a [[Nintendo Zone]] AP: "ap=<NZoneApNum>" or when using a specific [[Cfg:GetSystemModel|system model]]: "tm=<SystemModelNumber>". The Old 3DS and Old 3DS XL don't set this value. |
| | | |
| == policylist == | | == policylist == |
− | Every time the system connects to the wifi AP, the BOSS ("Background online storage service" = SpotPass) module itself will download the cleartext xml policylist: "https://nppl.c.app.nintendowifi.net/p01/policylist/3/<countrycode>". This policylist contains a list of SpotPass tasks for certain titles. This policylist can control whether the specified tasks are processed at all. The default user-agent used for SpotPass HTTPS requests(including this policylist) is: "PBOS-5.0/<printed hex u64 [[CfgS:GetLocalFriendCodeSeed|LocalFriendCodeSeed]]>-<hex u64 obtained via the friends service>/<text [[CVer|system]] [[NVer|version]]>/<unknown decimal value>/0". No user-agent is used for plaintext HTTP requests with SpotPass. | + | Every time the system connects to the wifi AP, the BOSS ("Background online storage service" = SpotPass) module itself will download the cleartext xml policylist: "https://nppl.c.app.nintendowifi.net/p01/policylist/3/<countrycode>". This policylist contains a list of SpotPass tasks for certain titles. This policylist can control whether the specified tasks are processed at all. |
| | | |
| As of the policylist updated 2017-11-08, this stops the <tt>OlvNotf</tt> (Miiverse notification sync) task for <tt>000400300000bc00</tt>, <tt>000400300000bd00</tt>, <tt>000400300000be00</tt> for all regions and <tt>basho0</tt> for the [[Home Menu]]. Japan also has the <tt>9ER_NTD</tt> task blocked for いつの間にテレビ (<tt>0004000000034700</tt>). | | As of the policylist updated 2017-11-08, this stops the <tt>OlvNotf</tt> (Miiverse notification sync) task for <tt>000400300000bc00</tt>, <tt>000400300000bd00</tt>, <tt>000400300000be00</tt> for all regions and <tt>basho0</tt> for the [[Home Menu]]. Japan also has the <tt>9ER_NTD</tt> task blocked for いつの間にテレビ (<tt>0004000000034700</tt>). |
| + | |
| + | == User Agent == |
| + | |
| + | The default user-agent used for SpotPass HTTPS requests (including the policylist) has the following format: |
| + | |
| + | <tt><user agent codename>-<user agent version>/<printed hex u64 [[CfgS:GetLocalFriendCodeSeed|LocalFriendCodeSeed]]>-<printed hex u64 [[FRDU:GetMyFriendKey|Friend]] [[FRDU:PrincipalIdToFriendCode|Code]]>/<text [[CVer|system]] [[NVer|version]]>/<unknown decimal value>/<[[Cfg:GetSystemModel|system model number]]></tt> |
| + | |
| + | The codename can be set to either <tt>PBOS</tt> (Production BOSS?) or <tt>DBOS</tt> (Development BOSS?) depending if the console is a [[Configuration_Memory#UNITINFO|retail]] unit. As of system version 11.17, the user agent version is hardcoded to 8.0 and the decimal value is set to 62452 (0xF3F4). |
| + | |
| + | No user-agent is used for plaintext HTTP requests with SpotPass. |
| | | |
| == Titles Spotpass usage == | | == Titles Spotpass usage == |
Line 35: |
Line 45: |
| == Automatic System Update Download == | | == Automatic System Update Download == |
| See [[Automatic System Update Download]]. | | See [[Automatic System Update Download]]. |
| + | |
| + | == BOSS Sysmodule Savegame== |
| + | See [[BOSS Savegame]] |
| | | |
| == Content Container == | | == Content Container == |
Line 112: |
Line 125: |
| The first 0x10-bytes are all-zero except the first byte which is usually 0x80. It's unknown what the first 0x10-bytes are used for. | | The first 0x10-bytes are all-zero except the first byte which is usually 0x80. It's unknown what the first 0x10-bytes are used for. |
| | | |
− | The hash at offset 0x12 hashes the 0x12-byte data at offset 0x0 followed by a zero u16. The RSA signature is signed by Nintendo. Following this header is the actual content payload, which is written to a cleartext file under the [[extdata]] /boss directory. The data following the payload header is written to extdata, but it's unknown what data is written to the extdata file before the content payload. | + | The hash at offset 0x12 hashes the 0x12-byte data at offset 0x0 followed by a zero u16. The RSA signature is signed by Nintendo. Following this header is the actual content payload, which is written to a cleartext file under the [[extdata]] /boss directory. |
| | | |
| === Payload Content Header === | | === Payload Content Header === |
Line 144: |
Line 157: |
| | 0x18 | | | 0x18 |
| | 0x4 | | | 0x4 |
− | | ? | + | | Probably some version field for the payload |
| |- | | |- |
| | 0x1C | | | 0x1C |
Line 158: |
Line 171: |
| | | |
| The hash at offset 0x1C hashes the 0x1C-byte data at offset 0x0 followed by a zero u16, followed by all of the remaining cleartext data following this header(the actual content data). | | The hash at offset 0x1C hashes the 0x1C-byte data at offset 0x0 followed by a zero u16, followed by all of the remaining cleartext data following this header(the actual content data). |
| + | |
| + | The downloaded boss data is written in the following format to extdata. |
| + | First an extdata header in the following format |
| + | {| class="wikitable" |
| + | |- |
| + | ! Offset |
| + | ! Length |
| + | ! Description |
| + | |- |
| + | | 0x0 |
| + | | 0x1 |
| + | | Size of header including this field. Always 0x18 |
| + | |- |
| + | | 0x1 |
| + | | 0xB |
| + | | Usually zero? |
| + | |- |
| + | | 0xC |
| + | | 0x4 |
| + | | Unknown |
| + | |- |
| + | | 0x10 |
| + | | 0x4 |
| + | | Download date in format: Bit 0-6 = day, Bit 7-10 = month, Bit 11-21 = year |
| + | |- |
| + | | 0x14 |
| + | | 0x4 |
| + | | Usually zero? Padding? |
| + | |} |
| + | Followed by the Payload Content Header without the hash and signature (first 0x1C bytes) and the actual payload. |
| | | |
| [[Category:Nintendo Software]] | | [[Category:Nintendo Software]] |