Words On Wednesday

2016-04-13 OnePlus One back to Stock CyanogenMod

After nearly a year with OxygenOS on my OnePlus One, I’ve decided to return to stock CyanogenMod.

Oxygen on the One

As soon as I got my One in the mail, I used the Bacon Root Toolkit from WugFresh to flash OxygenOS 1.0.0 immediately. Literally, I took the phone out of the box, booted it up, and started the unlocking process. I had previously used CyanogenMod on my Nexus 4 and I just wasn’t a fan. It has tons of customization options, sure, but it felt like a bit much. Coupled with the audacious stance of Cyanogen’s CEO about “putting a bullet through Google’s head,” I was more than willing to put OxygenOS on my phone as a replacement for CM.

From the beginning, I absolutely loved OxygenOS. It was exactly what I wanted in an Android distribution: sleek and lightweight, almost identical to stock AOSP, but with a select few customizations not offered in Google’s main release of Android. It was perfect in my mind. Even when other Android devices got updates to the latest version, I was completely fine with my old version because of how fantastic Oxygen is and was.

Over time, OnePlus released updates to OxygenOS that users could choose to flash on their devices manually. Sadly, these updates were unavailable to the One because the native software was CyanogenMod. As far as I’m aware, anything manually flashed on a device must be manually updated. While some people will flash a new ROM every other week, I personally hate installing any new OS on a device. As my post from last year details, it is a long and cumbersome process that is as stressful as it is frustrating. The minimal improvements in OxygenOS updates just weren’t worth the headache of downloading and installing a new version.

As an aside, I’ll point out that actually flashing a ROM isn’t *that* much of a hassle, especially with some of the amazing tools from WugFresh. Seriously, that guy is an Android wizard and a lifesaver to myself and many others. What’s worse is getting the drivers for the phone set up properly and finding the right version of a ROM to install. With USB Debugging and MTP/PTP among other Android settings, getting the drivers to communicate properly with a device AND be able to send commands in Fastboot mode is a huge ordeal. Maybe it isn’t so bad once you’ve done it 10 times or more, but I positively loathe the entire procedure.

For a while, I had no desire to update my phone. Any new features were either uninteresting to me, or at least not worth the frustration to update. Bug fixes were mostly for issues I never encountered anyway, especially nothing catastrophic. Security patches typically addressed vulnerabilities that I felt confident I could protect myself from with proper only safety.

Eventually, when I got wind of how bad the Stagefright exploit could be, among other vulnerabilities that had since received patches, I really began to consider updating. The new features were still just so-so, and I hadn’t encountered any of the bugs myself, but the possibility was there. Considering the sensitive personal and financial information I keep on my phone, I really couldn’t afford to have those vulnerabilities open.

Updating to OxygenOS 2.1.4

Finally, I decided to update to the latest version of OxygenOS. On February 12 (according to my Google Photos), I took the plunge and flashed a new build of OxygenOS on my One. After 5 hours of reading through OnePlus forums and trying the same actions over and over while expecting a different result (the very definition of insanity), I was able to get my One up to OxygenOS 2.1.4 and assuage all my fears of vulnerabilities. Apparently, you can’t flash a ROM on an Android device from a custom recovery with the SIM card still inserted. Too bad I had to read 30-some odd pages into the forum on the OxygenOS 2.1.4 download to figure this out.

For the most part, the new version of Oxygen looked and felt about the same as the old version. No huge new features or crazy battery/performance optimization. Not that I was expecting any big changes, I just didn’t want my device to get hacked. I wiped the device, so all my apps were gone, but I would gradually download them as I needed them. One unfortunate effect of flashing the ROM while on mobile data instead of WiFi is that I burned through the vast majority of my 5GB data allowance not even halfway through my billing cycle. Ah well, no permanent damage.

Over time, I saw more and more problems with the new version of OxygenOS. In hindsight, I’m convinced this had to be an error with my installation, since the bugs I encountered would’ve easily been encountered and fixed in testing the build. A few minor issues were easy to ignore, notably the odd effect that any contact and Google Drive shortcuts would have their proper icons until I restarted, at which point they would always revert to the standard bugdroid app icon. Additionally, the battery life seemed drastically lower and the percentage indicator was always incorrect. A full charge would stay at 100% for half an hour or more, even with moderate to heavy use. Once the device dropped below 30% charge, it would either die spontaneously somewhere above 20% or quickly drain a percentage point every few seconds. Knowing how much battery life I have down to 2 or 3% isn’t a big deal, but I’d like to know for certain that my phone will make it through the night to wake me up for work the next morning.

Some issues were far more disruptive to my daily use. Voice call reception was consistently terrible, to both landlines and other mobile phones. At home, I would often have to call people back on my wife’s phone. At work, I would have to use a landline at my desk or the privacy room to ensure callers could hear and understand me. Furthermore, some apps would error out when installing. The app I mostly had trouble with was Fallout Shelter, but I’m sure other apps could have presented issues as well.

The straw that ultimately broke the proverbial camel’s back was that my cellular data would occasionally stop, despite still indicating LTE connectivity. Turning off mobile data, waiting a few seconds, and turning it back on would usually fix the issue, but I often wouldn’t know that my data was down for an hour or more until I actually tried to send a message or check something online. This sort of bug may not be a big deal for someone using cellular antennae for texting or calling, but using primarily Google Voice & Hangouts to text or call means I rely on mobile data nearly exclusively.

Reverting to Stock CyanogenMod

After dealing with the bugs and janky behavior of OxygenOS 2.1.4 for nearly two months, I decided last week to put CyanogenMod back on my phone to fix the bugs and hopefully receive OTA updates again.For basically the entire week, I tried to revert to stock at every opportunity I had.

