Patent ID: 7991988

Claim:
A communication device, comprising: a non-volatile memory comprising a first flag indicating boot firmware for the communication device, a second flag indicating whether a bootability check is to be executed, and a first data area storing original firmware of the communication device; an updating module configured for receiving and storing new firmware in a second data area of the non-volatile memory, utilizing the first flag to assign the new firmware as the boot firmware, and utilizing the second flag to enable the bootability check after the storing of the new firmware is completed; and a loading module configured for utilizing the first flag to assign a firmware version other than the new firmware as the boot firmware before verification of the new firmware, and loading and executing the new firmware in response to a boot up procedure of the communication device; wherein if the new firmware is executable and causes the communication device to satisfy a predetermined boot up condition, the communication device determines that the new firmware passes the bootability check, and modifies the value of the first flag to assign the new firmware as the boot firmware; and if the new firmware does not pass the bootability check, the communication device keeps the value of the first flag unchanged.