As a Galaxy Nexus Owner I have been waiting for months for an OTA (over the air) upgrade to the factory installed Firmware (4.0.2). I am finally sick of waiting and complaining to Google (an absolute lost cause).

After some research it turns out that (contrary to popular opinion) not every unlocked Google Nexus actually has the ‘official’ Google Firmware. Some of them have a Samsung variant (WTF !?) of the firmware. Now I really don’t want to get off the technical topic, but I personally think that this means Google is misleading their most loyal customer base. The reason I chose a Nexus device over the (from a hardware perspective) superior HTC One X was the fact that they were supposed to have the official Google Firmware and I did not have to wait forever for bugfixes from the manufacturers.

There are a reportedly several different versions out there. Google’s ‘official’ build for the GSM version of the Galaxy Nexus is named ‘yakju’. Samsung builds ‘yakjusc’, ‘yakjuxw’ and ‘yakjuux’. While they appear mostly the same, only Google’s yakju build is likely to get updates as they happen. Go figure why there was a need for others … :(

To find out which version your Nexus uses you can use this key combination (in the phone app)


or for a more permanent option grab “Android System Info” from the Google Market.

Disclaimer: this procedure obiously has the potential to ‘brick’ your mobile. Only attempt this if you are absolutely comfortable with flashing device firmware. Proceed at your own risk !!! If you decide to proceed – BACKUP YOUR DEVICE FIRST ! Check the documentation for ‘adb backup‘.

All the notes below are for GSM (HSPDA+) NEXUS (GT I9250 – maguro) devices !

Android SDK Install

The Android SDK can be downloaded from the Androide Site:

Android Fastboot Mode

For all the following procedures to work the device needs to be in ‘Fastboot Mode’
How put your phone in fastboot mode:

  1. Power off the phone
  2. Hold the Volume Up Key + Volume Down Key pressed and at the same time press the Power button.

You should now see an Android robot with it’s body opened (see photo).

tar -xzf android-sdk_r18-linux.tgz
android-sdk-linux/tools/android update sdk --no-ui
#test fastboot mode
#this should show the serial number of the connected device
cd android-sdk-linux/platform-tools/
fastboot devices

Adding the USB Driver definitions for the Galaxy Nexus

vim /etc/udev/rules.d/70-android.rules
#add this line:
SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"

Unlocking the Bootloader

NOTE: This command will erase the whole device. Make sure backups have been taken before (check the ‘adb backup’ tool

fastboot oem unlock

Flashing the new Firmware

The ‘factory images’ for Nexus devices can be found here: – make sure to choose the correct model. The commands below are for the European GSM/HSPDA+ version of 4.0.4 (yakju)

tar -xzf yakju-imm76i-factory-8001e72f.tgz
fastboot flash bootloader yakju-imm76i/bootloader-maguro-primela03.img
fastboot reboot-bootloader
fastboot flash radio yakju-imm76i/radio-maguro-i9250xxla02.img
fastboot reboot-bootloader
fastboot -w update yakju-imm76i/

After the last step the handset will reboot and you should be presented with a Google “Stock” device and go through the normal Android setup wizard. As it should have been when I purchased this “Google” branded device in the first place – thank you Google (and of course SAMSUNG) for wasting my time !

If you want to lock your bootloader after the upgrade (not necessary) you can go into Fastboot Mode again and issue the following command:

fastboot oem lock

Leo Gaggl

ict business owner specialising in mobile learning systems. interests: sustainability, internet of things, ict for development, open innovation, agriculture


  • 💬 Ian Liu Rodrigues

This Post Has 17 Comments

  1. alexanderhayes

    I like it.

    I like it a lot.

    I like when your blogging and when I’m blogging too.

    Your theme is simple, readable and great :)

  2. leogaggl

    Thanks for the roses – can’t take too much credit for the theme. Had to call in a few favours from our old friend over @ :)

  3. Julian

    cool that you post this guide just as i am searching for it ;) trying it out now! i was pretty pissed when i found out that samsung still puts their own builds on the phone..

    but i can’t quite figure out how this adb backup works? could you go into more detail on this?

    thanks for this cool tutorial anyway!

  4. Marco Silva

    I’ve flashed yakju over yakjuxw and went great.

    However, I’ve lost the portuguese spell check. Is there a way to add the portuguese dictionary?

    It’s a functionality I would like to get back…

    Thanks for your help.

  5. leogaggl

    @Marco Silva: By adding the Portugese as an input language you should get your pt dictionary back

    Settings > Keyboard & Language > Android Keyboard > Input Languages

    Portugese is certainly available.

  6. ANK The Elder

    Thanks very much for this post!! Was very useful.

    It’s amazing that the Android world is so fragmented that you can’t even go and get a device with a big Google logo on its box without getting a somewhat incompatible firmware :( And thank you Google+Samsung for wasting my time, too!

  7. guitarman

    You just saved me waiting forever for a proper update from my providor. Thank you! The only thing I would add to your instructions is that I needed to issue sudo in front of some of those commands. Otherwises spot on,

  8. Guy Steels

    Thx for this excellent guide. I compromised on hardware and bought a Galaxy Nexus yesterday for the very same reason as you. I wanted an open phone which is up-to-date with the latest Android version, without crappy Sense or Touchwiz layers and without any interference from manufacturers (they should stick to their core business which is making hardware and keep their hands of software). I rooted my previous phone (HTC Desire) using Cyanogenmod but really didn’t want to go down that path anymore with my new phone. The Cyanogenmod guys do a great job, but it takes them a lot of time before they can reverse-engineer new Android versions. When setting up my phone yesterday I was trying the system update like a maniac as I wanted the Jelly Bean upgrade. After some research I found out why I didn’t get past version 4.0.4.

    Just upgraded my firmware using your guide. All went very smoothly. My Galaxy Nexus is running Jelly Bean now. #win

  9. Kurt

    I have a brand new nexus bought a year ago.
    Never used it, as nothing but phone and camera on it. No apps possibel to install – google play close when I download and run it. No google play on phone in factory settings. No maps, no nothing.
    In about phone is no update avbl.
    Baseband is I9250xxkk6
    Build is full_maguro_eng 4.0.1 icl23d 288 test keys
    model is gt-I9250_EUR_XX
    No ota, no way to upd.
    A Nokia 100 have more features than my useless Nexus.
    Would you by any chance recognice the problem?
    Regards Kurt in Denmark.

  10. leogaggl

    @Kurt: Depends what you want to do. If this is really a brand-new unit I would have taken it back to be replaced under warranty. The build name certainly sounds fishy to me. Did you buy this from a reputable dealer ?

    Otherwise you would have to flash this with the Google Stock Images linked in the blog above.

  11. herb

    I followed the guide and got it worked!

    A few caveats:
    – I had to use sudo for the commands because I was getting permission errors otherwise.
    – If the commands aren’t in your path (for n00bs), you’ll have to type in the path as well for the command. E.g sudo ./fastboot devices
    – I had problems restoring the entire backup using the adb. I’m not sure if it was because I stopped it at one point due to it seeming not to work. When I turned off usb debugging it seems to work but only a small portion was restored.

  12. Frank Benign

    Thanks. Worked like a charm.

  13. leogaggl

    @david That might be right for Samsung phones such as S2 or S3. But the ‘NEXUS’ series are Google devices (some of whuch happen to be manufactured by Samsung).

  14. Martin

    Thanks for this topic. It works. =) And if you use 64bit OS you also have to install this “ia32-libs” package.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.