Friday, July 13, 2012

How to easily upgrade your Galaxy Nexus to Android 4.1 Jelly Bean



This tutorial is mainly dedicated to Canadian owner of Galaxy Nexus phones or any owner of a GSM/HSDPA+ version of this phone (I9250) who wants to upgrade to Jelly Bean without waiting for monthes.
Update: you can use this proces to update other versions of Google devices like the Nexus S to any version of Android available from Google website.

It is a very simple process which uses only official Google tools, Firmware and tutorials.

DISCLAIMER: The following process will erase all data on your phone, and may void your warranty. So backup your data and do it at your own risk. I'm not responsible for anything.

The tutorial works with Linux and Windows.

First you have to update your USB config on your Linux box (even if adb already worked). Just create the file has described in “Configuring USB Access” in this page: https://source.android.com/source/initializing.html#configuring-usb-access
Follow only instructions from the “Configuring USB Access” section. All other instructions in this page have nothing to do with what we are doing here.
For windows, using USB drivers provided by Android SDK (often call adb driver) will be good. To download the USB driver, go to http://developer.android.com/sdk/win-usb.html, and go to http://developer.android.com/tools/extras/oem-usb.html#InstallingDriver to see how to install it. When you have the list of the 3 available drivers, instal the "bootloader" one.

Then, you need fastboot and adb software. Fastboot and  adb are available and already compiled in Android SDK ( download it http://developer.android.com/sdk/index.html ). Note that fastbook and adb programs must be in your path. You will find it in platform-tools folder in the sdk. To do that, unzip the SDK somewhere, but avoid spaces in the path to the SDK (a simple solution may be to put the SDK in your home directory), and add "platform-tools" to your path (here is how to add a directory to your path for Linux and windows)

Now we have to download the full firmware for Android 4.0.4 from Google server. We need the “yakju” version of android 4.0.4 available here: https://developers.google.com/android/nexus/images#yakju
Since Android 4.1.1 image is now available, you can directly download the 4.1.1 version, follow the same process to install it and avoid the upgrade process at the end.

Everything is now ready to start upgrading

First thing first, you have to unlock your phone. It's really easy, and Google describe how to do on this page : https://source.android.com/source/building-devices.html.
Since you already have fastboot and adb from Android SDK in your path, jump directly to “Booting into fastboot mode” section. Use the key combination described in the table, for “maguro”: Press and hold both Volume Up and Volume Down, then press and hold Power.
When a screen with some information is displayed, plug your phone on your computer using your USB cable and run this command:
fastboot oem unlock
If the process goes well it should say so. If it hangs saying it is waiting for the device, you may not have the good USB configuration/driver.

Once your phone is unlocked, unzip the “yakju” image you downloaded anywhere you want. From a command prompt, go in the created folder, and run flash-all.sh . This is a script for Linux (or cygwin). If you use Windows, can run the script from a cygwin terminal. Just download Cygwin installer at http://cygwin.com/install.html install it, and then, open a Cygwin terminal.
Wait until the installation is completed. It took 100 seconds for me.

Then you can reboot… and voila, you have Android 4.0.4 running.


Now you have to upgrade to 4.1.1. The first times you will check, it will say it’s up to date and no update is available.
You may have to make the following operations a few times to see the update for 4.1.1:

  • go in:/settings/apps/all/google services framework/
  • once it opens clear data and force stop
  • run "/settings/about phone/check for updates" to see if the update is available.

When it says an update is available, just accept it and the installation of Android 4.1.1 Jelly Bean will start.

That’s that simple. The good thing is that starting now, you will receive all Android upgrades as soon as Google will release them. Isn't it fantastic?

If you have any question, leave a comment.