There's a lot to love about Google's newest tasty treat - Android 8.0 Oreo. From major low level changes that will speed up updates to small quality of life changes to full custom theme support, there's something in the latest update for everyone to enjoy. But one of Android Oreo's biggest changes, background app limitations, has been causing a bit of a headache for some users. No, it's not that annoying "app is running in the background" notification that we've already shown how to hide. Rather, it's the fact that these new background location limitations have been breaking certain applications for some users, in particular apps that rely on constantly pulling updates on your location.

To be fair, this isn't necessarily a problem of Android Oreo itself. The latest OS update is designed to reign in some of the poorly behaving apps out there that constantly run in the background and drain your battery or eat up your RAM. It's up to application developers themselves to ensure their app is using a foreground service so their app can continue polling for location without any restrictions. The best thing an average user can do to keep their favorite apps that require constant GPS location up and running is to contact the developer and kindly ask them to abide by Android Oreo's new requirements.

Sometimes, though, you may want to continue using an application that is outdated or abandoned and thus has no hope of being updated. We won't judge. In those cases, obviously contacting the developer won't do you any good. But thankfully, there's a way around Android Oreo's new background location throttling - and it doesn't require root or modifying any APKs.


Whitelist Apps from Android Oreo Background Location Throttling

This issue came to my attention over on a Reddit thread the other day after a user informed me that the GolfPad application was not working as it used to on prior versions of Android. After a bit of digging, I discovered a hidden developer ADB command that can be used to whitelist any apps you want from the strict background location throttles introduced in Android 8.0. Here is how it's done:

  1. Install ADB onto your computer.
  2. Get the package name(s) of the application(s) you want to whitelist. We recommend using Package Name Viewer for that.
  3. Open a command prompt or terminal and enter the following command: adb shell
  4. Now, enter this ADB command: settings put global location_background_throttle_package_whitelist "package1,package2,package3"
  5. In between the quotation marks above, you are inputting a comma separated list of package names for each app you want to whitelist. In the case of the GolfPad app mentioned earlier, the command is just this: settings put global location_background_throttle_package_whitelist "com.contorra.golfpad"
Android Oreo Background Location Throttling

Done! If you input the command correctly you won't see an error or anything. Now your favorite app can continue to use GPS location unrestricted in Android 8.0 Oreo!

Conclusion

As mentioned before, what we're doing here is simply using an ADB command which is meant to be used by developers to test their applications out. Instead, we're using it to pick and choose which apps we want to use GPS in the background. This isn't the first time we're using developer commands for unintended purposes, and it definitely won't be the last!

If you encounter a problem such as this that you think affects many other people, feel free to reach out to me at my e-mail listed on my author page or via private message on Reddit. I don't respond to technical support questions, but if you find something worth looking into, I'll definitely respond! If you find these kinds of tutorials interesting, then I recommend following our tutorials RSS feed or downloading the XDA Labs app.