Project: /_project.yaml Book: /_book.yaml

fuchsia.update

PROTOCOLS

Manager {:#Manager}

Defined in fuchsia.update/update.fidl

CheckNow {:#CheckNow}

Immediately check for an update. options: Did a user initiate this request? (USER_INITIATED) This changes some parameters about aggressiveness of retries and throttling. monitor: An interface on which to receive the status events for this update check. It‘s only valid for a single update check, after that it won’t receive any more events.

-> Was the update check successfully started (state machine in a proper state to do so).

Request

Response

GetState {:#GetState}

Get the current state of the Manager (is an update available, is it currently checking for an update, etc).

Request

Response

AddMonitor {:#AddMonitor}

Get all status events, for all update checks (interactive and background).

Request

Monitor {:#Monitor}

Defined in fuchsia.update/update.fidl

Receiver of updates for either an individual update check, or to continuously receive updates for all checks.

OnState {:#OnState}

Receive the current state as it changes.

Response

ENUMS

Initiator {:#Initiator}

Type: uint32

Defined in fuchsia.update/update.fidl

Who or what initiated the update check.

ManagerState {:#ManagerState}

Type: uint32

Defined in fuchsia.update/update.fidl

The various states that the manager can be in.

    +----------------------+
--->|         IDLE         |<--------------------------------+
|   +----------------------+                                 |
|              |               +----------------------+      |
|              |<--------------|   UPDATE_AVAILABLE   |      |
|              |               +----------------------+      |
|              v                       ^                     |
|   +----------------------+           |                     |
|<--| CHECKING_FOR_UPDATES |-----------------+               |
|   +----------------------+                 |               |
|              v                             |               |
|   +----------------------+                 |               |
|   |  PERFORMING_UPDATE   |---------------->|               |
|   +----------------------+                 |               |
|              v                             |               |
|   +----------------------+                 |               |
|   |  WAITING_FOR_REBOOT  |---------------->|               |
|   +----------------------+                 |               |
|              v                             v               |
|   +----------------------+     +----------------------+    |
+---|  FINALIZING_UPDATE   |---->|  ENCOUNTERED_ERROR   |----+
    +----------------------+     +----------------------+

Next states:

  • CHECKING_FOR_UPDATES

Next states:

  • IDLE update is not available
  • UPDATE_AVAILABLE update is available but not allowed by policy
  • PERFORMING_UPDATE update is available and allowed by policy
  • ENCOUNTERED_ERROR on error

Next states:

  • CHECKING_FOR_UPDATES when CheckNow() is called or a background update starts

Next states:

  • WAITING_FOR_REBOOT on success
  • ENCOUNTERED_ERROR on error

Next states:

  • FINALIZING_UPDATE after device reboot
  • ENCOUNTERED_ERROR on error

Next states:

  • IDLE on success
  • ENCOUNTERED_ERROR on error

Next states:

  • IDLE

CheckStartedResult {:#CheckStartedResult}

Type: uint32

Defined in fuchsia.update/update.fidl

TABLES

Options {:#Options}

Defined in fuchsia.update/update.fidl

Configuration options for an update attempt (this is common with the Fuchsia OTA Interface v2)

State {:#State}

Defined in fuchsia.update/update.fidl