US20130185548A1

Multiple System Images for Over-The-Air Updates

Claim Score by NHIP

Read claim 1, the broadest

Abstract

In one embodiment, a mobile device performs an over-the-air firmware update by writing the updated firmware to a inactive system image partition, and rebooting the device. The security of the OTA update is maintained through checking a plurality of security signatures in an OTA manifest, and the integrity of the data is maintained by checking a hash value of the downloaded system image.

US20130185548A1, drawing sheet 1
Sheet 1 of 8

Term

Projected expiry 7 October 2033.

  1. Priority and filed
  2. Published
  3. Today
  4. Projected expiry

20 claims: 3 independent, 17 dependent

  1. 1
    Broadest claimClaim Score 42, average(NHIP)A method comprising, by one or more computing systems:executing software from a first partition of system memory;requesting an over-the-air (OTA) software update from an endpoint;receiving a manifest for the OTA update comprising a location from which the payload may be downloaded and a hash value of the payload;requesting the payload from the location;receiving the payload from the location;calculating a first checksum by running a cryptographic hash function on the payload, comparing the hash value to the first checksum;if the hash value and first checksum match: writing the payload to a second partition of system memory;calculating a second checksum by running the cryptographic hash function on the payload written to the second partition;if the hash value and second checksum match: rebooting to the second partition of system memory;and if the hash value and second checksum fail to match: re-writing the payload to the second partition of system memory;if the hash value and first checksum fail to match: identifying bad blocks of the payload;and re-downloading the bad blocks of the payload.
  2. 9
    A non-transitory, computer-readable media comprising instructions operable, when executed by one or more computing systems, to:execute software from a first partition of system memory;request an over-the-air (OTA) software update from an endpoint;receive a manifest for the OTA update comprising a location from which the payload may be downloaded and a hash value of the payload;request the payload from the location;receive the payload from the location;calculate a first checksum by running a cryptographic hash function on the payload, compare the hash value to the first checksum;if the hash value and first checksum match: write the payload to a second partition of system memory;calculate a second checksum by running the cryptographic hash function on the payload written to the second partition;if the hash value and second checksum match: reboot to the second partition of system memory;and if the hash value and second checksum fail to match: re-write the payload to the second partition of system memory;if the hash value and first checksum fail to match: identify bad blocks of the payload;and re-download the bad blocks of the payload.
  3. 17
    An apparatus comprising:one or more processors;one or more communication interfaces;one or more non-transitory, computer-readable media comprising instructions operable, when executed by one or more processors, to: execute software from a first partition of system memory;request an over-the-air (OTA) software update from an endpoint;receive a manifest for the OTA update comprising a location from which the payload may be downloaded and a hash value of the payload;request the payload from the location;receive the payload from the location;calculate a first checksum by running a cryptographic hash function on the payload, compare the hash value to the first checksum;if the hash value and first checksum match: write the payload to a second partition of system memory;calculate a second checksum by running the cryptographic hash function on the payload written to the second partition;if the hash value and second checksum match: reboot to the second partition of system memory;and if the hash value and second checksum fail to match: re-write the payload to the second partition of system memory;if the hash value and first checksum fail to match: identify bad blocks of the payload;and re-download the bad blocks of the payload.