Firmware update network and process employing preprocessing techniques
First Claim
1. Computer-readable storage having stored therein a plurality of program instructions for causing a processor to perform a method of generating information for updating memory in an electronic device, the method comprising:
- reading a first version of code for the electronic device;
reading a second version of code for the electronic device;
comparing a location of a code object in the first version of code and a location of a corresponding code object in the second version of code, to produce code object shift information;
applying the code object shift information to the first version of code to align the code object in the first version of code with the corresponding code object in the second version of code, the code object shift information representing deletion of a portion of the first version of code to shift the code object;
repeating the comparing and applying until all code objects in the first version of code and the second version of code have been compared and all code object shift information applied, to produce a modified first version of code;
generating a package of update information comprising information representing differences between the second version of code and the modified first version of code, and the applied code object shift information; and
storing the package of update information for later distribution to the electronic device via a communication network.
2 Assignments
0 Petitions
Accused Products
Abstract
A network for updating firmware, drivers, or application software facilitates the access to generated update packages by electronic devices and the update of firmware, drivers, content or application software in a fault tolerant mode. A “Bubbles” technique is employed to generate efficient and compact update packages. A “Bubbles” information is generated employing the “Bubbles” technique that is subsequently sent to the electronic devices as part of an update package. The “Bubbles” information and other related information is used in preprocessing activities and in other update related activities. For example, they are used to prepare the electronic device for an update to a different version of its firmware, software and/or content.
148 Citations
20 Claims
-
1. Computer-readable storage having stored therein a plurality of program instructions for causing a processor to perform a method of generating information for updating memory in an electronic device, the method comprising:
-
reading a first version of code for the electronic device; reading a second version of code for the electronic device; comparing a location of a code object in the first version of code and a location of a corresponding code object in the second version of code, to produce code object shift information; applying the code object shift information to the first version of code to align the code object in the first version of code with the corresponding code object in the second version of code, the code object shift information representing deletion of a portion of the first version of code to shift the code object; repeating the comparing and applying until all code objects in the first version of code and the second version of code have been compared and all code object shift information applied, to produce a modified first version of code; generating a package of update information comprising information representing differences between the second version of code and the modified first version of code, and the applied code object shift information; and storing the package of update information for later distribution to the electronic device via a communication network. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system for distributing information for updating an existing version of code comprising code objects resident in memory of an electronic device, the system comprising:
-
at least one server that generates code object shift information using the existing version of code and an updated version of code, by shifting locations of the code objects within the existing version of code to align with locations of corresponding objects in the updated version of code to produce a modified existing version of code version; the at least one server generating information representative of differences between the modified existing version of code and the updated version of code; wherein the at least one server stores the code object shift information and the difference information for later transfer to the electronic device; and wherein the at least one server causes the update of memory in the electronic device, by distributing a package comprising the object code shift information and the difference information to the electronic device via a communication network, the object code shift information representing deletion of a portion of the existing version of code to shift a code object location. - View Dependent Claims (9, 10, 11, 12)
-
-
13. An electronic device comprising:
-
a communication interface for receiving update information via a communication network, the update information comprising information representative of differences between a modified existing version of code and an updated version of code, and code object shift information; and at least one processor operably coupled to the communication interface and to memory having resident therein an existing version of code comprising one or more code objects, the at least one processor operable to, at least; modify the existing version of code to produce the modified existing version of code, by aligning the one or more code objects in the existing version of code according to the code object shift information, the code object shift information representing deletion of a portion of the existing version of code to shift the code object; and apply the information representative of differences to the modified existing version of code to produce the updated version of code, in the electronic device. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
Specification