Thoughts of a Serial Tinkerer

Upgrading my Galaxy Nexus to Jelly Bean

Posted on 14 Jul 2012.

I love my Galaxy Nexus; it has simply been an outstanding device. I got the phone around Christmas time through NewEgg. Since then a number of my friends have upgraded to the Galaxy Nexus and I noticed that they were talking about OTA updates that I wasn’t getting. Last week my phone finally updated to 4.0.4 (The latest version of Ice Cream Sandwich).

Now that the Jelly Bean updates are rolling out I was really excited to check that out. My friends were getting the updates and still I wasn’t able to trigger the OTA update (even using the somewhat neat trick of clearing the data of the ‘Google Services Framework’ application and then checking for new system updates). Then I came across an article that said that some Galaxy Nexus phones are running a firmware that isn’t truly stock Android; Samsung provides that firmware, runs the OTA updates, and does a few things like adding in a Chinese keyboard. That’s when I suspected I might have the wrong firmware.

To determine for sure what firmware I had, I checked by going to the Maps app (of all things), then Settings, and then About. In the list there it told me I had the firmware, “samsung yakjuzs.” The OTA updates to Jelly Bean were only rolling out for the “yajku” and “tajku” firmware and it was pretty clear to me that Samsung was lagging pretty far behind in releasing updates on their own. I have no need for a Chinese keyboard, so I decided to flash a new set of firmware to my phone and get onto the direct-from-Google software chain.

Here are the steps I followed to change the firmware and get upgraded to Jelly Bean:

  • Perform a full backup

    adb backup -apk -shared -all -system -f <filename>

  • Use Android Media Transfer to grab photos as an extra precaution
  • Reboot phone into Fastboot mode (Power off, hold Volume Up + Volume Down and Press Power until it boots into opened up android image)
  • Plug into computer via USB
  • Confirm fastboot can see the phone with

    fastboot devices

  • Unlock the bootloader

    fastboot oem unlock

  • Download new firmware from https://developers.google.com/android/nexus/images

    wget https://dl.google.com/dl/android/aosp/yakju-imm76i-factory-8001e72f.tgz

  • Flash the new bootloader.

    fastboot flash bootloader yakju-imm76i/bootloader-maguro-primela03.img

  • Reboot with the new bootloader.

    fastboot reboot-bootloader

  • Flash the new radio.

    fastboot flash radio yakju-imm76i/radio-maguro-i9250xxla02.img

  • Reboot the bootloader again.

    fastboot reboot-bootloader

  • Flash the Android 4.0.4 image.

    fastboot -w update yakju-imm76i/image-yakju-imm76i.zip

  • Go through the Android set-up on your phone. I also went through the extra step of choosing to encrypt the phone’s filesystem.

As soon as my phone finished encrypting and booted up again, I got the notice that there was a system update (to Jelly Bean) available. If for some reason you don’t see the update notice like I did, you can attempt to force the system update by going to Settings > Apps > All, finding Google Services Framework and choosing to Clear Data. Then, go to Settings > About Phone > System Updates, you should see it say that the last check for an update was Dec 31, 1969, and then press Check for Updates. You may have to cycle through this pattern a few times (friends reported it took them two or three cycles) but you should get the update. Then you just have to go through the normal OTA update process and you’ll have Jelly Bean!