I recently bought an unlocked Galaxy Nexus from Amazon (for various reasons, I decided to stick with AT&T despite my unsavory experiences with them over the years). It came with ICS and right after first boot, the phone upgraded itself to Android 4.0.2
However, since then Google has put out 4.0.3 and 4.0.4 but they haven’t been pushed to my device yet. I don’t know if this has anything to do with the fact that this phone was purchased in Europe and is not “officially” supported by AT&T. Either way, I decided to upgrade manually. This guide documents that process.
Step 1: Download the Android SDK
Next, use the ‘android’ utility to download/upgrade platform tools. The screenshot below shows what you need.
Step 2: Enable USB debugging
You need to enable USB debugging on the Galaxy Nexus to allow the developer tools access to the phone. This can be done via Settings -> Developer Info. Screenshots below have details:
Step 3: Verify that the computer recognizes your phone
$ cd /path/to/android-sdk/platform-tools $ ./adb devices # you should see an entry for you galaxy nexus in the output
Step 4: Unlock OEM boot loader if required
WARNING: this WILL wipe out your phone. Carefully follow the on-screen instructions to complete this process.
You only need to do this step if you haven’t unlocked the boot loader before.
$ ./fastboot oem unlock
Step 5: Download factory image
Google is publishing the GSM Galaxy Nexus images here. Download the latest image (4.0.4 as of this writing) and extract the tgz using untar.
Step 7: Flash device
Thankfully, Google has started bundling a shell script with the factory image that makes this really simple. I assume that you’ve extracted and moved all files from the factory image into the “platform-tools” directory.
Now, just wait and watch. Be patient as the phone will power cycle a few times and the bootloader will reboot at least twice. But in around a minute or so, the phone should boot up into the freshly flashed image.