Valid HTML 4.01 Transitional

Samsung Galaxy S5
Upgrade to CyanogenMod-13

Jim Carter, 2016-12-17

Android and CyanogenMod version cross-reference, from Wikipedia's Android version history and CyanogenMod history.

Code Name Android Version CyanogenMod Version
Lollipop 5.1 2014-11-12 12.1 2015-04-16
Marshmallow 6.0 - 6.0.1 2015-10-05 13 2015-11-23
Nougat 7.0 - 7.1.1 2016-08-22 14.1 2016-11-08

I have been very slow upgrading CyanogenMod and am coming in at the very end of CM-13's life. As of 2016-12-17, CM-14.1 based on Android-7.1.x Nougat is available for klte (my chassis) but is not yet feature complete. My strategy will be to upgrade to CM-13, then watch for a reasonable version of 14.1 and install that soon.

The latest snapshot image for CM-13.0 is dated 2016-10-13, with a coordinated CyanogenMod recovery image. No nightlies any more for CM-13.0; nightlies are for CM-14.1.

The following is a condensation from the initial CM-12 history, omitting blind alleys and screwups. As always, the CyanogenMod installation page for klte is authoritative and in case of any differences you should follow that page, not this one. Do not try this on a chassis that enforces boot images signed by the carrier, specifically AT&T or Verizon cellphones, because CyanogenMod images are obviously not signed by the carrier.

Since my phone already has TWRP Recovery, I am going to use that to upgrade to the latest recovery version, and then to install CM-13 and Google Apps. I will not mess with Heimdall or Odin to flash the images over the USB connection. However, I think it's going to be important to first upgrade my Android SDK, specifically ADB.

Finding and downloading image files. Total download size 792Mb. I checked the checksums of all files and they were not corrupt.

Android SDK

CM wiki page on ADB. It's part of (a very small part of) the Android Software Development Kit (SDK). Download Android Studio from Google's site, except if you're not actually developing apps, scroll down to the bottom, find tools_r25.2.3-linux.zip, and just download and install that. Only 264Mb.

Yeah, where's adb? Not in the collection downloaded. But wonder of wonders, the SuSE Build Service has the android-tools package, version 5.1.1_r8 (134kb). No weird dependencies. You get adb, fastboot, a udev rule, 4 docs files, and that's it. I installed it on Xena and Jacinth.

CyanogenMod Recovery

Download page. I'm downloading the snapshot images dated 2016-10-13, currently the last one for CM-13, since development effort has shifted to CM-14.1 based on Android-7.1.x Nougat. It has a direct link to a recovery image (10Mb). Copy this image to /sdcard (on the phone). adb push recovery.img /sdcard/ or copy with any other convenient method, and similarly for the CM-13 zip file and Google Apps. Mind the trailing slash on /sdcard/ . Copy speed is about 3Mb/sec. For paranoia, use sha1sum to hash the file in the download directory and on the phone. Yes they are equal.

CyanogenMod-13

The same page has a direct link to the CM-13 image (332Mb). Copy this image to /sdcard (on the phone).

Google Apps

CM wiki page for Google Apps. You need the Google Apps version for your Android version because the API gets updated. For CM-13 on klte they recommend to download from OpenGapps, for ARM (not ARM64, klte is a 32bit processor), Android-6.0, nano variant (166Mb). The variants have different sets of apps; you will want to install non-included ones from the Android Market (Play Store), such as Google Maps. Copy this image to /sdcard (on the phone).

An important diversion: you need to back up /data/app and /data/data so you can restore your apps and data after the upgrade. I've tried several methods with varying success.

Now starting the upgrade. Have the CyanogenMod installation page for klte open in your browser.

Welcome Wizard.

Now transfer to the basic setup section. Special items that turned up:

General Setup

Some of these were already set in Basic Setup. This list shows the settings available in CM-13 as jimc likes them in 2016-12-xx. When I left everything at the defaults, the section is omitted.

