1. A computer-readable storage medium comprising instructions for updating firmware or software in a mobile handheld electronic device, the computer-readable storage medium comprising: an update address block of memory, an update address stored in the address block of memory identifying where a package of update information for use by an updating software is stored in the mobile handheld electronic device; a return block of memory comprising a value to be returned when updating the electronic device has been completed; an indicator block of memory comprising a plurality of status indicators; wherein contents of one or more of the update address block of memory, the return block of memory, and the indicator block of memory are received by the mobile handheld electronic device before updating of the firmware or software; and wherein if it is determined that applying the package of update information updates the updating software based on at least one of the plurality of status indicators, the mobile handheld electronic device then executes instructions to cause the mobile handheld electronic device to perform a method comprising: before the updating software is modified, saving a copy of the updating software in a reserved flash bank within a particular flash memory section of non-volatile memory; after saving the copy, processing the package of updating information that updates the updating software; and after processing the package of update information, completing a tri-phase boot process using an update agent boot within the particular flash memory section, the tri-phase boot process involving a subsequent initialization, a validity check, and a branching functionality to branch between the updated updating software and the saved copy of the updating software, both within the particular flash memory section, based on the validity check.