com.google.android.gms destroying my battery Something happened around two months ago. Since then, 2 or 3 times per day the app com.google.android.gms begins to consume battery like crazy (rooted Android 4.4 in a Galaxy Note 4). I think this is for some kind of sync of Google.

Logcat shows the strange behavior, with tons of messages like these:

W/ctxmgr  (25335): [ContextSpecificAclFactory]LocationConsent failed, ULR opt-in status is: false, account#-63XXXXX32#
W/ctxmgr  (25335): [AclManager]No 2 for (accnt=account#-63XXXXX32#, com.google.android.gms(10015):UserLocationProducer, vrsn=10084000, 0, 3pPkg = null ,  3pMdlId = null). Was: 2 for 1, account#-63XXXXX32#
V/AlarmManager( 3363): waitForAlarm result :8
V/AlarmManager( 3363): waitForAlarm result :8
W/ctxmgr  (25335): [ContextSpecificAclFactory]LocationConsent failed, ULR opt-in status is: false, account#-63XXXXX32#
W/ctxmgr  (25335): [AclManager]No 2 for (accnt=account#-63XXXXX32#, com.google.android.gms(10015):UserLocationProducer, vrsn=10084000, 0, 3pPkg = null ,  3pMdlId = null). Was: 2 for 1, account#-63XXXXX32#
V/AlarmManager( 3363): waitForAlarm result :8
W/ctxmgr  (25335): [ContextSpecificAclFactory]LocationConsent failed, ULR opt-in status is: false, account#-63XXXXX32#
W/ctxmgr  (25335): [AclManager]No 2 for (accnt=account#-63XXXXX32#, com.google.android.gms(10015):UserLocationProducer, vrsn=10084000, 0, 3pPkg = null ,  3pMdlId = null). Was: 2 for 1, account#-63XXXXX32#
V/AlarmManager( 3363): waitForAlarm result :8
W/ctxmgr  (25335): [ContextSpecificAclFactory]LocationConsent failed, ULR opt-in status is: false, account#-63XXXXX32#
W/ctxmgr  (25335): [AclManager]No 2 for (accnt=account#-63XXXXX32#, com.google.android.gms(10015):UserLocationProducer, vrsn=10084000, 0, 3pPkg = null ,  3pMdlId = null). Was: 2 for 1, account#-63XXXXX32#
V/AlarmManager( 3363): waitForAlarm result :8
V/AlarmManager( 3363): waitForAlarm result :8
W/ctxmgr  (25335): [ContextSpecificAclFactory]LocationConsent failed, ULR opt-in status is: false, account#-63XXXXX32#
W/ctxmgr  (25335): [AclManager]No 2 for (accnt=account#-63XXXXX32#, com.google.android.gms(10015):UserLocationProducer, vrsn=10084000, 0, 3pPkg = null ,  3pMdlId = null). Was: 2 for 1, account#-63XXXXX32#
V/AlarmManager( 3363): waitForAlarm result :8
W/ctxmgr  (25335): [ContextSpecificAclFactory]LocationConsent failed, ULR opt-in status is: false, account#-63XXXXX32#
W/ctxmgr  (25335): [AclManager]No 2 for (accnt=account#-63XXXXX32#, com.google.android.gms(10015):UserLocationProducer, vrsn=10084000, 0, 3pPkg = null ,  3pMdlId = null). Was: 2 for 1, account#-63XXXXX32#


The only way I found to stop this is to kill com.google.android.gms by hand, but sooner or later it resurrects again.

It seems that Google is trying to make my life misserable because some Location Consent was not given?
Thanks to the logs, I found the culprit: the bad (maybe even illegal?)  practices of Google Maps. 

Since I hate spam and hate to be tracked for advertising by Google, I always opt out for all those things. In the last version of Google Maps for Android, there is a Location History option, that was off. Since Google Maps has the devilish behavior of trying to track you by launching itself when you don't open it yourself, it opens in the background and tries to save your location in their servers. That trigged a crazy loop because of my Location History off setting. 

The only solution I found, at least if I want to keep using Google Maps, was to enable Location History. No more batery drains. 

Google is copying the worst practices of Microsoft at the speed of light.