Phone geek-out!

As you know, I've been running Cyanogenmod 10.2 on my phone lately. It is an open source variant of Android 4.3. It runs smoother, faster and with longer battery life than the OEM Android 4.3 that Samsung + T-Mobile provided. However, I knew that Android 4.4 has performance and battery life improvements over 4.3 so I was curious how Cyanogenmod 11 would run on my phone. Problem was, CM 10.2 is the most recent stable build for my phone. CM 11 had nightlies and monthlies but no stable or release candidate builds. Finally, my curiousity got the better of me. If CM 11 didn't run well I could always revert back to 10.2. That's one of the nice things of having an unlocked bootloader - you can run any OS you want, forward or backward.

CM changed the way they target builds for my phone, a Samsung Galaxy Note 2 T-889. They used to have a separate build for every carrier. For my phone it was t0ltetmo, and the Cyanogenmod auto-installer selects this build. Now, they have 1 build for GSM LTE regardless of your carrier. This is t0lte. It has no stable release, nor any milestone, but it does have current nightly and the most recent snapshot is dated 2014-10-08. I opted for this snapshot. Since CM 11 is based on Android 4.4, you also need a new version of Google Apps. This was a manual install using the CWM bootloader I installed when I installed CM 10.2. Here are the instructions. In a nutshell:

  • Back up any phone data you want to keep
  • Download the CM and Google Apps ZIP files to your PC
  • Boot phone to CWM recovery
  • Use CWM to reformat the phone
  • Use CWM to mount the /sdcard0 or /data partition (internal eMMC storage)
  • Use ADB from your PC to copy the ZIP files to the phone via USB
  • Tell CWM to install the CM ZIP
  • Tell CWM to install the Google Apps ZIP
  • Tell CWM to reboot the phone
  • I use Titanium Backup, which backs up to my phone's external SD card. And one of the nice things about an external SD card is wiping the phone doesn't touch it. so I had an easy way to restore my apps and data into my fresh CM 11 build. However, be careful - restoring system apps or data into a different version of Android can break stuff.

    CM 11 runs smoother and faster than CM 10. It's the best OS I've yet run on my phone - it transformed my phone in terms of responsiveness. And all features are working well - GPS, WiFi, mobile data, audio, SD card, etc. Even the dreaded camera hang bug from CM 10.2 seems to be fixed. This is definitely a thumbs-up, all-in review for CM 11.

    However ... nothing is perfect ... there were 2 problems, both solved ...

    I noticed the Google Play app was hogging half my CPU, burning down my battery. I solved this using the CM 11 Privacy Guard feature. This enables you to revoke individual permissions from any app, including built-in system apps. The problem is, this version of Google Play has a bug: it is constantly waking up in the background, never letting the phone sleep. There's no reason to let it do this. I revoked (denied) the Wake up and Keep awake permissions from Google Play. This fixed the problem and restored long battery life.

    Later I noticed that while listening to music with headphones plugged in, the music would stutter and stop as soon as my phone screen turned off. This never happened with Android 4.1, 4.3 or Cyanogenmod 10.2. It happened in all apps - PowerAmp, Google Play and Apollo. Strangely, this did not happen when playing via Bluetooth on my car stereo. It happened only when playing on wired headphones. The fix was simple. I use Poweramp for all my listening, since I don't stream or listen online. I make my own high bit rate MP3 files and store them in directories on my external SD card. Poweramp has several settings that affect this situation, namely:

  • Thread priority: I tried this but it had no effect
  • Audio buffer: I increased to 750 ms but it had no effect
  • Wake lock: this solved the problem
  • Apparently, CM 11 sleeps more aggressively (no surprise, given its longer battery life) so Poweramp needs a wake lock to keep playing when the device screen is off. However, Poweramp seems to use its wake lock properly - it releases it when it's not playing. So this doesn't impact battery life.

    Later in the day, I did some phone hacking with my daughter, but I'll discuss that here