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.