Thursday, September 20, 2012

Hacking Galaxy Nexus to flash "yakju" version


Why to flash "yakju"?
Well, that is for the sure a good one. If you have a Galaxy Nexus, then probably you bought it to free your soul from the HW manufacturer control, into Google's geeks free world. But then, you might have discovered that not all Galaxy Nexus's firmwares are maintained by Google; some of them are maintained by Samsung. That must have been a turn down for you as it was for me :s
Apparently, yakju is one of those maintained by Google for GSM/ HSPA+, takju is the same, adding Google Wallet support for it.
I knew all this when I knew that the new JellyBean Android 4.1 was released for Galaxy Nexus, but found no updates for my device!

How to tell which version do I have?
A couple of applications can do this for you, one of which is "Android System Info". Install it and go to the "System" tab, and choose the BuildInfos, under "product" you'll find your version

Tools you will need
fastboot, adb. These are development tools that comes with Android's SDK. You will find it everywhere on the internet.
After you download them, enable USB debugging on your device from settings => Developer Options.
You can do a quick test by opening your terminal, and executing adb devices it should print the ID of your device, something in the following format

List of devices attached 
0A3CX02B180XXXXX device


Backup you data
The process will wipe out everything. You need to backup everything before missing around with your phone. I even made a backup of the SW image. The back up list will definitely change from one user to the other, here is a small list i made:
1- SMS: Use SMS Backup & Restore, this tutorial was a great help.
2- Photos & Videos: Transfer them to your PC.
3- WhatsApp: WhatsApp already keeps a backup of your messages, you can force it to do a backup from the settings.
4- Call logs: Even call logs can be backed up. Check this tutorial

Make a backup of your system images
To make a backup of your system images, you need another custom bootloader, other than the one provided by Google/Samsung. A bootloader is a piece of SW that checks the OS image's integrity, and loads it.
Download this bootloader image  and copy it to the same folder as the fastboot and adb, then follow the following steps:

  1. Boot your device into the fastboot mode. Do this by shutting down your device, then pressing the volume up, volume down and power buttons at the same time.
  2. Unlock the bootloader. The bootloader is originally locked to avoid any missing around with the system images. Unlocking will wipe away all your data, and it will prompt your for a confirmation before it goes on. To unlock your device, execute this command fastboot oem unlock, the device will prompt you if you really want to do this. Use the volume up/down to move to the YES, and press the power button to confirm.
  3. Reboot the bootloader: fastboot reboot-bootloader
  4. Boot into the OS normal mode: fastboot reboot
  5. Reboot into fastboot mode, same as 1
  6. Boot from the custom bootloader: fastboot boot recovery-clockwork-5.5.0.2-maguro.img
  7. From the menus, choose to backup your images. They will be on /sdcard/clockworkmod/backup.
  8. Move the backup images to your PC: adb pull /sdcard/clockworkmod/backup your_path/Nexus_backup

Flash the new images
Download the new images from https://developers.google.com/android/nexus/images . I decided to download IceCream Sandwich version, although I'm targeting JellyBean, to test the OTA updates and make sure i'm now in Google Geeks' hands.

  1. Enter fastboot mode.
  2. Flash the new bootloader: fastboot flash bootloader bootloader-maguro-primela03.img
  3. Reboot the bootloader: fastboot reboot-bootloader
  4. Flash the radio image: fastboot flash radio radio-maguro-i9250xxla02.img
  5. Reboot the bootloader: fastboot reboot-bootloader
  6. Update the system image: fastboot -w update image-yakju-imm76i.zip
Your device will restart, and Voila, you have a Google firmware, enjoy OTA updates :)

0 comments:

Post a Comment