Unexpected continuous location tracking/energy change in android?

Error: Unable to create directory uploads/2024/04. Is its parent directory writable by the server?

So this is really weird, but I have found what seems to be unexpected continuous location tracking that is causing noticeable battery drain on Android 6.0. Right now, it’s looking like a change in an automatically updated component, so it is probably due to a closed source service or app. So this is in the style of the work from Vern Paxson’s group on characterizing the observed behavior of third party software.

Has anybody else running Android 6.0 noticed a particularly large increase in power drain, with the GPS icon displayed continuously? I will be running additional tests in the coming days, but wanted to report the unusual behavior and see if other researchers have noticed it as well, or want to investigate it while it lasts.

Background

I’ve been doing power profiling of power drain under various regimes as part of understanding the power/accuracy tradeoffs for my travel pattern tracking project. So I basically install apps with different data collection regimes on multiple test phones of the same make, model and OS version, and carry all of them around for comparison.

From last Thu/Fri/Sat, it looks like the power drain behavior on android has changed dramatically. In particular, it looks like some system component has GPS location turned on continuously, and is draining the battery quite dramatically. See details below.

This is a Nexus 6 running a stock android kernel (v 6.0.1, patch level: March 1, 2016), with no non-OEM apps installed other than mine, and with google maps location history turned off, so this must be due to unexpected background access by either the OS or some stock google app. And since I didn’t update the OS, my guess is that it is a closed source component such as google play services or google maps that is automatically updated/patched.

Details

Here are the graphs for power drain on Sat v/s Tue v/s Thu v/s Fri. I think that the change happened sometime during the day on Thursday, because I know that the GPS icon was off on phones 2 and 4 on Thursday morning and was displayed on Thursday night. It was gone again when I rebooted on Thu, but came back again sometime on Friday. Has been on ever since then, even after rebooting.
tracking_off
Battery levels when tracking was off on the same phone (note the higher drain on Thu and the big change on Fri + Sat)
 Before we compare levels across phones, we need to understand the data collection regimes for each of them.
Phone 1Phone 2Phone 3Phone 4
Sattracking offtracking offtracking offtracking off
Tuehigh, 1 secmed, 1 sechigh, 15-30 secmed, 15-30 sec
Thuhigh, 1 secmed, 1 sechigh, 30 sectracking off
Fri + Sathigh, 1 secmed, 1 sechigh, 30 sectracking off
Next Tuehigh, 1 secmed, 1 sechigh, 30 sectracking off

 

all_phones

Battery levels across phones (note the abrupt phase change that happens on Fri+Sat, and how the change is staggered across phones, consistent with an automatically updated component)

It is clear that on Tuesday, phones 2 and 3 are fairly close to each other, and both are very different from phone 1. This is consistent with intuition and results before Thursday as well.

On Thursday, the difference between phone 1 and phone 2 is much less pronounced, and the difference between phone 2 and phone 3 is also much larger. On Friday and this Tuesday, there is essentially no difference between high and medium accuracy at the fast sampling rate (phone 1 and phone 2), and no difference between slow sampling and no tracking (phone 3 and phone 4).

I also note that the GPS icon is constantly turned on, even on the phone where the tracking is stopped.
no_tracking_location_onlocation_history_off

Of course, this could be a bug in my code, but:

  • I didn’t really change the code between Tue and Thu, and
  • I don’t get the notifications about activity changes on the phone where it is turned off, and
  • my app does not show up in the location or battery drain screens

Next steps

In the next few days, I plan to poke around at this some more to see if I can figure out what’s going on. Some thoughts are:
  • uninstall my app. This is very annoying because then I have to record the battery level manually, but I can suck it up for a day.
  • uninstall potential culprits – google play services, maps, ??? It turns out that most of these are system services that cannot be uninstalled, but I can try disabling them.
  • —–> your suggestion here <——— If you have any thoughts on things to try, let me know!

We can do this together

This is complicated because we are trying to treat the phone like a natural phenomenon that we cannot control but can try to understand through observation. I’d love to hear from other members of the community so that we can figure out whether google is really continuously tracking us without letting us know, and killing our battery while doing so.