Google Play Services High Internet Consumption


Question

I've been using CyanogenMod (version 12.1-20150901) on my Nexus 5 for around a year and things were running perfectly until last month, when my data plan had been completely used up after a couple days.



At the beginning I blamed it on activating my phone's wi-fi hotspot and downloading some files. So I waited the rest of the month for the plan to reset. Once it reseted, I decided to activate the 3G and while I left my phone unattended, in less than 12 hours, my phone had consumed +400MB!!!



Taking a closer look the Android OS had been used more than 10GB of wi-fi over the last month (I don't have any games, web browser nor audio/video application for this to be possible!). Looking back, this behaviour seems to have started between the 7th and 14th of May.



Android OS High Internet Consumption



So as some android forums suggested, I decided to install "Onavo Count" to find the culprit. It turned out to be Google Apps/Google Play Services:



Google Play Services High Internet Consumption



Onavo registered that Google Play Services had consumed 189MB of my data plan just a couple of hours I had it installed! I turned off the 3G immediately, but still after 3 days, Onavo registered it consumed 1.8 GB of Wi-Fi...



I've looked through many forums, yet none has been able to provide a solution that works for me.




  • Some suggest one should restrict the app's background data, but that doesn't solve the high Wi-Fi consumption problem...

  • Others suggest upgrading CyanogenMod to the lastest stable build (v 13.0-20160418), but that broke completely the functionality of all Google Apps (constant crashes that make the phone unusable... luckily I did make a backup... backups are good).

  • There are suggestions of removing permissions and functionality, but I've played with every setting and removing all Google Play services functionality to no avail...



Has anybody encountered this problem and has been able to solve it?


Answer

TL;DR:




  1. Install Autorun Manager (you must have root access)

  2. Go into the settings and enable "Show System Entries" and "Enable system app disable"

  3. Disable permissions for "com.android.gsf.update.SystemUpdateService$Receive" and "com.android.gms.update.SystemUpdateServiceReceiver"

  4. Sigh in relief as your mobile plan is freed from Google Play's insatiable hunger for data.






After a long afternoon of googling, I ended up finding some old but interesting thread on reddit from 2013 that detailed a problem very similar to mine. Although they talk about the Nexus 4, what they discussed seemed to apply for my Nexus 5.



Caseyls, the original poster, seemed to have concluded that the problem is that Google Play services is constantly downloading an update:




[...] Your phone is trying to update to [a newer version of Android]. It downloads the update files, but then when it goes to try to tell you to update, [some] of the files are [missing]. [... Then] your phone deletes the update files, and tries [to download them] again. And again. And again.




The poster suggested solutions were pretty much the same ones I found all over the internet, but an user named Dourel suggested something useful they found on XDA:




Install Autorun Manager from the Play store. Then enter its recommended advanced mode. Go into the settings and enable the following : system entries and system app disable. Disable com.android.gsf.update.SystemUpdateService$Reciever under Google Service Framework




So as it was suggested, I installed the app and enabled the options "Show System Entries" and "Enable system app disable" in the settings, like in the picture below:



Autorun Manager settings



Then looked for Google Play Services in the list of apps, expanded its contents, and looked for "com.android.gsf.update.SystemUpdateService$Receive". Sadly, as the first picture below shows, that permission had already been disabled in my case (don't know how that happened though). So I thought I was back at square one.



Autorun Manager Google Play Services services



But I wasn't going to give up just yet. Searching more thoroughly I found out there was another service called "com.android.gms.update.SystemUpdateServiceReceiver" that was checked on. So naturally I checked it off. To test it whether it worked or no, I left the Wi-Fi on all night and crossed my fingers for it to work.



The next morning, Onavo Count (the app I mention in the question) reported that no substantial amount of Wi-Fi data had been consumed, so I proceeded to test leaving the phone's 3G data plan for the rest of the day (Wi-Fi off of course). To my rejoice, as of tonight (12 hours later), my data plan has barely even been used. Less than 1MB was consumed all day! Yay =)



So that's it! The most effective solution I could find to stop this madness. I hope it works for anybody else.


Topics


2D Engines   3D Engines   9-Patch   Action Bars   Activities   ADB   Advertisements   Analytics   Animations   ANR   AOP   API   APK   APT   Architecture   Audio   Autocomplete   Background Processing   Backward Compatibility   Badges   Bar Codes   Benchmarking   Bitmaps   Bluetooth   Blur Effects   Bread Crumbs   BRMS   Browser Extensions   Build Systems   Bundles   Buttons   Caching   Camera   Canvas   Cards   Carousels   Changelog   Checkboxes   Cloud Storages   Color Analysis   Color Pickers   Colors   Comet/Push   Compass Sensors   Conferences   Content Providers   Continuous Integration   Crash Reports   Credit Cards   Credits   CSV   Curl/Flip   Data Binding   Data Generators   Data Structures   Database   Database Browsers   Date &   Debugging   Decompilers   Deep Links   Dependency Injections   Design   Design Patterns   Dex   Dialogs   Distributed Computing   Distribution Platforms   Download Managers   Drawables   Emoji   Emulators   EPUB   Equalizers &   Event Buses   Exception Handling   Face Recognition   Feedback &   File System   File/Directory   Fingerprint   Floating Action   Fonts   Forms   Fragments   FRP   FSM   Functional Programming   Gamepads   Games   Geocaching   Gestures   GIF   Glow Pad   Gradle Plugins   Graphics   Grid Views   Highlighting   HTML   HTTP Mocking   Icons   IDE   IDE Plugins   Image Croppers   Image Loaders   Image Pickers   Image Processing   Image Views   Instrumentation   Intents   Job Schedulers   JSON   Keyboard   Kotlin   Layouts   Library Demos   List View   List Views   Localization   Location   Lock Patterns   Logcat   Logging   Mails   Maps   Markdown   Mathematics   Maven Plugins   MBaaS   Media   Menus   Messaging   MIME   Mobile Web   Native Image   Navigation   NDK   Networking   NFC   NoSQL   Number Pickers   OAuth   Object Mocking   OCR Engines   OpenGL   ORM   Other Pickers   Parallax List   Parcelables   Particle Systems   Password Inputs   PDF   Permissions   Physics Engines   Platforms   Plugin Frameworks   Preferences   Progress Indicators   ProGuard   Properties   Protocol Buffer   Pull To   Purchases   Push/Pull   QR Codes   Quick Return   Radio Buttons   Range Bars   Ratings   Recycler Views   Resources   REST   Ripple Effects   RSS   Screenshots   Scripting   Scroll Views   SDK   Search Inputs   Security   Sensors   Services   Showcase Views   Signatures   Sliding Panels   Snackbars   SOAP   Social Networks   Spannable   Spinners   Splash Screens   SSH   Static Analysis   Status Bars   Styling   SVG   System   Tags   Task Managers   TDD &   Template Engines   Testing   Testing Tools   Text Formatting   Text Views   Text Watchers   Text-to   Toasts   Toolkits For   Tools   Tooltips   Trainings   TV   Twitter   Updaters   USB   User Stories   Utils   Validation   Video   View Adapters   View Pagers   Views   Watch Face   Wearable Data   Wearables   Weather   Web Tools   Web Views   WebRTC   WebSockets   Wheel Widgets   Wi-Fi   Widgets   Windows   Wizards   XML   XMPP   YAML   ZIP Codes