Old Articles About Me
ALAN ZISMAN ON TECHNOLOGY
My Android phone's software is up to date - but it was a challenge
By Alan Zisman © 19 August 2015
A lot of folks I know own iPhones but I use an Android phone. Partly to buck the crowd. Partly because I like having the ability to simplify the home screen and customize it in ways that are at best difficult with iOS. Partly because I use a low-cost provider (Canada's WIND Mobile) that uses a frequency band that initially wasn't supported by Apple - so an iPhone wasn't an option when I signed up.
Besides, while I use a Mac for most of my computing and own an iPad (though I no longer use it much), I don't want to feel like I'm trapped in the Apple ecosystem.
My phone is a Nexus 5 - a late 2013 model, but it doesn't feel particular dated to me. A fast-enough processor, a high resolution-enough 5" screen. Like other Nexus models, it was built to Google's specifications and came with bare-bones Android - no software added by the manufacturer - in this case LG. Unlocked - usable with any carrier, in North America or abroad.
When it was released, the Nexus 5 sold for US$349 - a bargain price for a high-end phone that wasn't being subsidized by locking the user into a multi-year carrier contract. The next generation, the Nexus 6 was released in late 2014, but it's 6" screen is too big, in my opinion, and its US$649 price is too high. I haven't seen any other phone that screamed at me that I needed to have it.
But not only don't I want to be locked into Apple's iOS ecosystem, I also wanted to look for alternatives to Google.
My Nexus 5 is running CyanogenMod, an open-source Android-based alternative, which offers interface and other tweaks on options not found in stock Android. Some are simple - for instance, I appreciate the Quick Unlock option, so from the lock screen I just tap my PIN without needing to tap the Return button. (That's how it works by default in iOS but not in stock Android). A little thing - but something I probably use a couple of dozen times a day. CyanogenMod is full of little details that all together make a difference. (Here's their 'WhyMod' page).
I'd been running CyanogenMod version 11 - a version built on Android 4.4 'KitKat'. It was fine, but Android had moved on, to version 5.0 and 5.1 'Lollipop', with a new version - 'Marshmallow' in the works. New user interface design model. Promises of better battery life and application performance. Lollipop first became available in November 2014. If I wanted to stick with CyanogenMod, though, I would have to wait for a CyanogenMod-customized version of Lollipop, though - for CyanogenMod version 12.
My Nexus 7 tablet, running stock Android, happily updated itself over the air to the current Lollipop version. It turns out, though, that CM11 isn't prepared to do the same. It checks for updates and finds nothing.
It's possible to manually install an Android factory image ROMs - first step is to find a version for your phone model - many but by no means all phones are supported but the Nexus phones and tablets generally are. The instructions for getting the ROM onto your phone can seem daunting however, involving downloading a fastboot tool, connecting your phone to a Windows, Mac, or Linux computer and typing a series of instructions into that computer's command line or terminal. I've done it, but it's not for the faint at heart.
(Alternatively, you can copy the ROM image from your computer to the phone's storage, boot the phone to Recovery mode and install from there. Have a backup!)
CyanogenMod simplified all that, releasing an Installer tool for Windows or Mac, which promises to work with a range of phone models, again including my Nexus 5. I connected the phone to my Mac and opened the Installer; it identified my phone as a supported model, downloading the CM ROM appropriate for my phone and installed it. If it had needed to unlock the bootloader, it would have done that. No muss, no fuss. Easy!
Except it never gave any indication of what version of CyanogenMod it was installing - and at the end of the process, I had a brand new, ready to customize copy of CM11, just the same as what I had started with.
Just in case CM hadn't updated their Mac Installer version, I tried again with the Windows Installer - with the same results.
Maybe that's because CM doesn't seem to yet have a stable version of CM 12.1 for many (or any?) phone models. For the Nexus 5 (aka 'hammerhead'), for instance, it lists 'nightly' builds. I'd rather install a stable version, but what the heck. I was prepared to try one of these. (After all, I can always go back to CM11 using the installer app - it's not like I haven't already done that a couple of times this week!)
CyanogenMod and other Android-replacement projects are built on top of what Google refers to as as AOSP - the Android Open Source Project; a version that - like other open source projects - can be freely downloaded and customized. The trick is that this doesn't include widely-used Google utilities like Gmail, Google Maps, etc. No worry - you can just go to the Google Play app store and download them. Except AOSP doesn't include the Google Play Store.
So along with the proper Android ROM, I wanted GApps - a set of installable Google Apps. Techbeasts.com offers a page with a variety of different sets of Google Apps, from bare-boned to full-meal-deal. I downloaded a mid-sized set - I don't need or want everything Google offers, and could always install anything I thought was missing (once I had the Google Play Store included).
One more thing.
If you're going to mess with custom ROMs, I really recommend installing the TWRP Manager (Team Win Recovery Project) on your phone. It can be run from the phone prior to updating, and allows you to backup your current installation for recovery if something goes wrong, and to set the options for installation from a more friendly interface than you'll get with the stock manual installation.
I'm glad I used - in particular, I'm glad I made a backup, as you'll see.
So I downloaded the latest CM12.1 'nightly' and the GApps package on my Mac; both download as zip-format archive files, and the instruction is to copy them over to the root of the storage on the phone. My Mac automatically uncompresses downloaded zip files. No sweat. It's easy to re-archive the uncompressed folders.
Also easy to copy them over to the phone - on my Mac, when I connect the phone, up pops the Android File Transfer utility (not needed on a Windows system) allowing for drag and drop file copies.
To boot the phone to recovery mode, shut it down then hold down the volume switch while pressing (and holding) the power switch. After a few seconds, it will restart in a special mode showing a green android lying on its side with a front panel open for repairs. Toggle between Start/Power Off/Recovery Mode/Restart bootloader using the volume up/down switch, picking the desired option - Recovery Mode to install the new software - by pressing the power button.
With TWRP installed, the Recovery Mode option loads that program instead of the standard Android recovery screen. Its Install option gives a file manager, letting you pick the zip files to install. It handles necessary other steps of wiping the existing installation and caches automatically.
Except that after wiping my existing installation, the installation of the new zipped ROM files failed. Luckily, I could use its restore option to restore from my backup. This gave me (yet again) a fresh install of CM11.
I tried a couple of times with the same frustrating results.
I wondered if the problem was with the Mac uncompressing the downloaded zip files and me re-compressing them and using these new versions. Instead, I downloaded the same files on a Windows system (in my case, a virtual Windows 10 system, using Parallels Desktop on my Mac). These didn't auto-uncompress. I could drag the downloaded files over to my Mac desktop, copy them over to the phone.
Ta da! Success! Once again, I found myself with everything on my phone erased - but this time, after it rebooted (note that the first restart is always very much slower), I had the new version of CyanogenMod, based on the current Android Lollipop 5.1.1. Build date August 18 2015 (yesterday).
Apparently, CyanogenMod is disappointed that only a small percentage of CM11 users have updated to CM12. They wonder whether it's because users don't like the new Human Design interface features. Personally, my guess is that it's because it isn't as easy as it ought to be to update!
Older blog postings....