Present Location: News >> Blog >> Android 5.0 / CyanogenMod 12.0 on The OnePlus One

Blog

> Android 5.0 / CyanogenMod 12.0 on The OnePlus One
Posted by prox, from Seattle, on February 07, 2015 at 22:21 local (server) time

Alright, I've been venting on various social networks about this so I think it's time I write a blog entry on it.

tl;dr: Android 5.0 (Lollipop) is the worst version of Android I've used and will most likely be the reason why my next phone will not run Android.

Why Did I Upgrade?

I have been running CyanogenMod 11.0 nightly builds on my OnePlus One since I got the phone (October of 2014) and have been happy with it.  CyanogenMod is the only Android variant that works on the OnePlus One with the officially-supported build being version 11S.  CyanogenMod 11 is based on Android 4.4 and adds "tweaks" and usability enhancements to the user interface.  The enhancements I typically find most useful are the additional tiles (3G/LTE, data, tethering, performance, lock delay, etc. one-tap toggles) and privacy guard (limit individual applications' access to personal data).

The upgrade was a mistake, really.  I decided to upgrade to a newer nightly build of 11 at the beginning of January but was instead presented with a list of nightly builds of CyanogenMod 12, instead of 11.  Nighty builds for 11 apparently have ceased with most development effort likely going toward 12.  Not paying attention to this, I tapped upgrade and bricked my phone (going from 11 to 12 probably required a wipe, which I would have done anyway).  After backing up some unsaved stuff on my phone via ADB I decided to do a clean install of 12 instead of going back to 11, since I would be forced to eventually.

First Impressions

Android's Material Design doesn't really bother me.  I don't care if buttons, widgets, and windows are flat, 3D, or something else.  I typically don't like special effects and animations, though, and try to disable them as much as possible.  Android 5.0 still let me disable the animations (this is not a problem anymore) completely, so that made me happy.

Battery Saver

There's a new battery saver mode that has been added in Android 5.0.  It shuts off all vibrations, throttles the clock on the CPU and GPU, and dims the screen.  I find it useful when I'm at the office since I hardly use my phone when I'm at my desk.

Unfortunately, I've already come to the end of the parts of Android 5.0 that don't bother me.  The rest is all downhill.

Notification System

The notifications system changed for the worse.  I want the old system back.

Annoying Notifications

Android 5.0's notification system seems to be an odd copy of how iOS does notifications plus some general stupidity.  I always found iOS' notification system to be pretty horrible (although, I only use it on an iPad.. I do not own an iPhone).  Instead of notifications lining up in the status bar at the top of the screen, they now display as a large rectangle over the status bar and takes up precious screen real estate until you swipe them away.

Full Notifications

To make things worse, when one swipes down the status bar to display all notifications, there's no easy way of getting rid of them like there was in prior version of Android.  The "clear notifications" button no longer exists at the top of the notification screen but at the bottom of all notifications.

Clear Notifications

So, if you have about half a dozen notifications pending (installed programs, messaging, e-mail, etc. - you don't have to be a social media "rock star" to get tons of notifications), you have to drag them all up to reveal the "clear notifications" button.  Who came up with this?  This gets significantly worse if you have applications always running that have a permanent notification—it only takes 3-4 additional notifications to push the "clear notifications" button off the screen.

Notifications no longer display on the status bar when the phone is locked.  They now are displayed under the clock with three options: 1) display all content 2) hide content 3) hide notifications completely.  None of these options work for me—I want notifications in the status bar!  I ultimately just hid them from view completely because they are annoying.  If my phone makes a message I now have to unlock it to see what kind of notification I got.

Notification Sounds

This is really still in the "notifications suck" category but deserves its own section.  The sound profiles changed and are now terrible.  Apparently Android is trying to get away from applying sound profiles to all applications and instead applying profiles that selectively allow what notifications can make sounds (or vibrations) at a given time.

Instead of being able to select "vribate only" or "quiet hours" (allow only phone calls to make sounds), I now have three options:

Sounds

The priority setting is kind-of tunable, meaning you can set up priority interruptions that can be 1) events and reminders 2) calls 3) messages.. but, uh, nothing else.  It's very half-baked.

What bugs me specifically about this is that there is no "vibrate only" setting.  This is what I miss from all previous versions of Android.  I simply want to put my phone in vibrate mode before entering a meeting—I still want the phone to let me know things are happening by vibration but not generate any sounds from the speaker.  The only way I can see to do this is to enable the "all" mode and slide the volumes all of the way to the left (yet somehow remembering exactly where they were before).

Miscellaneous Annoyances

Multiple Users

The little person icon on the top right of the notifications drawer is annoying.  It's apparently for some multi-user garbage that, in my opinion, doesn't belong on a phone and there's no way of getting rid of it.  Seriously, who has a phone that they share with someone else?

There's a little weather widget that is enabled by default in the notification drawer.  I liked it but I couldn't figure out how to change the temperature from Farenheit to Celsius, so I turned it off.  The standard News & Weather widget allows one to choose temperature units.

CyanogenMod Annoyances

I think that these are the result of CyanogenMod and not Android 5.0 itself so they are going in a different category.

There's something horribly wrong with the radio firmware for the OnePlus One that comes with CM12.  I can't use an IPv6-only APN or even an IPv4/IPv6 one, anymore, without the radio crashing.  I have to use the IPv4 APN on T-Mobile, now.  It's really strange why an APN setting would trigger a bug in the radio firmware, but I can reproduce it all day and twice on Sundays:

<3>[78188.227080] SMSM: Modem SMSM state changed to SMSM_RESET.
<3>[78188.227291] Fatal error on the modem.
<3>[78188.227413] modem subsystem failure reason:     :Excep  :0:.
<6>[78188.227521] subsys-restart: subsystem_restart_dev(): Restart sequence requested for modem, restart_level = RELATED.
<3>[78188.227670] Notify: start reset
<6>[78188.241363] subsys-restart: subsystem_shutdown(): [e0a4b900]: Shutting down modem
<4>[78188.341484] pil-q6v5-mss fc880000.qcom,mss: Port c5c7c280 halt timeout
<3>[78188.345214] smd_pkt_read notifying reset for smd_pkt_dev id:8
<3>[78188.345271] Ramdump(ramdump_smem): No consumers. Aborting..
<3>[78188.345283] restart_notifier_cb: unable to dump smem -32
<3>[78188.346650] smd_pkt_read notifying reset for smd_pkt_dev id:1
<3>[78188.346717] smd_pkt_read notifying reset for smd_pkt_dev id:5
<3>[78188.346957] smd_pkt_read notifying reset for smd_pkt_dev id:2
<3>[78188.347183] smd_pkt_read notifying reset for smd_pkt_dev id:6
<3>[78188.347402] smd_pkt_read notifying reset for smd_pkt_dev id:3
<3>[78188.347627] smd_pkt_read notifying reset for smd_pkt_dev id:9
<3>[78188.347850] smd_pkt_read notifying reset for smd_pkt_dev id:7
<3>[78188.348071] smd_pkt_read notifying reset for smd_pkt_dev id:4
<3>[78188.349135] smd_pkt_read notifying reset for smd_pkt_dev id:0
<3>[78188.370990] modem_notifier_cb: sysmon_send_event error -38
<3>[78188.371158] M-Notify: General: 4
<6>[78188.372614] subsys-restart: subsystem_powerup(): [e0a4b900]: Powering up modem
<6>[78188.377927] pil-q6v5-mss fc880000.qcom,mss: mba: loading from 0x0d100000 to 0x0d149000
<6>[78188.413792] pil-q6v5-mss fc880000.qcom,mss: mba: Brought out of reset
<6>[78188.416378] pil-q6v5-mss fc880000.qcom,mss: modem: loading from 0x08000000 to 0x0ce00000
<3>[78188.439592] smd_write_start: packet header failed to write
<3>[78188.439693] msm_ipc_router_smd_remote_write: ipc_rtr_smd_ipcrtr chnl reset
<4>[78188.649183] audit: audit_lost=13258 audit_rate_limit=20 audit_backlog_limit=64
<3>[78188.649229] audit: rate limit exceeded
<6>[78188.978289] pil-q6v5-mss fc880000.qcom,mss: modem: Brought out of reset
<3>[78189.061349] Notify: smsm init
<6>[78189.096582] pil-q6v5-mss fc880000.qcom,mss: mba: Power/Clock ready interrupt received
<6>[78189.096641] pil-q6v5-mss fc880000.qcom,mss: Subsystem error monitoring/handling services are up
<6>[78189.098020] subsys-restart: subsystem_restart_wq_func(): [e0a4b900]: Restart sequence for modem completed.

This happens about a second or two after the data connection is established, results in about 5-10 seconds of no signal, then repeats.  Apparently I'm not the only one who has this problem considering the reply to my post.

The OnePlus One has always had a great camera, IMHO.  It has done very well in low light and features HDR in hardware, which looks great most of the time.  Unfortunately, it seems that the CM12 upgrade has messed up the camera, somehow.  Photos get progressively blurrier as the light level decreases.  HDR use seems to compound this effect.  I'm not sure what was done but I've added a post about this, too.

Videos don't play anymore.  I can record a video with the camera application just fine but whenever I go to play it back on the phone I get a "Cannot play video." message.  I haven't really looked into this because I don't take videos with my phone too often.  The videos themselves are fine since they play fine on a computer when transferred.

Summary

I would have gone back to CM11 after encountering these issues with CM12 but, as I mentioned, it seems that CM11 development is winding down (completing) and there are no more nightly builds.  Also, it's likely that more applications will start to require Android 5.0 in the future.

This latest horrible regressions of an upgrade from Google is really making me think that the OnePlus One will be my last Android phone.  I really don't want to go to iOS since it's not an open platform and I will have to always wait for the next jailbreak to have a usable device (I rely on having shell access and a customizable control center).  The Ubuntu phone stuff looks interesting but it's likely there won't be many applications for the platform for quite sometime (if ever).

Update: 2015/03/02

Most of the issues above still exist.

The IPv6 issue still exists but has changed, slighty.  I have a post about it.  Now, the radio firmware doesn't crash anymore but IPv6 only works when the phone is connected via LTE (regardless of the APN in use).  For example, the IPv6-only APN will connect via LTE but refuse to pass any data packets if the phone drops down to UMTS (voice call, for example).  It will also refuse to connect to the APN if the current network is not LTE.  This is somewhat workable for me since I almost always have LTE coverage, but it's still a PITA if I want to use data on my phone while in a voice call.  I keep IPv6 fully disabled, now, as a result.

I found a nice bug in the video player.  Both the stock video player and the Google "Photos" applications refuse to play videos recorded by the camera application and say "Can't play this video.":

Can't play the video

Gee, thanks for the detail, but of course Google assumes their user population is a bunch of idiots, so they don't bother providing any details on why it can't play the video.  The videos are actually correctly encoded and play fine when transferred to a general purpose computer.

I've never had much luck with sending or receiving MMS objects on Android.  I've had issues as far back as the 2.x series on the Nexus One!  Android 5.0 / CM12 seems to be no exception, but this case refuses to even try to do anything:

MMS

For some reason, MMS objects larger than some unknown size can't be downloaded anymore with the AOSP messaging application (the only one I care to use, since it's not "linked" in any way to Google).  The only people who send me MMS objects anyway are iPhone users, so I can't really view any pictures from them anymore.  Even objects 688 KiB in length refuse to download.  The only thing that works is group messaging, since those are tiny files.  What's the deal, here?  Is there some 3GPP specification that everyone else but Android is following.. or maybe Android is just not following it?

Update 2015/04/03

The lack of video playback apparently wasn't limited to the Video Player application and affected Instagram, too.  After searching around (mega bug thread here) I tried selecting the use of NuPlayer (experimental) instead of AwesomePlayer in developer settings.  This fixed it.  Of course, now I'm forced to use an experimental Android component vs. the legacy one.

> Add Comment

New comments are currently disabled for this entry.