A number of users, like our own fearless leader Artem, have noticed battery life on the newly released Cyanogen OS 12 isn't as good as it ought to be. In some instances, the device never goes into deep sleep because of what appears to be a Google Play Services wakelock. It turns out this is caused by a quirk of the stock Android update service that wasn't accounted for in some Lollipop ROMs.

Screenshot_2015-04-16-12-44-55 Screenshot_2015-04-16-12-44-48

The bug stems from the OTA update component of Google Play Services (SystemUpdateService), which was disabled in KitKat and earlier versions of Cyanogen. As of Android 5.0, the solution of just disabling Google's OTA system won't work. The update services acquires a wakelock to check for updates (which it didn't do before), but since SystemUpdateService is disabled, it never finishes the check and the device stays awake. This is simply the way Lollipop operates on Play Services 7.x, so any device/ROM could be affected if SystemUpdateService is disabled in the same way.

As for Cyanogen OS, there's an update coming probably next week to alleviate this issue. The change has also been merged into the CM12 stable branch today. The fix involves turning SystemUpdateService back on, but locking down any receivers for it. The update service checks for the OTA, fails, and shuts down properly. Any other ROMs with this problem will have to wait for those dev teams to issue a patch. There's also a modded Play Services package on XDA that can be flashed to rectify the wakelocks. That might serve as a good interim solution until things are fixed.