Memory-efficient upgrade staging
Abstract
The disclosed technology is generally directed to embedded device updates. In one example of the technology, staging is performed for at least two priority groups, completing staging of each higher priority group before staging a lower priority group, including, for each priority group, the following actions. A list of install targets is generated for the priority group based on a list of software for installation in a memory and software present in the memory. A list of purge targets is generated for the priority group based on the list of software for installation in the memory and the software present in the memory. The install targets are downloaded to a backup partition of the memory. Updating of the software in the memory is caused based on the install targets. The purge targets are deleted from the memory. The install targets are deleted from the back-up partition.
Claims
exact text as granted — not AI-modifiedWe claim:
1. An apparatus, comprising:
a device including at least one memory adapted to store run-time data for the device, and at least one processor that is adapted to execute processor-executable code that, in response to execution, enables the device to perform actions, including:
performing staging for a first priority group, including, in priority order:
generating a list of install targets for the first priority group based on a list of software for installation in a memory and software present in the memory; and
generating a list of purge targets for the first priority group based on the list of software for installation in the memory and the software present in the memory;
downloading the install targets to a backup partition of the memory;
causing updating of the software in the memory based on the install targets;
deleting the purge targets from the memory; and
deleting the install targets from the back-up partition; and
after performing staging for the first priority group, performing staging for a second priority group, including, in priority order:
generating a list of install targets for the second priority group based on the list of the software for installation in the memory and the software present in the memory; and
generating a list of purge targets for the second priority group based on the list of the software for installation in the memory and the software present in the memory;
downloading the install targets to a backup partition;
causing updating of the software in the memory based on the install targets;
deleting the purge targets from the memory; and
deleting the install targets from the back-up partition.
2. The apparatus of claim 1 , the actions further including:
after performing staging for the second priority group, performing staging for a third priority group, including, in priority order:
generating a list of install targets for the third priority group based on the list of the software for installation in the memory and the software present in the memory; and
generating a list of purge targets for the third priority group based on the list of the software for installation in the memory and the software present in the memory;
downloading the install targets to a backup partition;
causing updating of the software in the memory based on the install targets;
deleting the purge targets from the memory; and
deleting the install targets from the back-up partition.
3. The apparatus of claim 1 , wherein the first priority group and the second priority group are elements of a set of priority groups, wherein the set of priority groups include a secure key store.
4. The apparatus of claim 1 , wherein the first priority group and the second priority group are elements of a set of priority groups, wherein the set of priority groups include a bootloader.
5. The apparatus of claim 1 , wherein the memory is flash memory of an integrated circuit with multiple cores including at least one central processing unit and at least one microcontroller.
6. The apparatus of claim 1 , wherein performing staging for the first priority group further includes:
generating a list of rollback targets for the first priority group based on the list of the software for installation in the memory and the software present in the memory.
7. The apparatus of claim 6 , the actions further including:
rolling back to the last known good for the first priority group, including changing the rollback targets for the first priority group to install targets for the first priority group.
8. The apparatus of claim 6 , wherein performing staging for the first priority group further includes:
for software in the memory marked as temporary, marking no rollback targets for the temporary software and marking the temporary software as a purge target.
9. The apparatus of claim 1 , wherein the first priority group and the second priority group are elements of a set of priority groups, wherein the set of priority groups include a set of partitions.
10. The apparatus of claim 9 , wherein the set of partitions correspond to a set of independent execution environments configured to have a defense-in-depth hierarchy.
11. The apparatus of claim 10 , wherein at least two independent execution environments in the set of independent execution environments are running on general purpose cores with differing capabilities from each other, and wherein the general purpose cores with differing capabilities from each other include at least a first microcontroller and a first central processing unit (CPU).
12. A method, comprising:
staging for a first priority group via a first processor, including:
providing a list of install targets for the first priority group based on a list of software for installation in a memory and software present in the memory; and
providing a list of purge targets for the first priority group based on the list of software for installation in the memory and the software present in the memory;
downloading the install targets to a backup partition of the memory;
deleting the purge targets from the memory; and
deleting the install targets from the back-up partition responsive to updating of the software in the memory based on the install targets; and
after staging for the first priority group, staging for a second priority group, including:
providing a list of install targets for the second priority group based on the list of the software for installation in the memory and the software present in the memory; and
providing a list of purge targets for the second priority group based on the list of the software for installation in the memory and the software present in the memory;
downloading the install targets to a backup partition;
deleting the install targets from the back-up partition responsive to updating of the software in the memory based on the install targets; and
deleting the install targets from the back-up partition.
13. The method of claim 12 , further comprising:
after staging the second priority group, staging a third priority group, including:
providing a list of install targets for the third priority group based on the list of the software for installation in the memory and the software present in the memory; and
providing a list of purge targets for the third priority group based on the list of the software for installation in the memory and the software present in the memory;
downloading the install targets to a backup partition;
deleting the purge targets from the memory; and
deleting the install targets from the back-up partition responsive to updating of the software in the memory based on the install targets.
14. The method of claim 12 , wherein the first priority group and the second priority group are elements of a set of priority groups, wherein the set of priority groups include a set of partitions.
15. The method of claim 12 , wherein staging the first priority group further includes:
providing a list of rollback targets for the first priority group based on the list of the software for installation in the memory and the software present in the memory.
16. The method of claim 15 , further comprising:
rolling back to the last known good for the first priority group, including changing the rollback targets for the first priority group to install targets for the first priority group.
17. A processor-readable storage medium, having stored thereon process-executable code that, upon execution by at least one processor, enables actions, comprising:
performing staging for at least two priority groups, completing staging of each higher priority group before staging a lower priority group, including, for each priority group:
generating a list of install targets for the priority group based on a list of software for installation in a memory and software present in the memory;
generating a list of purge targets for the priority group based on the list of software for installation in the memory and the software present in the memory;
downloading the install targets to a backup partition of the memory;
causing updating of the software in the memory based on the install targets;
deleting the purge targets from the memory; and
deleting the install targets from the back-up partition.
18. The processor-readable storage medium of claim 17 , wherein each of the priority groups are elements of a set of priority groups, wherein the set of priority groups include a set of partitions.
19. The processor-readable storage medium of claim 17 , wherein performing staging for each priority group further includes:
generating a list of rollback targets for the priority group based on the list of the software for installation in the memory and the software present in the memory.
20. The processor-readable storage medium of claim 19 , the actions further comprising:
rolling back to the last known good for the priority group, including changing the rollback targets for the priority group to install targets for the priority group.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.