Desktop Icons and Quick Settings -- Selen (2016)

To set up the Quick Settings Panel, open it (flick down the status bar from the right corner). Swipe left or right for its pages (new feature). Click an icon to toggle it; long press for a direct jump to its settings page. Click Edit Tiles to edit tiles. Swipe left to right to get the preferences. I turned off Enlarge Top Row. Drag a tile elsewhere to rearrange. My arrangement:

Wi-Fi Bluetooth Cellular
Airplane Mode Flashlight Hotspot
Etc. continuing to the right page

The controls for the desktop (home screen, window manager, Trebuchet) used to be mixed with the general settings, but in CyanogenMod-11 and following, you get to them by long-pressing in the desktop background (or the menu key if you have one). It shows you an icon of a house, at the top; press this to make the current page the default one. At the bottom are icons for setting wallpaper, widgets and themes. In the center is a cluster of 3 small dots. Click on the dots to open the settings menu. The default scroll effects are actually decent, and None is not really none; you can leave it on None. My major change was to disable the ubiquitous and annoying Google search bar. Click the dots again to close this menu.

On the phone (Selen) I use a 4x4 array of icons. On the tablet (Mica) I use 5x8. The default spacing of Comfortable works out; Crammed puts them too close together.

To create a new page, put an app icon or widget on the rightmost existing page and drag it off the right margin. This also works directly from the app drawer. To make a page disappear, including interior pages, remove (or relocate) all icons on it.

I'm trying to use a similar layout on both Mica and Selen. The bottom row of special icons are OpenCamera (not on Mica), phone (vacant on Mica), app drawer, and Firefox. I've set 3 pages of icons. On MIca they are in the upper right 4x4 region and a photo or widget (3x3 or 3x4) goes on the vacant left side. I'm using the Simple Photo Widget. The provided Photo Widget (part of Gallery) is fine except that you have to crop the picture and let it store the cropped version, and when you go to change to a different photo, I can't get Gallery to finish, i.e. you pick the photo and then what?

Page 0 (Left)
StrongSwan OpenVPN WiFi Analyzer H.E. Net Tools
DNS Forwarder Port Forwarder SimpleSSHD SSHelper
GPS Status Gallery Open Camera Camera (AOSP?)
Andoku-2 Sudokyuu Lexic Solitaire Classic
Page 1 (Center)
-- Barcode Scanner Tasks Google
Amazon Kindle RealCalc aCalendar Wallet (Google)
Kitchen Timer Jog Tracker Contacts Android Pay
Night Clock Jota+ Text Edit Maps by Google CadreBible
Page 2 (Right)
-- -- -- --
-- Visual Voicemail -- --
VX ConnectBot Xabber -- Play Store
Total Commander Messaging -- --

Breaking News: CyanogenMod is Dead, Long Live Lineage

Announcement of the end of CyanogenMod.

In 2013, Steve Kondik Cyanogen joined with a venture capitalist ($7e6) and created Cyanogen Inc, which also gained ownership of the brand CyanogenMod. It produced a version of CyanogenMod called Cyanogen OS, suitable for carriers and phone vendors, which was used on the OnePlus One and several other phones. The relation has soured, Cyanogen has quit the company, and as of 2016-12-23 the infrastructure behind CyanogenMod has been shut down. I'm not quite sure what infrastructure means, but we can expect source hosting and OS builds to be relocated. There are also some CyanogenMod-specific services such as encrypted SMS (that I don't use) that presumably are now gone.

The CyanogenMod Team, i.e. the community of developers, designers, device maintainers and translators, have forked CyanogenMod under the name Lineage OS on Github. It's going to take some time for the dust to settle, but that is where to look for progress on CyanogenMod's successor. (Also don't be surprised if the name changes to something with more charisma; community members are already calling for this.)

This web site is the anchor identity of Lineage OS. It was started on 2016-12-24. The current content as of 2017-01-06 is approximately: