RELATED APPLICATIONSThis application makes reference to, claims priority to, and claims the benefit of U.S. Provisional Patent Application 60/425,903, entitled “Firmware Update In Electronic Devices Employing SIM Card For Saving Metadata Information” (Attorney Docket No. 14321US01-101USMD18), filed Nov. 13, 2002, the complete subject matter of which is hereby incorporated herein by reference, in its entirety.[0001]
In addition, this application makes reference to United State Provisional Patent Application Serial No. 60/249,606 (Attorney Docket No. 13776US01), filed Nov. 17, 2000, PCT Application Serial No. PCT/US01/44034 (Attorney Docket No. 13776WO01), entitled “System And Method For Updating And Distributing Information”, filed Nov. 17, 2001, U.S. patent application Ser. No. 10/311,462 (Attorney Docket No. 13776US02), entitled “System And Method For Updating And Distributing Information”, filed May 13, 2003, United State Provisional Patent Application Serial No. 60/386,199, entitled “Communication Network Capable Of Determining SIM Card Changes In Electronic Devices” (Attorney Docket No. 15109US01-101USMD05U1), filed Apr. 19, 2002, and U.S. Provisional Patent Application Serial No. 60/425,901, entitled “Firmware Update In Electronic Devices Employing Update Agent In SIM Card” (Attorney Docket No. 14320US01101USMD17), filed Nov. 13, 2002, the complete subject matter of each of which is hereby incorporated herein by reference in its entirety.[0002]
FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT[Not Applicable][0003]
MICROFICHE/COPYRIGHT REFERENCE[Not Applicable][0004]
BACKGROUND OF THE INVENTIONElectronic devices, such as mobile phones and personal digital assistants (PDA's), often contain firmware and application software that are either provided by the manufacturers of the electronic devices, by telecommunication carriers, or by third parties. Electronic devices, such as GSM phones, often contain a SIM card reader that is employed to read information on SIM cards that are inserted by end users. At least one function of SIM cards is to provide a personal identity for a user regardless of the phone actually in use. Quite often, SIM cards are used to specify the identification of the end user such that any device into which the SIM card is inserted assumes the identity provided by the SIM card. The firmware and application software on such electronic devices often employ information contained in a SIM card to access, over the telecommunications network, services offered by service providers.[0005]
If an electronic device such as, for example, a mobile handset, contains operating system and applications software that is updateable, support for the download of one or more update packages comprising information used for updating such software is necessary. It is often difficult, however, to communicate information regarding the location of such update packages to a firmware component, such as an update agent, that needs to access and apply such updates. Update agents that operate at a level below the operating system, closer to the device hardware, may not have access to file system features of the operating system. In addition, the update agents may not have access to other facilities that would typically be available to applications supported by an underlying operating system.[0006]
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with the present invention as set forth in the remainder of the present application with reference to the drawings.[0007]
BRIEF SUMMARY OF THE INVENTIONAspects of the present invention may be found in an updatable electronic device comprising a memory having at least one of firmware and software, at least one firmware component, and an interface for communicatively coupling to a user removable electronic memory device. The at least one firmware component may function to update at least a portion of at least one of firmware and software, and the user removable electronic memory device may comprise information related to the updating of the at least a portion of the at least one of firmware and software. The at least one firmware component may comprise an update agent for updating the at least a portion of the at least one of firmware and software, and the update agent may use at least one of an update package and the information related to the updating of the at least one of firmware and software. An embodiment in accordance with the present invention may also comprise a communication interface for receiving the update package, and the communication interface may be a wireless communication interface. The update package may comprise a set of instructions for updating the at least a portion of the at least one firmware and software.[0008]
In an embodiment of the present invention, the information related to the updating of the at least one firmware and software may comprise at least one of a cyclic redundancy check (CRC), a location in a file system, a memory address, a status flag, and new firmware. The information related to the updating of the at least one firmware and software may comprise an indication of the availability of an update for the at least one of a firmware and software, an indication of the success of an update of the at least one of firmware and software, and may be used to verify or authenticate an update of the at least one of firmware and software. The user removable electronic memory device may comprise one of a subscriber identity module (SIM) card, a smart card, an integrated circuit (IC) card, a removable memory card, and a removable memory module.[0009]
Additional aspects of the present invention may be seen in a method of updating an updatable electronic device comprising a memory containing at least one of firmware and software, and a user removable electronic memory device. Such a method may comprise retrieving information from the user removable electronic memory device, and determining whether an update of the at least one of firmware and software is available using information from the user removable electronic memory device. An embodiment of the present invention may comprise performing an update of at least a portion of the at least one of firmware and software using at least information from the user removable electronic memory device, if an update of the firmware is available, and refraining from performing an update of at least a portion of the at least one of firmware and software, if an update of the firmware is not available. The user removable electronic memory device may comprise one of a subscriber identity module (SIM) card, a smart card, an integrated circuit card, a removable memory card, and a removable memory module, and the updatable electronic device may be a mobile handset.[0010]
In an embodiment in accordance with the present invention, the information from the user removable electronic memory device may comprise at least one of a signature, a location in a file system, a memory address, a status flag, and new firmware. The signature may comprise a cyclic redundancy check (CRC). The information from the user removable electronic memory device may comprise an indication of the availability of an update for the at least a portion of the at least one of a firmware and software, and may be used to verify or authenticate an update of the at least a portion of the at least one of a firmware and software. An embodiment of the present invention may also comprise receiving an update package from a server, and the update package may comprise a set of instructions for updating the at least a portion of the at least one firmware and software. In an embodiment of the present invention, the receiving may be performed using a wireless network, and the information from the user removable electronic memory device may comprise the location of at least one of the update package and the server.[0011]
An embodiment in accordance with the present invention may comprise storing status information in the user removable electronic memory device, if an update was performed, and refraining from storing status information in the user removable electronic memory device, if an update was not performed. An embodiment of the present invention may perform at least one of restarting or rebooting the updatable electronic device, and at least one of a need to restart or reboot and a type of reboot may be resident in the user removable electronic memory device. In an embodiment of the present invention, the determining may comprise verifying whether the retrieved information is at least one of appropriate and authentic, continuing the performance of an update if the verification is successful, and executing a normal startup of the updatable electronic device if the verification is not successful.[0012]
These and other advantages, aspects and novel features of the present invention, as well as details of an illustrated embodiment thereof, will be more fully understood from the following description and drawings.[0013]
BRIEF DESCRIPTION OF SEVERAL VIEWS OF THE DRAWINGSFIG. 1 is a block diagram of an updatable electronic device having memory comprising firmware/software, and a SIM card that provides access to data stored in an update package reference storage area, in accordance with an embodiment of the present invention.[0014]
FIG. 2 is a flow chart illustrating an exemplary method of operating an electronic device, such as the electronic device of FIG. 1, when it accesses the update package reference storage area in a SIM card as the electronic device is powered up or restarted, in accordance with an embodiment of the present invention.[0015]
FIG. 3 is a schematic diagram of an exemplary embodiment of a[0016]mobile handset309 with a file system, in accordance with an embodiment of the present invention.
DETAILED DESCRIPTION OF THE INVENTIONThe present invention relates generally to the process of updating software/firmware in electronic devices and, more specifically, to the use of a Subscriber Identity Module (SIM) card or a smart card for providing storage space to store metadata information related to update packages employed in the update of firmware/software in an electronic device.[0017]
FIG. 1 is a block diagram of an updatable[0018]electronic device109 havingmemory133 comprising firmware/software131, and aSIM card123 that provides access to data stored in an update packagereference storage area127, in accordance with an embodiment of the present invention. The portion of thememory133 containing the firmware/software131 ofelectronic device109 is generally non-volatile memory, althoughmemory133 may comprise both non-volatile and volatile memory. The firmware/software131 comprises anoperating system129 and anupdate agent125. Theelectronic device109 of FIG. 1 may employ theupdate agent125 to update the firmware/software131 in theelectronic device109 using information stored inSIM card123. Theelectronic device109 of FIG. 1 is communicatively coupled bycommunication link113 to adistribution network107, that provides access to update packages. The update packages may comprise information used byupdate agent125 in theelectronic device109 to update the firmware/software131 ofelectronic device109. The information in such an update package may comprise things such as, for example, a set of instructions for updating a portion of the firmware/software131. Addition details of exemplary update packages may be found in U.S. Provisional Patent Application Serial No. 60/249,606 (Attorney Docket No. 13776US01), filed Nov. 17, 2000, PCT Application Serial No. PCT/US01/44034 (Attorney Docket No. 13776WO01), entitled “System And Method For Updating And Distributing Information”, filed Nov. 17, 2001, U.S. patent application Ser. No. 10/311,462 (Attorney Docket No. 13776US02), entitled “System And Method For Updating And Distributing Information”, filed May 13, 2003, the complete subject matter of each of which is hereby incorporated herein by reference in its entirety. Thedistribution server119 in thedistribution network107 may act not only as a repository of update packages, but also as a system that selectively dispenses the update packages to theelectronic device109. Although shown as a singleelectronic device109 for reasons of clarity, theelectronic device109 of FIG. 1 is representative of a plurality of electronic devices capable of being updated by thedistribution server119.
Together, the[0019]electronic device109 and thedistribution network107 comprise acommunications network105 capable of distributing update packages to theelectronic device109. In one embodiment of the present invention, theelectronic device109 may be, for example, a mobile handset in a wireless network.
In an embodiment of the present invention, the[0020]electronic device109 may comprise anupdate agent125, and aSIM card123 that provides an update packagereference storage area127. TheSIM card123 interfaces to theelectronic device109 throughinterface111. Although a SIM card is a specific form of user removable electronic memory device, the present invention applies equally to other forms of user removable electronic memory devices such as, for example, smart cards (sometimes referred to as “integrated circuit cards” or “IC cards”), removable memory cards, removable memory modules, and the like. Therefore, although this application refers to a SIM card, the present invention is not limited in this regard, as other forms of removable electronic memory device are contemplated and applicable. The update packagereference storage area127 ofSIM card123 may, for example, comprise a 16-byte space where metadata information, associated with an update package downloaded to theelectronic device109, is stored. The metadata information may be used during a subsequent access by theupdate agent125, such a subsequent access typically occurring during a restart/reboot of the electronic device, or during a power-up event.
In an embodiment in accordance with the present invention, the[0021]update agent125 may detect the presence of the update packagereference storage area127 in theSIM card123, and may employ the information contained in the update packagereference storage area127 during an update of the firmware/software131 in thememory133 of theelectronic device109. In an embodiment of the present invention, the update packagereference storage area127 may contain metadata information related to an update package. In one embodiment of the present invention, the metadata information contained in the update packagereference storage area127 may comprise, for example, one or more signatures such as, for example, 4-byte cyclic redundancy check (CRC) values, an address inmemory133 where the update package is stored, an address of a backup section in thememory133 of theelectronic device109 that is employed during an update process, and a 4-byte status field indicating the need to update firmware/software131 in theelectronic device109. Other formats and data types are also contemplated for such metadata. In addition, other types of metadata information are contemplated for storage in theupdate package reference127.
In an embodiment of the present invention, the[0022]update agent125 may be invoked during a reboot or startup (power-up) of the electronic device, to determine whether an update of the firmware/software131 in the electronic device is available. If theupdate agent125 determines from the metadata information in the update packagereference storage area127 indicates that an update of the firmware/software is available, theupdate agent125 may access the update package in thememory133 of theelectronic device109 using addresses and/or references provided in the update packagereference storage area127. Theupdate agent125 in an embodiment of the present invention (e.g., the electronic device109) may access data or code stored in theSIM card123, and may use the data as needed in the update process.
In one embodiment of the present invention, the[0023]electronic device109 may be capable of determining when theSIM card123 has been changed. For example, theelectronic device109 may determine if oneSIM card123 has been removed and adifferent SIM card123 introduced into theSIM card interface111 of theelectronic device109. In an embodiment in accordance with the present invention, theupdate agent125 may facilitate determination of SIM card changes in theelectronic device109. Theupdate agent125 may also facilitate the reporting of such changes to thedistribution network107. In addition, the determination of changes to information contained in theSIM card123 may be detected and acted upon by theelectronic device109.
In an embodiment of the present invention, restarting/rebooting of the[0024]electronic device109 may be avoided for some types of update packages. Information indicating whether or not a restart/reboot of theelectronic device109 is to be performed may be communicated to theelectronic device109 when an update package is delivered to theelectronic device109 by thedistribution server119. An indication of a request to rebootelectronic device109 during an update may be communicated to theelectronic device109, and may be stored as a flag in the metadata information stored in the update packagereference storage area127. In a related embodiment, the type of reboot to be performed (e.g., a “soft” reboot or a “hard” reboot) may be specified if there is a need to reboot the electronic device following the download of the update package and an update of firmware/software131. Thus, “reboot needed” information may be communicated to an electronic device such as, for example, a wireless mobile handset, along with an update package. An indication of a request for a reboot, along with information specifying the kind of reboot—e.g., “soft” or “hard”, may be stored in the update packagereference storage area127.
FIG. 2 is a flow chart illustrating an exemplary method of operating an electronic device, such as the[0025]electronic device109 of FIG. 1, when it accesses the update package reference storage area in a SIM card as the electronic device is powered up or restarted, in accordance with an embodiment of the present invention. The following description of the method of FIG. 2 makes reference to the illustration shown in FIG. 1. At the start of the process (block207), an electronic device, such as theelectronic device109 of FIG. 1, is powered-up or restarted (rebooted). The electronic device then executes an initialization sequence typically executed as part of an initial bootstrap operation (block209). Next, an update agent resident in the electronic device determines whether an update of the firmware/software (e.g., firmware/software131) of the electronic device is available (block211). In one embodiment of the present invention, the update agent may access an update package reference storage area, such as updatepackage storage area127 in theSIM card123 of FIG. 1, to retrieve a status flag. When set, such a status flag may indicate a request to update firmware/software, employing an update package stored in a file system in the memory (e.g., memory133) of the electronic device. The location where the update package is stored in the file system of the electronic device may also be provided in the update package reference storage area of the SIM card.
If it is determined (block[0026]211) that there is no need to update the firmware/software of the electronic device, then the regular or normal startup of the electronic device is activated (block225), and the illustrated process ends (block221).
If it is determined (block[0027]211) that an update of firmware/software is indicated, then the update package storage area of the SIM card may be accessed by an update agent, such as theupdate agent125 of FIG. 1, to retrieve metadata information used in performing the update (block213). An attempt may then be made to verify whether the metadata information in the update package reference storage area of the SIM card is appropriate and relevant (block215). If it is determined that the metadata information in the update package reference storage area of the SIM card is not authentic, or is inappropriate, the update process is bypassed, and a message may be displayed to a user to indicate that the update package reference storage area contains inappropriate data (block223). The regular or normal startup of the electronic device may then be activated (block225), and the illustrated process ends (block221).
If it is determined that the metadata information provided in the update package reference storage area of the SIM card is authentic and appropriate (block[0028]215), then the update agent may retrieve metadata information from the update package reference storage area of the SIM card (block217), access the update package and associated information using metadata information retrieved from the update package reference storage area, and prepare for the update processing. The update agent may then apply one or more update packages to the firmware/software of the electronic device, using metadata information from the update package reference storage area (block219). In addition, one or more flags may be set (or reset) to indicate success or failure of the update process. Such flags may be located in the non-volatile memory of the electronic device, or in the SIM card, and may be accessed as processing continues (block207) after a restart/reboot or power cycle.
In an embodiment of the present invention, a newer update agent may be retrieved from the SIM card, and may replace the existing update agent (block[0029]217).
FIG. 3 is a schematic diagram of an exemplary embodiment of a[0030]mobile handset309 with a file system, in accordance with an embodiment of the present invention. The exemplarymobile handset309 of FIG. 3 may correspond to theelectronic device109 of FIG. 1. Themobile handset309 may download an update package using communications means315, store the downloaded updated package into afile system325 provided byoperating system323, and populate an update package reference storage area (not shown) in aSIM card337. During the download of the update package, themobile handset309 may employ services provided by aSIM card driver331. Anupdate agent313 in themobile handset309 may also employ the services provided by theSIM card driver331 to access the update package reference storage area inSIM card337 before or during an update process, to retrieve metadata information related to the downloaded update package. TheSIM card337 may provide storage for storing and retrieving metadata information related to the update ofmobile handset309. Such metadata information may be stored by asecure loader manager327 that is responsible for managing downloads of update packages over communications means315. In an embodiment of the present invention, the metadata information stored inSIM card337 may comprise addresses of locations in the file system where update packages are stored, and where backup space for processing is provided. The metadata information may later be accessed by theupdate agent313 during power-up or restart/reboot of themobile handset309.
In an embodiment of the present invention, an initial boot sequence may be executed on a power-up or restart/reboot, before the[0031]update agent313 or thefirmware321 is activated. Specifically, theupdate agent313 may be activated immediately after the initial boot sequence and before thefirmware321.
In one embodiment of the present invention, the[0032]update agent313 may determine a need to update the firmware/software by accessing metadata information stored in the update package reference storage area in a SIM card, such asSIM card337 of FIG. 3. In a related embodiment, theupdate agent313 may determine a need to update the firmware software using information stored in thestorage311, or in thefirmware321, without accessing theSIM card337.
In one embodiment of the present invention, the[0033]update agent313 may determine that an update of firmware/software is to be performed, and may access theSIM card337 via theSIM card driver331, to retrieve metadata information in an update package reference (not shown) in theSIM card337. The metadata information may comprise authentication information such as, for example, one or more signatures (e.g., CRC values) used to verify and/or authenticate portions of the update package, or the updated firmware/software. The metadata information may also comprise, for example, the location of one or more update packages instorage331 orfile system325, and addresses of backup areas or sections instorage311. This metadata information may be employed during the processing of update packages before an update, or during an update process, and may also comprise status flags, Universal Resources Locators (URLs) in a distribution network such asdistribution network107 of FIG. 1, other update-related parameters, and the like.
In an embodiment of the present invention, an electronic device such as, for example, the[0034]electronic device309 of FIG. 3, with an update agent such as, for example,update agent313, may employ an update package reference stored in a SIM card, to save metadata information related to a downloaded update package. The update agent may access the saved metadata information during power up or restart/reboot in order to access and/or process the downloaded update package. In an embodiment in accordance with the present invention, a SIM card such as, for example,SIM card337 of FIG. 3 may be employed by an electronic device to save information about downloaded files that are stored in a file system of the electronic device such as, for example,file system325 of FIG. 3. Such information may subsequently be accessed by the update agent when the functionality of the file system is not available. This may occur, for example, during power-up or restart/reboot, when the update package may be accessed to perform a firmware/software update.
While the invention has been described with reference to certain embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted without departing from the scope of the invention. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the invention without departing from its scope. Therefore, it is intended that the invention not be limited to the particular embodiment disclosed, but that the invention will include all embodiments falling within the scope of the appended claims.[0035]