Method for over-the-air firmware update of NAND flash memory based mobile devices
First Claim
1. A method for making bad block management technology available to a firmware update system by splitting the client device firmware in two parts, separating the essential parts of the operating system components including device drivers and file system support from non-essential operating system components and application programs, said method comprising:
- a. Saving a minimal core operating system image including an update agent as an application program; and
b. Storing the non-essential operating system components and application programs including a download agent in the form of a read-only file system.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention is a method for receiving, storing, and applying an update package to modify an original image stored within non-volatile flash memory devices. More specifically, the present design provides a download agent responsible for communicating with a server to transfer and store the update package; and an update agent responsible for verifying, decompressing and decoding the update package. The present invention separates non-essential operating system (OS) components and applications from the core OS, storing the non-essential OS components, applications, and download agent as a single image in a read-only file system. This image may then be updated by applying an update package created by running a binary differencing engine on two pre-built file system images representing the current and new file systems to modify the stored image. Additionally, the present invention provides a method for applying an update package to the core OS, which includes the update agent.
-
Citations
32 Claims
-
1. A method for making bad block management technology available to a firmware update system by splitting the client device firmware in two parts, separating the essential parts of the operating system components including device drivers and file system support from non-essential operating system components and application programs, said method comprising:
-
a. Saving a minimal core operating system image including an update agent as an application program; and
b. Storing the non-essential operating system components and application programs including a download agent in the form of a read-only file system. - View Dependent Claims (2, 3)
-
-
4. A method for updating firmware in an electronic device, employing block-structured non-volatile flash memory hardware as a storage medium, by way of effecting an update package containing the instructions to modify an original image to a new image, said method comprising:
-
a. Receiving an update package transferred from a server to a client device;
b. Storing the update package in flash memory of the client device; and
c. Applying said update package. - View Dependent Claims (5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
-
30. A method for dual-mode startup of a client device to invoke an update boot mode when a pending update is available, or a normal mode if no updates are pending, said method comprising:
-
a. Executing bootstrap code to start a core operating system and mount a user file system;
b. Checking to determine whether an update is pending, and if so entering the update boot mode; and
c. Mounting a read-only file system and continuing to boot in the normal mode, if no update is pending, or after the update has been successfully applied. - View Dependent Claims (31, 32)
-
Specification