Fail-safe upgrading of portable electronic device software
First Claim
1. A portable communication device comprising an embedded system:
- the portable communication device comprising at least one storage medium and including one or more applications running on at least one hardware processor and configured to,automatically detect a remote change of one or more software components of the embedded system;
receive upgrade files via a wireless link and automatically initiate an upgrade of the one or more software components of the embedded system in a memory of the device using contents of the upgrade files, wherein the at least one storage medium includes the memory;
create a backup version of a new embedded software component associated with at least one of the upgrade files and store the backup version in the memory, wherein the new embedded software component is generated during the upgrading of the one or more software components, wherein the generating the new embedded software component comprises applying the contents of the at least one of the upgrade files to a copy of an original embedded software component associated with the at least one of the upgrade files to generate the new embedded software component, wherein the contents of the at least one of the upgrade files include difference files;
install the new embedded software component using the backup version of the new embedded software component by writing the backup version into a memory area previously occupied by another embedded software component, wherein the at least one storage medium includes the memory area;
determine a failure of the upgrade to complete, wherein the failure is associated with an incomplete upgrade of the one or more software components;
select a recovery process from a plurality of recovery processes, the selecting using a plurality of recovery factors, wherein the plurality of recovery factors include a component type of the software component being upgraded and a file type of the upgrade file being used for the upgrade; and
independently and automatically recover device operation to a pre-upgrade state using the selected recovery process in response to the failure, and automatically continue the upgrade.
4 Assignments
0 Petitions
Accused Products
Abstract
A portable communication device is provided that receives upgrade files via at least one wireless coupling. The contents of the upgrade file include information to repair errors in software components of the portable communication device and/or information to upgrade functions of the portable communication device. The portable communication device automatically upgrades the software components using the upgrade file contents. The portable communication device automatically recovers to an operational state when detecting an error or failure during the automatic upgrade. Further, the portable communication device resumes or reinitiates the automatic upgrade following the error or failure.
113 Citations
25 Claims
-
1. A portable communication device comprising an embedded system:
-
the portable communication device comprising at least one storage medium and including one or more applications running on at least one hardware processor and configured to, automatically detect a remote change of one or more software components of the embedded system; receive upgrade files via a wireless link and automatically initiate an upgrade of the one or more software components of the embedded system in a memory of the device using contents of the upgrade files, wherein the at least one storage medium includes the memory; create a backup version of a new embedded software component associated with at least one of the upgrade files and store the backup version in the memory, wherein the new embedded software component is generated during the upgrading of the one or more software components, wherein the generating the new embedded software component comprises applying the contents of the at least one of the upgrade files to a copy of an original embedded software component associated with the at least one of the upgrade files to generate the new embedded software component, wherein the contents of the at least one of the upgrade files include difference files; install the new embedded software component using the backup version of the new embedded software component by writing the backup version into a memory area previously occupied by another embedded software component, wherein the at least one storage medium includes the memory area; determine a failure of the upgrade to complete, wherein the failure is associated with an incomplete upgrade of the one or more software components; select a recovery process from a plurality of recovery processes, the selecting using a plurality of recovery factors, wherein the plurality of recovery factors include a component type of the software component being upgraded and a file type of the upgrade file being used for the upgrade; and independently and automatically recover device operation to a pre-upgrade state using the selected recovery process in response to the failure, and automatically continue the upgrade. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A portable communication device comprising:
-
at least one storage medium and one or more applications running on at least one hardware processor, the portable communication device configured to, automatically detect a remote change of one or more software components of an embedded system of the portable communication device; receive an upgrade file via a wireless link as part of an upgrade process and automatically initiate an upgrade of a software component in a memory of the device using information associated with the upgrade file, wherein the at least one storage medium includes the memory; independently store backup configuration data; create a backup version of a new embedded software component associated with at least one upgrade file and store the backup version in the memory, wherein the new embedded software component is generated during the upgrading of the one or more software components, wherein the generating the new embedded software component comprises applying the contents of the at least one upgrade file to a copy of an original embedded software component associated with the at least one upgrade file to generate the new embedded software component, wherein the contents of the at least one upgrade file include difference files; install the new embedded software component using the backup version of the new embedded software component; determine an incomplete upgrade of the software component associated with the upgrade process; select a recovery process from a plurality of recovery processes, the selecting using a plurality of recovery factors, wherein the plurality of recovery factors include a component type of the software component being upgraded and a file type of the upgrade file being used for the upgrade; and
,independently recover device operation to a prior state using the selected recovery process and the backup configuration data in response to the incomplete upgrade, and automatically continue the upgrade process.
-
-
25. A portable communication device comprising:
-
at least one storage medium and one or more applications running on at least one hardware processor, the portable communication device configured to perform an upgrade process by, automatically detecting a remote change of one or more software components of an embedded system of the portable communication device; receiving an upgrade file via a wireless link and automatically initiate an upgrade of a software component in a memory of the device using information associated with the upgrade file, the at least one storage medium including the memory; independently storing a backup upgraded software component associated with the upgrade file in the memory of the device; creating a backup version of a new embedded software component associated with at least one upgrade file and storing the backup version in the memory, wherein the new embedded software component is generated during the upgrading of the one or more software components, wherein the generating the new embedded software component comprises applying the contents of the at least one upgrade file to a copy of an original embedded software component associated with the at least one upgrade file to generate the new embedded software component, wherein the contents of the at least one upgrade file include difference files; installing the new embedded software component using the backup version of the new embedded software component by writing the backup version into a memory area previously occupied by another embedded software component, wherein the at least one storage medium includes the memory area; maintaining configuration data in the memory through file upgrades including using information of corresponding upgrade files to upgrade the configuration data in accordance with generation of new embedded software components; determining if an incomplete upgrade of the software component occurs during the upgrade process; select a recovery process from a plurality of recovery processes, the selecting using a plurality of recovery factors, wherein the plurality of recovery factors include a component type of the software component being upgraded and a file type of the upgrade file being used for the upgrade; and
,independently recovering device operation to a prior device state using the selected recovery process and the configuration data.
-
Specification