NS services: Difference between revisions
No edit summary |
|||
Line 1,553: | Line 1,553: | ||
=== RequestCheckLatestUpdateIncludesRebootlessUpdate === | === RequestCheckLatestUpdateIncludesRebootlessUpdate === | ||
No input, returns an output Event handle and an [[#IAsyncValue]]. | No input, returns an output Event handle and an [[#IAsyncValue]]. | ||
= IAsyncValue = | = IAsyncValue = | ||
Line 1,763: | Line 1,680: | ||
= NoDownloadRightsErrorResolution = | = NoDownloadRightsErrorResolution = | ||
This is "nn::ns::NoDownloadRightsErrorResolution". | This is "nn::ns::NoDownloadRightsErrorResolution". | ||
= BackgroundNetworkUpdateState = | |||
{| class="wikitable" border="1" | |||
|- | |||
! Value | |||
! Description | |||
|- | |||
| 0 || No sysupdate task exists. | |||
|- | |||
| 1 || Sysupdate download in progress. | |||
|- | |||
| 2 || Sysupdate ready, pending install. | |||
|} | |||
This is "nn::ns::BackgroundNetworkUpdateState". This is an u8. | |||
Similar to [[#HasDownloaded]], [[#GetBackgroundNetworkUpdateState]] uses [[NIM_services|nim]] ListSystemUpdateTask and [[NIM_services|nim]] GetSystemUpdateTaskInfo. When ListSystemUpdateTask successfully returns a task and GetSystemUpdateTaskInfo is successful, the output value is set to: <code>1 + *((u8*)(taskinfo+0) == 0x3</code>. Otherwise, value=0. | |||
[[#GetBackgroundNetworkUpdateState]] always returns Result 0, however this will assert if GetSystemUpdateTaskInfo fails with ret!=0x3C89. | |||
= SystemUpdateProgress = | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 || 0x8 || s64 Current size. This value can be larger than total_size when the async operation is finishing. When total_size is <=0, this current_size field may contain a progress value for when the total_size is not yet determined. | |||
|- | |||
| 0x8 || 0x8 || s64 Total size, this field is only valid when >0. | |||
|} | |||
This is "nn::ns::SystemUpdateProgress". This is a 0x10-byte struct. | |||
Commands which have this as output will return 0 with the output cleared, when no task is available. | |||
= EulaDataPath = | |||
This is "nn::ns::detail::EulaDataPath". This is a 0x100-byte struct. | |||
This contains a file path. | |||
= SystemDeliveryInfo = | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 || 0x4 || Must be <= to and match [[System_Settings|system-setting]] <code>contents_delivery!system_delivery_protocol_version</code>. | |||
|- | |||
| 0x4 || 0x4 || Loaded from [[System_Settings|system-setting]] <code>contents_delivery!application_delivery_protocol_version</code>. Unused by [[#RequestSendSystemUpdate]]/[[#RequestReceiveSystemUpdate]], besides HMAC validation. | |||
|- | |||
| 0x8 || 0x4 || Whether ExFat is included. Unused by [[#RequestSendSystemUpdate]]/[[#RequestReceiveSystemUpdate]], besides HMAC validation. | |||
|- | |||
| 0xC || 0x4 || SystemUpdate meta version. | |||
|- | |||
| 0x10 || 0x8 || SystemUpdate meta titleID. | |||
|- | |||
| 0x18 || 0x1 || Copied into state by [[#RequestSendSystemUpdate]]. | |||
|- | |||
| 0x19 || 0x1 || Unknown. Unused by [[#RequestSendSystemUpdate]]/[[#RequestReceiveSystemUpdate]], besides HMAC validation. | |||
|- | |||
| 0x1A || 0xC6 || Unused by [[#RequestSendSystemUpdate]]/[[#RequestReceiveSystemUpdate]], besides HMAC validation. | |||
|- | |||
| 0xE0 || 0x20 || HMAC-SHA256 over the previous 0xE0-bytes. | |||
|} | |||
This is "nn::ns::SystemDeliveryInfo". This is a 0x100-byte struct. | |||
= ApplicationDeliveryInfo = | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 || 0x100 || ? | |||
|} | |||
This is "nn::ns::ApplicationDeliveryInfo". This is a 0x100-byte struct. | |||
= LatestSystemUpdate = | |||
{| class="wikitable" border="1" | |||
|- | |||
! Value | |||
! Description | |||
|- | |||
| 1 || Unknown. | |||
|- | |||
| 2 || Unknown. | |||
|- | |||
| Other values || Unknown. | |||
|} | |||
This is "nn::ns::LatestSystemUpdate". This is an u8. | |||
[[Category:Services]] | [[Category:Services]] |