Fix Play Services Battery Drain by Forcing It to Use Doze Mode
Google Play Services has been near the top of every Android user's list of battery-sucking apps for years now. It's a core system app, so you'd expect some battery drain, but for many folks, it runs rampant.
This is partly due to the fact that Google has exempted Play Services from Android's biggest battery-saving feature, Doze Mode. Unlike virtually every other app, Play Services is permanently set to "Not Optimized" by default in the Battery Optimization menu, and until now, there's been nothing you could do about it.
Thankfully, developer Otniel Yoreiza has created a new Magisk module that lets you enable Battery Optimization for Play Services, which will cause the battery-sucking app to enter a sort of deep sleep state when your phone goes into Doze Mode. The potential for battery savings is huge, so I'll show you how it works below.
Google Play Services is set to "Not Optimized" by default because it provides some core functionality that you may not want to lose when your phone enters Doze Mode. Most notably, GCM Push, the service many apps use for notifications, is bundled in with Google Play Services.
This means that if you use this mod to enable Battery Optimization (and thus, Doze) for Google Play Services, you may not receive prompt notifications from certain apps in certain circumstances. When your phone enters Doze Mode to preserve battery life while the screen is off, apps like Gmail and Hangouts may take longer than normal to notify you of new messages.
This shouldn't have any effect on alarms or incoming calls, nor should it cause delays with apps that use their own push notification systems (like WhatsApp, Telegram, and SMS apps, to name a few). Nonetheless, you should be aware of this fact up front in case you experience notification delays after applying this mod.
Yoreiza's module isn't available on the Magisk repo, which means you'll need to download it separately. So to start, tap the following link from your Android device to grab the module, which is called EnableDozeforGMS.
Next, open your Magisk Manager app and head to the Modules section, then tap the floating action button at the bottom of the screen. From there, select the EnableDozeforGMS ZIP that you just downloaded, and the module will be installed automatically. When that's finished, make sure to tap "Reboot" on the popup to finalize your work.
When you get back up, chances are, the module will have already enabled Battery Optimization for the Play Services app. But just to be on the safe side, take a quick trip to your phone's main Settings menu to double check.
From there, head to the Battery menu, then tap the menu button in the top-right corner and select "Battery optimization." Next, select "All apps" from the drop-down menu on the following screen.
From here, scroll through the list and find the Google Play Services entry. Tap it, then select "Optimize" on the popup, and hit "Done." From now on, Play Services will be treated like any other app when your phone enters Doze Mode after it's been lying still with the screen off for a bit, which means your standby time should see a significant bump.
Again, this should only affect standby time, meaning your battery should last a bit longer when you're not actively using your phone. But for some folks, this could have a huge impact on real-world battery life. How much has it helped on your phone? Let us know in the comment section below.