Skip to main content
The software-update interface lets devices discover and subscribe to signed package metadata through an XMPP service while package bytes can travel over HTTP(S), HTTP over XMPP, FTP, or another supported URI scheme.

Package metadata

signature, published, created, url, and bytes are required. Signature algorithm and trust keys are manufacturer policy, not inferred from the download server. The protocol supports querying one package, listing available packages, subscribing/unsubscribing, receiving package-change notifications, and inspecting current subscriptions. Uploading a package and the on-device installation procedure are deliberately implementation-specific.

Safe client flow

  1. Discover the update service with XMPP service discovery.
  2. Query package metadata or subscribe by stable file name.
  3. Compare published with the last verified installation record.
  4. Apply randomized delay/backoff before download.
  5. Stream to a staging area while enforcing the advertised byte limit.
  6. Verify the complete package signature against a pinned manufacturer trust policy.
  7. Back up state and check disk, power, hardware, and dependency prerequisites.
  8. Install atomically or into an inactive slot.
  9. Health-check the new version and roll back on failure.
  10. Persist the publication timestamp and outcome for audit.
Never install a package merely because it came from an authenticated broker or HTTPS origin. The package signature and trusted manufacturer key are the authenticity boundary.

Distribution at fleet scale

Brokers can mirror packages in a hierarchy and notify their own connected devices. This prevents a release to millions of devices from becoming a coordinated load spike against one manufacturer endpoint. Clients still need jitter, bounded concurrency, resume support, and a staged rollout policy.

Version policy

Subscriptions use a stable file name, so do not encode the software version in that name. Use the broker publication timestamp for protocol ordering and keep semantic version/build compatibility inside signed package metadata. Define downgrade and rollback authorization separately from normal upgrade policy.