Saturday, June 9, 2012

Cyanogenmod 9 Nightly!

I am happy to say that I am running Cyanogenmod 9 (nightly, dated 20120608) on my Galaxy Nexus!

I am very happy with it, and have noticed no problems, which is pretty impressive because this is a nightly build, not even a Beta / RC. The CM9 team has done a fantastic job with this version, and stuck very close to the original ICS look and feel.

Things I am happy about:
  • The settings menu. The stock build just seems so crippled to me now, after seeing the CM9 settings. It is too expansive to screenshot, but still quite organized. You can tweak everything from display gamma settings, to the lock screen, to individual volumes, to kernel performance, to (my favorite!) the notification LED.

    Coming from the Incredible, which just had the orange and green notification LED, having an RGB LED that I can play with is great. I have a green blink for texts, slow red for Gmail, and fast light blue for missed calls.
  • The notification drawer. (I couldn't get a screenshot, because the drawer retracts before it is taken.) I really missed these widgets, and now have quick access buttons to toggle Wi-Fi, LTE (So happy about this one!), GPS, Silent/Vibrate/Loud, and Auto-Rotate.  There are other buttons you can add, but these are the ones I wanted.  Also, I tweaked the battery icon.
  • Customizable navigation buttons. I re-ordered the buttons at the bottom (to more closely match my Incredible, actually) and added the search button, which behaves the same way.
  • All of the familar 'root stuff' built right in.  Superuser (of course), Wi-fi tethering, screenshot, etc.
Over I am quite pleased, and will probably keep using this on a day-to-day basis. This is the way Android was meant to be. Can't wait for an RC!

Additional note: Of course, this comes without the Google Apps, so you'll want to download that zip from

Monday, June 4, 2012

Android 4.0.4 OTA update

A couple days ago, I started getting notifications that a system update was ready for install. This was the IMM76K (Android 4.0.4) OTA update that people had been impatiently waiting on for a while.  After making a nandroid backup (via CWM), I decided to give it a try.

The system rebooted, and went to the screen with the android's belly open and the blue spinny thing. Then he was on his back, with the dreaded red triangle.  I wasn't surprised that the OTA update wasn't going to work with my modified phone.

This excellent post on xda-developers gave links to the official OTA updates for the different versions of the G-Nex. So I downloaded the mysid IMM76K from ICL53F, and adb push'd it to /sdcard. Rebooting into CWM recovery, I tried to install the update, but it failed with:

assert failed: apply_patch_check("/system/app/VZWBackupAssistant.apk".....

I knew why it was failing. I had removed some of the VZW garbage apps that cam pre-installed. Luckily, I didn't actually delete them, I had just renamed them to .apk.REMOVED.  After putting them back1 the update installed successfully.

Another thing to note - I didn't realize it, but the xda post pointed out this important detail: Verizon OTA updates include a script that runs every boot, whose purpose is to restore the recovery image if it is not the expected stock image.  The script is at /system/etc/ and the recovery image (for flashing) is /system/recovery-from-boot.p.   Thus, if you don't wan't to lose CWM (or other custom recovery), you need to rename these files.

1 - I didn't realize it, but ADB is supported in CWM. When I looked in device manager while my phone was connected and in CWM, I saw one device just named "Full".  I manually specified the same Samsung drivers (already installed) from before, and bingo, my phone showed up in adb devices.