System and method for updating and distributing information
First Claim
1. A method of operating an electronic device having a non-volatile memory containing a first code version, the method comprising:
- updating at least one portion of the non-volatile memory to a second code version using an update package received via a public network, the update package comprising a set of instructions for converting the first code version to the second code version.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention discloses efficient devices, systems, and methods for updating digital information sequences that are comprised by software (110a), devices (104c), and data (110c). In addition, these digital information sequences may be stored and used in various forms, including but not limited to files, memory locations, and/or embedded storage locations. The disclosed invention is thus suitable for updating many types of digital information sequences and in the context of updating software comprised of multiple files. Furthermore, the devices, systems, and methods described herein provide a developer skilled in the art with an improved ability to generate update information as needed and, additionally, allow users to proceed through a simplified update path, which is not error-prone, and may be performed more quickly than through the use of existing technologies.
638 Citations
55 Claims
-
1. A method of operating an electronic device having a non-volatile memory containing a first code version, the method comprising:
-
updating at least one portion of the non-volatile memory to a second code version using an update package received via a public network, the update package comprising a set of instructions for converting the first code version to the second code version. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
sending to an update server at least one identifying characteristic; and
receiving from the update server the update package corresponding to the at least one identifying characteristic.
-
-
6. The method of claim 5 wherein the at least one identifying characteristic comprises an identifier of the manufacturer of the electronic device.
-
7. The method of claim 5 wherein the at least one identifying characteristic comprises a model identifier.
-
8. The method of claim 5 wherein the at least one identifying characteristic comprises at least one version identifier.
-
9. The method of claim 8 wherein the at least one version identifier comprises a first and a second code version identifier.
-
10. The method of claim 5 wherein the at least one identifying characteristic comprises a type of the electronic device.
-
11. The method of claim 1 wherein the updating comprises:
-
retrieving from the update server a metadata;
halting the updating if it is determined from the metadata that the updating should not proceed; and
continuing the updating if it is determined from the metadata that the updating should proceed.
-
-
12. The method of claim 1 wherein the updating comprises;
-
verifying the received update package;
proceeding with the updating if the verification of the update package is success; and
halting the updating if the verification of the update package is not successful.
-
-
13. The method of claim 12 wherein the verifying comprises:
determining that the update package is appropriate for at least one identifying characteristic.
-
14. The method of claim 13 wherein at least one of a cyclic redundancy check, hash value, digital signature, digital fingerprint, and message digest is used.
-
15. The method of claim 1 wherein the non-volatile memory comprises a change indicator that is set upon receipt of the update package.
-
16. The method of claim 15, wherein the updating comprises:
-
detecting whether or not the change indicator is set;
proceeding with the updating if the change indicator is set;
inhibiting the updating if the change indicator is not set; and
resetting the change indicator.
-
-
17. The method of claim 15 wherein the change indicator is a status table.
-
18. A method of operating an electronic client device, the electronic client device having a memory, the method comprising:
-
receiving, by the electronic client device via a communications medium, executable instructions; and
performing, using the executable instructions, a fault-tolerant update of code in at least a portion of the electronic client device. - View Dependent Claims (19, 20, 21, 22)
-
-
23. A method of operating an electronic client device having a non-volatile memory, the non-volatile memory comprising a change indicator for signaling the availability of an update package received via a communication medium, the method comprising:
-
detecting a state of the change indicator Indicating the availability of the received update package;
performing a fault tolerant update of non-volatile memory if the change indicator is set;
refraining from performing a fault tolerant update of non-volatile memory if the change indicator is not set; and
resetting the change indicator upon completion of the fault tolerant update. - View Dependent Claims (24, 25, 26, 27)
-
-
28. A method of operating an update server, the update server communicatively coupled to an electronic client device containing a code, the update server having stored upon it at least one update package, the method comprising:
-
receiving at least one identifying characteristic from the electronic client device;
selecting one of the at least one updated package based on at least one identifying characteristic, the selected update package comprising a set of instructions for converting the code into an updated code; and
communicating to the electronic client device the selected pudate package comprising a set of instructions for converting the code into an updated code. - View Dependent Claims (29, 30, 31, 32, 33, 34, 35, 36, 37, 38)
determining that an update of the electronic client device is required;
sending an update notice to the electronic client device;
receiving an update request from the electronic client device; and
retrieving an update package.
-
-
38. The method of claim 28 wherein the update server comprises a generator for generating the at least one update package.
-
39. A method of operating a generator, the generator having access to an old code and a new code, the method comprising:
generating an update package comprising a sequence of instructions transforming the old code into the new code using a bank by bank method. - View Dependent Claims (40)
-
41. A method of operating an electronic device having a non-volatile memory, the non-volatile memory comprising a plurality of banks, the method comprising:
-
(a) selecting one of the plurality of banks;
(b) determining whether or not the selected bank has been updated;
(c) updating the selected bank if it is determined that it has not been updated;
(d) refraining from updating the selected bank if it is determined that it has been updated;
(e) repeating (a) through (d) until it is determined that all of the plurality of banks have been updated; and
wherein the determining compares a first value to a second value, the second value being calculated from a contents of the selected bank. - View Dependent Claims (42, 43, 44, 45, 46, 47, 48, 49)
the non-volatile memory comprises an update package and a backup bank;
the backup bank is used for storing information needed for fault tolerant recovery;
the electronic device comprises a volatile memory; and
the volatile memory comprises a working bank for converting the contents of each of the plurality of banks from a portion of a code to a portion of an updated code.
-
-
43. The method of claim 42 wherein:
the update package comprises information used in the bank-by-bank update method.
-
44. The method of claim 42 wherein the updating comprises:
-
moving a copy of the selected bank to the working bank;
converting a code in the working bank according to at least a portion of the update package;
copying the working bank to the backup bank; and
duplicating the working bank in the selected bank.
-
-
45. The method of claim 41 wherein the calculation of the second value uses a checksum algorithm.
-
46. The method of claim 41 wherein the calculation of the second value uses a cyclic redundancy check algorithm.
-
47. The method of claim 41 wherein the calculation of the second value uses a digital signature algorithm.
-
48. The method of claim 41 wherein the calculation of the second value uses a message digest algorithm.
-
49. The method of claim 41 wherein the calculation of the second value uses a hash algorithm.
-
50. A method of operating an electronic client device, the electronic client device having a non-volatile memory, the method comprising:
-
receiving, by the electronic client device via a communications medium, executable instructions; and
updating the non-volatile memory using a fault tolerant bank-by-bank update method. - View Dependent Claims (51, 52)
-
-
53. A method of operating an update distribution system for delivering to an electronic device an update package, the electronic device having at least one identifying characteristic, the method comprising:
-
provisioning the update package using the at least one identifying characteristic, the update package comprising a set of instructions for converting a first code version to a second code version;
retrieving using at least one retrieval criterion the update package comprising the set of instructions for converting a first code version to a second code version; and
providing to the electronic device the retrieved update package comprising the set of instructions for converting a first code version to a second code version.
-
- 54. A method of operating an electronic device, the method capable of determining where an interrupted fault-tolerant activity should be resumed without requiring the saving of status information in non-volatile memory during execution of the fault-tolerant activity.
Specification