Thursday, March 29, 2012

Upgrading Globe Nexus S (i9023) to 4.0.4

Doing this now. These instructions should work for i9023 devices (like the one from Globe Telecom).
An new official update IMM76 (Android 4.0.4) is poised to roll out for the Nexus S. The update file, which weighs 18MB, can be downloaded directly from Google's servers and applied only over stock IML74K (Android 4.0.3):

The procedure didn't work for me. After selecting recovery, it brought me to a blank screen. It turns out the 4.0.3 recovery has a bug that doesn't turn on the backlight but I was able to see the words by shining a flashlight angled from the bottom to the screen. Nevertheless, I got the status 7 error when I tried to flash the zip file. xda member oldblue910 has an explanation:

Beginning with the 4.0.3 -> 4.0.4 OTA update, you are NO LONGER ABLE TO FLASH OTA UPDATES MANUALLY IN STOCK RECOVERY. IT WILL FAIL 100% OF THE TIME. The only way to flash OTA updates on 4.0.3 and later versions using stock recovery is to wait for the OTA notification on your phone, then tap "Reboot and Install".
If this pisses you off, you have the option of unlocking your bootloader, installing either a stock Gingerbread recovery or ClockworkMod recovery, and then flashing the OTA updates manually.
The alternative, which I will do after holy week, will be to flash the 4.0.4 factory install images that was just released by Google. Note that this is only for soju devices, which includes the Globe Nexus S i9023. The downside to this is that it will wipe out all your apps and data unlike OTA. It would be best to wait for the OTA if you don't want to spend a day restoring all your apps. Anyway, you'll end up with a fresh factory state which may be a good thing. The instructions as follows:


SUCCESS! I am now running 4.0.4. The procedure went very smoothly without errors or glitches. I used the factory install images method to get to 4.0.4. The entire process took less than 3 minutes (assuming all the files and sdk have been downloaded and installed).

Preparatory steps:

  1. Use Astro File Manager to backup all your apps.
  2. Install SMS Backup to backup your SMS messages.
  3. Connect the phone by USB cable and copy the DCIM folder (pictures), SMSBackupRestore (SMS), backup (Astro Apps Backup).
  4. Go to System Settings -> Developer options -> USB debugging on
  5. In your PC, install the Android SDK and platform tools. You have to be able to enter the "adb devices" command in your PC and see your phone.
  6. Copy the three zip files that are inside the soju-imm76d-factory-ca4ae9ee.tgz file to the platform-tools folder where adb is.
  7. If step 5 works, then you may type the following on your desktop to start the procedure.
Jasons-MacBook-Air:platform-tools jgngo$ ./adb reboot bootloader

This was my device information:

product name - herring
hw version - Rev 52
bootloader i9020xxkl1
baseband - i9020xxki1
carrier info - xse
lock state - Locked

Since the boot loader was locked, the first step was to do:

./fastboot oem unlock

This step requires you to confirm on your phone that you want to reset all data. Now you can just follow the commands to flash the factory images. I included the outputs so you know what to expect. The ones in bold are the commands that I typed.

Jasons-MacBook-Air:platform-tools jgngo$ ./fastboot flash bootloader bootloader-crespo-i9020xxkl1.img
sending 'bootloader' (1536 KB)...
OKAY [  0.241s]
writing 'bootloader'...
OKAY [  0.348s]
finished. total time: 0.589s
Jasons-MacBook-Air:platform-tools jgngo$ ./fastboot reboot-bootloader
rebooting into bootloader...

OKAY [  0.001s]
finished. total time: 0.001s
Jasons-MacBook-Air:platform-tools jgngo$ ./fastboot flash radio radio-crespo-i9020xxki1.img
sending 'radio' (12288 KB)...
OKAY [  1.794s]
writing 'radio'...
OKAY [  1.695s]
finished. total time: 3.490s
Jasons-MacBook-Air:platform-tools jgngo$ ./fastboot reboot-bootloaderrebooting into bootloader...
OKAY [  0.001s]
finished. total time: 0.001s
Jasons-MacBook-Air:platform-tools jgngo$ ./fastboot -w update 
archive does not contain 'boot.sig'
archive does not contain 'recovery.sig'
archive does not contain 'system.sig'
Bootloader Version...: I9020XXKL1
Baseband Version.....: I9020XXKI1
Serial Number........: 30337519A9C100EC
checking product...
OKAY [  0.001s]
checking version-bootloader...
OKAY [  0.001s]
checking version-baseband...
OKAY [  0.001s]
sending 'boot' (3444 KB)...
OKAY [  0.539s]
writing 'boot'...
OKAY [  0.448s]
sending 'recovery' (3776 KB)...
OKAY [  0.584s]
writing 'recovery'...
OKAY [  0.488s]
sending 'system' (282046 KB)...
OKAY [ 36.586s]
writing 'system'...
OKAY [ 31.748s]
erasing 'userdata'...
OKAY [  0.226s]
erasing 'cache'...
OKAY [  1.992s]
finished. total time: 72.617s

After this, the phone should have already restarted and began to boot. Congratulations, you have a fresh factory installed Nexus S running Android 4.0.4.