If you previously changed the defaultÂ recovery modeÂ with theÂ ClockWorkModÂ version to root your phone, the Jelly Bean update might refuse to setup.
You might have been informed about the update automatically, or you can check it manually with theÂ Software UpdateÂ command in theÂ About DeviceÂ setting.
Once the update is downloaded and the telephone has rebooted in theÂ recovery mode, the new update would probably fail with the following message:
assert failed: getprop(“ro.product.device”) == “m0” || getprop(“ro.bulid.product”) =
Luckily, a little trick can help you install this update without the fastidious process of removing theÂ ClockWorkMod recoveryÂ and the super-user access.
Save the new update file on your computer
Once the official update is completely downloaded, do not reboot your phone immediately. A small change is needed inside the update file so that you can install it on your phone. First, you need to copy the update file to your computer. The update is located in a protected area, so you need to copy it to a location from where you can access it from the outside world. To do so, open the application Terminal Emulator and typeÂ su then confirm the switch to super-user mode.
TypeÂ cat /cache/fota/update.zip > /sdcard/update.zip
Now get this file on your computer (connect your phone with a USB cable, or send it to a FTP or WebDAV server, or even by email, pick your favorite way).
Alter the update installation script
On your computer, edit the fileÂ update.zip. I useÂ vim editor for that, it allows me to modify directly the zip from command line, but if you are not used to this command, you can choose an friendlier editor, or maybe your desktop environment already includes adequate association if you click on theÂ zipÂ file.
The file to alter isÂ /META-INF/com/google/android/updater-script
The first lines of the file look like:
mount("ext4", "EMMC", "/dev/block/mmcblk0p9", "/system"); assert(file_getprop("/system/build.prop", "ro.build.fingerprint") == "samsung/m0xx/m0:4.0.4/IMM76D/I9300XXBLH3:user/release-keys" || file_getprop("/system/build.prop", "ro.build.fingerprint") == "samsung/m0xx/m0:4.1.1/JRO03C/I9300XXDLJ2:user/release-keys"); assert(getprop("ro.product.device") == "m0" || getprop("ro.build.product") == "m0"); ui_print("Verifying current system...");
Remove this line:
assert(getprop("ro.product.device") == "m0" || getprop("ro.build.product") == "m0");
And save the new file.
Install the update to Jelly Bean
Copy back the freshly modifiedÂ update.zip file into the /sdcardÂ directory of you phone and restart in recoveryÂ mode. To do so, shut down you device, count up to ten, then start it again by pushing simultaneously the Volume Up, HomeÂ andÂ Power keys.Â Your phone should boot intoÂ ClockWorkModÂ recovery. Install the update from the fileÂ /sdcard/update.zip. Insist if a invalid signature is detected, because by altering the file you have changed the checksum of the update archive.
Once the update process is finished, reboot your phone and let it activate the new update (the boot could take two to three minutes, don’t panic!).
Now check in theÂ About Device menu of the settings that your S3 is now happily running android version 4.1…