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 dont 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. Googles 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 Googles 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) *#*#4636#*#* or for a more permanent option grab Android System Info from the Google Market. digital nomad so many ideas so little time 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: http://developer.android.com/sdk/index.html) 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 its body opened (see photo). wget http://dl.google.com/android/android-sdk_r18-linux.tgz 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 http://developer.android.com/guide/developing/tools/adb.html). fastboot oem unlock Flashing the new Firmware The factory images for Nexus devices can be found here: https://developers.google.com/android/nexus/images make sure to choose the correct model. The commands below are for the European GSM/HSPDA+ version of 4.0.4 (yakju) wget https://dl.google.com/dl/android/aosp/yakju-imm76i-factory-8001e72f.tgz 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/image-yakju-imm76i.zip 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 17 Leo Gaggl on Google+ This entry was posted in documentation, mobile and tagged firmware, galaxy, google, nexus, samsung, ubuntu by Leo Gaggl. 16 Replies 16 Comments 0 Tweets 0 Facebook 0 Pingbacks Last reply was January 9, 2013 1. alexanderhayes View May 28, 2012 I like it. I like it a lot. I like when your blogging and when Im blogging too. Your theme is simple, readable and great :) 2. leogaggl View May 28, 2012 Thanks for the roses cant take too much credit for the theme. Had to call in a few favours from our old friend over @ http://leideritz.com/ :) 3. Julian View May 28, 2012 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.. Bookmark the permalink [http://www.gaggl.com/2012/05/galaxy-nexus-firmware-upgrade-on-ubuntu-manual/] . but i cant quite figure out how this adb backup works? could you go into more detail on this? thanks for this cool tutorial anyway! 4. leogaggl View May 28, 2012 @Julian: http://forum.xda-developers.com/showthread.php?t=1420351 Or: http://lmgtfy.com/?q=adb+backup+android+phone+full ;) The only thing you need to make sure is to turn on USB debugging on the Nexus otherwise adb wont like you. 5. Marco Silva View June 6, 2012 Ive flashed yakju over yakjuxw and went great. However, Ive lost the portuguese spell check. Is there a way to add the portuguese dictionary? Its a functionality I would like to get back Thanks for your help. 6. leogaggl View June 6, 2012 @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. 7. ANK The Elder View June 28, 2012 Thanks very much for this post!! Was very useful. Its amazing that the Android world is so fragmented that you cant 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! 8. guitarman View July 17, 2012 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, 9. Guy Steels View July 21, 2012 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 didnt 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 didnt 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 10. Kurt View July 28, 2012 Hello. 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. 11. leogaggl View July 29, 2012 @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. https://developers.google.com/android/nexus/images 12. herb View August 17, 2012 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 arent in your path (for n00bs), youll 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. Im 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. 13. Frank Benign View August 28, 2012 Thanks. Worked like a charm. 14. David Francoeur View October 24, 2012 If you look here : http://developer.android.com/tools/device.html The vendor id for Samsung should be 04e8 instead of 0bb4 Am I wrong? 15. leogaggl View October 25, 2012 @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). 16. Martin View January 9, 2013 Thanks for this topic. It works. =) And if you use 64bit OS you also have to install this ia32-libs package.