Though I was swamped with assignments at work, I downloaded Bacon Root Toolkit between program assemblies and tried to tinker with the drivers when I could. One issue with Android tasks at work is the websense filtered network prevents a lot of necessary traffic. ROM downloads have to be done over mirrors and in very roundabout ways to actually get a file and have the checksum match up properly. Several days I devoted to driver configuration, but I could never get a working connection with the ADB to my phone.

When I was home, I tried the same steps on my personal desktop. Though downloads were far easier over my unfiltered network, but the drivers were still ridiculously frustrating to set up. Steps from Bacon Root Toolkit were clear enough, but I frequently couldn’t duplicate them because my PC would do something different than what the steps indicated would happen. Plus, we had so much to take care of at home that I really didn’t have much spare time to devote to the phone. When we have to cook dinner, clean house for the speech therapist to come by, and put the kids to bed, we might have 30 minutes before bed to sit and relax.

Thursday was my night to finally fix my phone. We finished most of the chores earlier in the week and we didn’t have anything planned for the afternoon. While cooking dinner, I occasionally popped in the office to try another step or two in any down time. I spent a few minutes after dinner really focusing on what I could do to get the drivers connected and the phone returned to its stock operating system. After an hour or more of frustrated tinkering, I was no further along than where I began the week.

Getting increasingly irritated, I finally decided to use my wife’s laptop so I could at least sit in the living room with her and the kids. Dead as a doornail, slow as Christmas, and any other similes that can qualify a laptop, I plugged her old HP laptop into the charger and booted it up. The old heap of junk takes forever to get up and running, but it’s reliable and my Chromebook obviously doesn’t run Windows. I started downloading Bacon Root Toolkit and casted Agents of S.H.I.E.L.D. to the living room TV. Waiting at least 5 minutes between steps took forever to make any progress, but I refused to let myself get any more frustrated with the whole ordeal.

Surprisingly, every step of the entire process worked right the first time. The driver download and configuration worked like a charm, the ADB connected, and in no time I was waiting on a prompt to begin reverting to stock CyanogenMod. Having all my data backed up via some form of Cloud storage, I went ahead with the process. Even with my SIM card still inserted, the ROM was installed without any issues. If anyone could explain why Bacon Root Toolkit is able to install with a SIM card in, I’d love to hear how that works.

Oddly enough, my wife’s old HP laptop has been the most Android friendly computer I’ve ever used. Drivers just seem to fall right into place every time I’ve used her laptop for anything on an Android device. Not sure what it is about the decrepit old HP machine, but I’m inclined to keep it around just for tinkering with phones.

CyanogenMod 12.1.1 and OTA Updates

Having been back on CyanogenMod for a few days now, it really isn’t all that bad. Sure there are a ton of extra options and customization that I’ll either never use or don’t care about. At the same time, once I have it configured the way I like it, the entire OS really doesn’t feel all that different from Oxygen. It seems much more snappy than I remembered CM being the last time I used it. Battery indicator can be just the percentage, which is exactly how I like it. Adjusting the volume is so much easier with the volume sliders that pop up for notification, media, and alarm volumes.

After putting some thought into it, while I prefer Oxygen, the sort of variety available through custom ROM options is really what Android is all about. Some people just want a phone, and will use whatever comes on the phone without a second thought. Others, like myself, will tinker with the OS some but ultimately aren’t very comfortable changing the OS without quite a bit of tech support and an emergency tool that can fix everything. Still others are complete naturals at flashing ROMs and crave that next new software to try on a device. There really is something for everyone.

My main gripe with Android distro customization is how hard it is to break into without quite a bit of experience in the field. While it’s likely a pipe dream that would never come to fruition, I’d love to see standard AOSP offered as an option on every single Android device created, complete with a 1-click installation and OTA updates. No need to worry about flashing a new ROM when security fixes are released, users with that official build would get OTA updates as they would with the whatever software comes stock on the device. Even better, I’d love to see official releases of many of the major custom ROM options available with this same sort of 1-click switching and easy, automatic updates. CyanogenMod for one, but options such as Paranoid Android and AOKP could also have super easy installers.

I suppose what I really want is the option to choose what software your Android device runs on without needing a deep understanding of the tech behind it. Even with a computer science degree and about 6 years of programming experience, it’s a very cumbersome and dense process for me. The casual users without any programming or hardware experience is going to be nearly clueless. That much experience and understanding shouldn’t be a prerequisite just to have the software you want on your phone. Without the pain of configuring drivers, without the hassle of downloading the proper ROM for your specific device, I want software that lets me choose the device that I have and the software that I want, and with a few simple steps it should find and download the proper ROM, and install it on my phone.

Into the Future

As for how things go into the future, I’ll likely stay on CyanogenMod for the rest of the time I use my OnePlus One. Barring any enhancements or the introduction of a one-click OxygenOS installer with OTA updates from OnePlus, I just can’t justify dealing with flashing a new ROM every time I want an update.

Regarding OnePlus, I’m glad they split ways with Cyanogen and will be running OxygenOS by default with all future devices. Unless Google brings the Nexus line back to true budget pricing, I think OnePlus may be my go-to OEM for Android devices. Extremely reasonable pricing, and impressive hardware makes it a hard sell to go elsewhere. I love stock AOSP and quick updates, but that’s a hard sell at the prices recent Nexus devices have sold for.


Words: 2408 | Characters: 13804 | Sentences: 135

Paragraphs: 30 | Reading Level: College Student


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s