Thursday, July 24, 2014

Playing with CyanogenMod on my Samsung Galaxy S3

Those of you who know me on Google+ probably know that I've recently gotten a smartphone (mentioned above) and have been trying to root and install a custom rom onto it. Well, now that I've managed that, I think I'll go into some detail about how I did it, why I had trouble initially figuring it all out, and what I've learned in the process, so far. Yes, I'm still learning, and probably will be for some time, but this is here as part 1 of 'n'. So, that said, I hope you enjoy the read, and that with this I can help others to avoid some of the mistakes and pitfalls that I have run across.

Why do it?
Most people's first question to someone who does something along the lines of rooting a phone is generally "Why choose to root the phone?" Before I actually got the phone, I asked the same question, but also as a Linux user I think I had a head start on why: because we'll gain more control over the phone and the OS itself. Plus, having root can be very helpful (and it rocks). Also, there's the stance that Sir Edmund Hillary took "because it's there" or to put that another way "because I can".

Mistakes will happen.
When I first got the phone, my first concern was security. As a matter of fact, for a while, when I was researching which phone I would get, it was a toss-up between the Galaxy S3 and the Blackberry Q10. It was a close battle between the two, but once I got a chance to actually try the phones, the larger screen and nicer interface of the Android won me over, there was also the fact that I could choose to encrypt the phone. I really enjoyed the Q10's physical keyboard, and the fact that it was encrypted from the outset, but to me the interface was less polished and intuitive than the Android, but that's just my own assessment. So I got the Android, and one of the first things I did was to turn on full-phone encryption. Admittedly, this was before I had decided to try to root the phone, so don't think too badly of me for being security conscious. Also, my living situation at the time predicated that I keep the phone as locked-down as I could, but that's a story for another time...

Time Passes...
So, quite a while has passed since I started writing this. To the point that I had forgotten that I was writing it, if that tells you anything.

In the time that has passed, I've learned a lot about rooting not only my phone (the same SGS3 that I had when I first started writing this), but also about rooting my Nexus 7 v2 (2013). The big thing that I learned is never to try to upgrade the rom without wiping the cache and Dalvik on the device. To upgrade without doing wiping is asking for all kinds of soft-bricking trouble (potentially, upgrades within a rom family/version chain are generally safe to do without wiping the two. Do your research to be sure, though. Don't take my word as 'gospel'.)

Another thing that I learned is that not all roms are created equal, nor are they all equally compatible with certain devices. Some might run flawlessly on a given device, while others barely boot, or even refuse to install even though they're supposed to have been for that device. My advice? Be careful what you choose, and always make a backup on an SD card within the device if you have that option, and revert to it if something goes awry. I won't provide instructions here, as that is not the purpose of this post, and there are far better sources for that elsewhere.

One example of a rom that runs really nicely on one of my devices, and causes random reboots on the other. Cyanogenmod 11.x runs sweetly on my phone, but the Nexus, for whatever reason, has a bug that causes it to randomly reboot. Not helpful when playing a game, writing something up, or watching a video (or whatever). Suffice to say that I stopped trying to use CM11 on my Nexus. Currently, I actually have a dev version of Android L on the N7 (I like the interface, but I wish there were a PAC-ROM version, with all the CM11 tweaks, and other niceties. But, wishes are about as useful as religion in politics... ;)

Anyhoo, there may be more in this vein at a later date, as I'm sure that there's a lot more to cover here. Questions or thoughts? Feel free to ask, or drop ideas. ;)