If you do any kind of browsing around the Internet, looking at information about Android phones, you’re likely to come across the name CyanogenMod. What is it?
Well, everyone talks about rooting their device once in a while. Honestly, I went for a long time without a rooted Epic 4G; silly me had some faith that Sprint and Samsung knew what they were doing when it came to making a stable phone and providing me just what I needed. Thing is, they might … but the Galaxy S line is getting a little long in the tooth (so long that Samsung will not be providing any more major updates to the phone’s OS), and my Epic 4G still has three months or so left on its contract. It will probably stretch into September or October before my wife and I consider buying a new phone. In addition, I’ve been plagued by a random reboot every couple of days or so, so I had the feeling it was time to wipe the phone completely and (re?)install an OS on it.
There wasn’t a compelling reason for that OS to be Samsung’s version.
And so there’s CyanogenMod. It’s a community developed/supported ROM based off of the original Android source from Google. There’s two notable versions of CyanogenMod right now:
- 7.2.0 (which for most phones was recently updated to Release Candidate 2), which is based off of the Gingerbread/2.3.7 version of Android
- 9 (which is considered beta), which is based off of the Ice Cream Sandwich/4.0.4 version of Android
A note about the people doing this development: KUDOS TO YOU! When you realize that for any revision of the CyanogenMod there are probably small groups of people covering each individual phone model available. Even within product lines (like the Galaxy S, of which the Epic 4G is one of), each phone can be significantly different from every other phone.
I will admit, the idea of trying the ICS version was enticing, since Samsung has stated that the Epic 4G won’t get it/can’t run it. But, I needed something with hopefully all phone features working, and wasn’t ready to have to update the phone on a too regular basis.
So … how did I go about getting CyanogenMod on my phone? Long story.
I Wanted It Backed Up As Much As Possible
This is easier said than done. Ideally you should be able to plug your phone in to a computer, run a program and have it suck everything off, so that even if the phone is majorly screwed up, you could plug it back in and *poof* be back where you were.
This is not how it works any more.
Let’s discuss the whole backup issue. Used to be there was no cloud, so you weren’t pulling your mail and contacts and calendar from Google (or Exchange, if you’re in to that) or storing files on Dropbox. So your contact list was either synced somehow or you’d lose it if your phone took a dump (which happens). Nowadays, the only thing people really should be concerned about is app data and screen/icon layout. Honestly, in my case, the only thing of concern is the notes I leave to myself, and one of the apps I found provided an easy way to export the notes to the SD card so they could be backed up. Anything else is not that important (IE, game data). So will the “backup” solution I go over here actually work? Hell, I don’t know – I haven’t decided to go back to stock yet. And as far as screen layout was concerned … well, it could have used a reset anyway.
So, first what I did was copy the entire contents of my SD card off of the phone. This is a fairly easy, but possibly lengthy, process. You plug your phone into your favorite computer, and use your favorite file management program (like Windows Explorer or cp) to copy all of the files off.
Next, I figured Titanium Backup was the way to go. Thing is, it requires root, which I didn’t have yet. EDIT: Stupid me, there’s a better solution – look for the EDITs below. /EDIT
If you’re running FC09 (the most recent update of the Gingerbread version provided by Sprint/Samsung), see this video (props to QBKing77). It can probably be done using heimdall on Linux, but I chickened out and used Odin on Windows per the video (which, due to the issues of links going stale and download sites failing, took longer than it should have). Since you’re still reading and haven’t watched the video yet, here’s a short run of what you’re going to do:
- Install the ClockworkMod Based Recovery utility. This is a more powerful recovery utility that makes “preboot” ROM management possible. EDIT: You can actually stop at this point – Nandroid Backup is installed as part of CWM, and is the best option in my opinion. /EDIT
Install a prerooted version of the FC09 ROM over your existing stock ROM (BML version in my case). That’s it. In an ideal universe (and probably quite a few less than ideal ones) you’ll end up with exactly the same thing you had before you started, except for a few more apps and the ability to grant an app root access. Your next step is to download from the Play Store (the app one on your phone) Titanium Backup. Run it (giving it root permissions), and then copy the backup folder off of your SD card. Again … all of that may be for naught … but hey, if I decide CyanogenMod is more of a failure than the stock ROM for the Epic 4G, you’ll see a post about how successful Titanium Backup was for me. EDIT: Titanium Backup is an option, but a better option is Nandroid, which is a backup utility that’s part of the CWM-based Recovery. Use that to take a backup of the device. You boot the device into CWM Recovery, choose “Backup and Restore”. The rest I think you can figure out. It will write the backup out to your SD card so you can later copy it off of the device. Better yet, using some of the steps suggested by the CyanogenMod 9 install instructions on the EpicCM Blogspot:
- Download the following three apps and use them to make the appropriate backups:
- AppBak – which saves just a list that, during the restore process, will take you to the Play Store page for said app – if it exists.
- SMS Backup and Restore.
- Call Logs Backup and Restore.
Here’s the good news: Once you have the CWM-Based Recovery utility installed, getting CyanogenMod on your phone is EASY. Check out the CyanogenMod wiki for the Epic 4G, and realize (once you have the CyanogenMod file and optional Google Play Store zip file on your SD card), you can skip to the 3. Flashing CyanogenMod – 3.1 Method via Recovery step. The Method via ROM Manager step looks like it takes a couple of extra steps, so I went with the first one. Note that in my case I had to go through a reboot between installing CyanogenMod and the Google Play Store.
Also note that now you have a completely a phone with only a few essential apps (even no Google Play Store if you don’t install it per the Wiki linked above). And no Swype. So, one of the first things I did was sign up for the Swype beta. If you have issues signing in while installing Swype at any point, I suggest you turn off WiFi.
You might want to look at AppBrain in regards to getting your old apps on your “new” phone. Note that for me it saw CyanogenMod as a different “Samsung Epic 4G” than the one it knew about previously.
So … What Do I Think?
It’s very much stripped down as far as crap apps I never use. That’s a good thing.
It seems to run a lot smoother and quicker. It’s got some neat animations for things the Samsung’s GB didn’t have.
The Samsung Desk Dock app runs on it – but the default clock will also detect the fact that you’ve plugged the phone into the dock and looks better to me than Samsung’s app.
The interface is way way way customizable. So much so it that you’ll intuitively know that you can change/customize something … but have no freaking clue as to where in the maze of setting menus available to you where you would find the setting to change it. You might have to Google once in a while.
The LED acts different when it comes to power. I plug it in to charge, the red LED comes on. When it gets close enough to charged, it turns not the expected blue, but an interesting magenta. Not sure that’s a bug, haven’t found a setting for it yet. We’ll have to see if the indicator actually gets to 100% at some point and if the LED changes color. Might also submit a bug report at some point about this one. EDIT This has already been noticed per the addition below. /EDIT
In addition, you can customize the LED notifications so much that I think it’s buggy. In addition to the above, my Handcent SMS does act as configured; the LED lights up red, not blue. I’ve gone into the CyanogenMod LED configuration and tried to tell it again and again to use the Handcent configuration for Handcent, but that (after a reboot) just stops the LED from lighting up at all. And some of this may have to do with Handcent’s configuration options (avoid “Default”) conflicting with CyanogenMod’s. Best I can do so far is either:
- Tell CyanogenMod to use blue for Handcent (but see, you can do a per user configuration within Handcent if you wanted)
- Reset all CyanogenMod LED settings, reboot, and get red.
Release Candidate 2 (and earlier versions) had a bug with the camera. You can find information about that (and a patch) on CyanogenMod’s bug tracker. The issue in particular is 4907, and you’ll find the patch (installable through the CWM Recovery if you turn off signature checking) on comment 16.
Last night’s overnight power drain was … well, calling it a power drain is misleading, because I doubt the percentage of battery available probably dropped less than 5%. I can’t tell you the actual percentage because I didn’t check, but the battery graph was pretty flat. May have been a fluke.
So, so far, not so bad. Some minor annoyances that will probably be resolved over time.
The list of (additional?) places you’ll want to look for more information: