How to fix the partial wakelock problem on CyanogenMod 11 with Google Play Services and OTA updates


For me only SystemUpdateService$SecretCodeReceiver had to be disabled. All other activities, receivers and services with a name starting with "SystemUpdate" were already disabled. I used ADB + "pm disable" to disable this one component.
Here is a list of commands to disable all SystemUpdate "stuff" via ADB (of course it requires a rooted phone with some sort of "su" installed):

adb shell su -c pm disable com.google.android.gms/.common.stats.GmsCoreStatsService
adb shell su -c pm disable com.google.android.gms/.update.SystemUpdateActivity
adb shell su -c pm disable com.google.android.gms/.update.SystemUpdateService
adb shell su -c pm disable com.google.android.gms/.update.SystemUpdateService$ActiveReceiver
adb shell su -c pm disable com.google.android.gms/.update.SystemUpdateService$Receiver
adb shell su -c pm disable com.google.android.gms/.update.SystemUpdateService$SecretCodeReceiver
adb shell su -c pm disable com.google.android.gsf/.update.SystemUpdateActivity
adb shell su -c pm disable com.google.android.gsf/.update.SystemUpdatePanoActivity
adb shell su -c pm disable com.google.android.gsf/.update.SystemUpdateService
adb shell su -c pm disable com.google.android.gsf/.update.SystemUpdateService$Receiver
adb shell su -c pm disable com.google.android.gsf/.update.SystemUpdateService$SecretCodeReceiver

Each of the above commands should print something like this:
Component {com.google.android.gms/com.google.android.gms.update.SystemUpdateActivity} new state: disabled
If it doesn't, it didn't work. Either because the command couldn't get root access (eg. you don't have any "su" installed) or your "Google Play services" or "Google Services Framework" doesn't have the given component (yet).

And recently my phone gets regular alarms (wakeups) from gcm.nts.SchedulerInternalReceiver (via com.google.android.gms.gcm.nts.ACTION_CHECK_QUEUE) so I disabled that one too:
adb shell su -c pm disable com.google.android.gms/.gcm.nts.SchedulerInternalReceiver

Syndicate content