Sunday, April 1, 2012

How to manually upgrade your Galaxy Nexus to Android 4.0.4 (OTA) in 4 easy steps

The Android 4.0.4 is gradually rolling out OTA (over the air) , but if you are impatient you can update manually. I had previously unlocked my boot loader and installed su (superuser), but I otherwise like to keep things as stock possible (no custom ROMs, no kernel hacks, no custom recovery manager).  If you have a similar setup then this upgrade is very simple; it can actually be completed without connecting the phone to a computer, so it really is OTA.

  1. You have a GSM Galaxy Nexus (i9250)
  2. You are currently running Android 4.0.2 (ICL53F)
  3. You have the stock yakju ROM (How to tell)
  4. Your bootloader is unlocked
  5. You have root access (su/super user is installed) 
  6. You have a terminal application installed (e.g. Android Terminal Emulator)
  7. You *have not* replaced the stock recovery system/partition with a custom recovery (like Clockwork Mod)
  8. You have 15 - 20 minutes to spare
  1. Download the OTA update file for Android 4.0.2 (ICL53F) -> 4.0.4 (IMM76D) directly to your phone (you are downloading directly from Google, not from this blog).  The file is about 40MB so you may want to do the download over wifi.
  2. Copy the update file to the /cache folder (this requires super user permission)
    • Open a terminal window
    • su
    • cp /sdcard/Download/ /cache/
  3. Boot into recovery mode
    • Power off your phone
    • While the phone is off, press and hold Volume Up + Volume Down + Power
    • Use the volume button to scroll through the menu options and press power to select "Recovery Mode"
    • Once the Recovery Mode screen has come up (green android with red warning sign), press Volume Up + Power to bring up the menu
  4. Install the update from the /cache folder
    • Use the Volume button to select the "apply update from /cache" menu option and press power to invoke it
    • Use the Volume button to select and press the power button to start the update
    • Once the install is complete, select "reboot system now"
Warning: The upgrade caused me to lose root access. Apparently the setuid bit was removed from /system/bin/su.  This was fixed by doing the following. It assumes you are familiar with adb, fastboot and Clockwork Mod Recovery. See my next post for details on how to restore root access.
If you have anything important that isn't stored in the cloud, please back it up before you start. You never know what might go wrong.  If something does go terribly wrong, and you need to start over from scratch.  The Android 4.0.4 Factory Image for the Galaxy Nexus is now available as well.

Oh, and before you go, this "worked for me", but your mileage may vary. I take no responsibility if you phone stops working, explodes or tries to take over the world. Caveat Emptor!


Anonymous said...

Could you adb push the zipfile to /cache, thus allowing the same steps to work even without root?

adb push /cache

Marc Richards said...

@Anonymous. You need root priviledges to be able to write to the /cache folder and adb doesn't allow you to use root privileges if you are running the stock android build.

The simplest workaround is to temporarily boot into a custom recovery image like ClockworkMod and then use adb from there. However your bootloader needs to be unlocked for you to boot to a custom recovery in the first place and most people who unlock also have su installed...but I guess for those who dont, adb + Clockwork would do the trick.

Unknown said...

I’m wondering how I might be notified whenever a new post has been made. I’ve subscribed to your RSS feed which must do the trick! Have a great day! Xim Xim

nasa said...

where is cache folder?i can not locate..cache directory lg g2 is rooted

Post a Comment