This is a long post, so if you want, skip ahead to The Fix:...
About a week ago my Android devices started to go haywire. For example, two original Gen 2 Kindle Fires (running Amazon's heavily-reskinned version of ICS 4.0.3) started throwing "Unfortunately, Google Play Services has stopped" messages every few seconds, which required clicking on "OK" to continue.
At about the same time, the battery life on my OnePlus One (running stock CM 11.0 4.4.4 Kit Kat w/root) sank without a trace. I used to finish up the day with 50-60% remaining, and now I was at 15-18%. The culprit was Google Play Services, which went from "hey, I never noticed THAT before" to "holy smoke, it's sucking up more juice than the screen".
This is the part where I thought, "Okay, I'll roll back the googleplayservices apk, restore the status quo, and eventually King Google will roll out a fix". Easy peasey. Except not!
I started with the Kindles. First I verified that Automatic Updates were disabled in Google Play, then I opened Settings/Apps/Google Play Services and hit "Uninstall Updates". Verified that the installed version was the original, rebooted, everything worked as it should. No more errors. Simple, right?
About an hour later, I picked up one of the Fires and got the error again. Long story short, I realized that Google silently updates Google Play Services (along with a few other GAPPS) regardless of your auto-update setting. I tried disabling the app, but the button was grayed out. Since these were Kindles and not phones, I just uninstalled Google Play Services. I'm not recommending anyone do that, but it was a down-and-dirty resolution, and easily reversible.
I turned my attention to the OnePlus One, and that's where things got really ugly. I did a web search about the Google Play Services battery life issue, and found it to be a huge problem for many users. At that point, the solution seemed to be manage GPS through App Opps, or an aftermarket progam, to keep it's activity under control. But no matter how I tweaked it using App Ops, DisableService or MyAndroidTools (the last two are excellent free aps by WangQi, available on Play Store) I wound up with poor battery life, plus I started getting the "Unfortunately, Google Play Services has stopped" error, although not as frequently as on the Kindles. I couldn't disable or force stop GPS, but I could click "Uninstall Updates".
But then I got "can't uninstall because this package is an active device administrator". No problem, I thought, I'll just remove GPS as a device administrator. Turns out, it was a hidden device administrator. And Google had hidden it so hard, I couldn't view it even with an app created just to view hidden device admins.
DISCLAIMER: This worked for me, with my OPO running stock, rooted CM11 KitKat 4.4.4. I'm not responsible for bricking your device! Backups strongly suggested.
1. Download and install System App Remover from the Google Play Store.
2. Put your device in Airplane Mode in order to prevent auto upgrade of GPS.
3. Open System App Remover and select "System App" from the menu.
4. Find Google Play Services in the list. It should be marked "Should keep", which is a suggestion from the publisher. Select it and presss "Uninstall". Ignore completion message.
5. Using Settings/Apps, verify that Google Play Services has reverted to the factory-supplied version. It should be <7. "Force Stop", "Uninstall Updates", and "Disable" buttons should no longer be grayed out.
6. Using a root-enabled file manager like ES File Explorer, open \data\app and create two new, empty folders titled com.google.android.gms-1.apk and com.google.android.gms-2.apk. This tricks Google into causing auto updating of your GPS to fail.
7. Reboot device and toggle Airplane Mode off.
At this point, if your GAPPS are all working to your satisfaction, you can stop. Just bear in mind that if you upgrade your GAPPS in the future, they may crash or (more likely) refuse to run because they require a more up-to-date GPS app. Everything worked fine for me, but I decided to bump my GPS version to something closer to 7 as a hedge against planned Google obsolescence.
If you decide to update to something newer than the factory GPS app, note that you need to get an APK compatible with your device. There's an excellent explanation of this on the apkmirror.com site, but unfortunately I can't post the link here. Just Google "apkmirror googleplayservices apk device".
I decided to bump up my GPS to 6.5.87. To upgrade to anything older than the current, poisoned version of GPS, you'll need to do the following:
1. Perform your own research and decide which version of GPS you think will be best for your combination of device and apps. Don't worry about getting it right the first time, you won't be locked down anymore and can upgrade/downgrade GPS easily.
2. Download the appropriate APK from apkmirror.com or the site of your choice.
3. Put your device in Airplane Mode.
4. Open your file manager app, navigate to \data\apps and rename the two dummy folders you created earlier by adding "XX" in front of the name so that they no longer serve their intended purpose.
5. Install the APK you downloaded earlier.
6. Using Settings/Apps, verify that Google Play Services has been upgraded to the version you selected.
7. Open your file manager and rename the two dummy directories, removing the "XX" you added earlier.
8. Reboot device and toggle Airplane Mode off.
9. Enjoy your newly un-shackled Android device!
For what it's worth, my phone had been working perfectly for about 24 hours since this process. I did attempt to update my GMail app to the current version, 5.1.9, which failed because it requires a newer version of GPS. I updated to GMail 5.0.1 instead, which seems to be a good compromise. So there may be some minor tweaking of your GAPPS required, in terms of finding versions that work well for you.
If you have an old phone with limited resources, this should work out really well, because the older versions of GPS take up more less space, and they don't require nearly as much CPU time or data.
Hope this helps. Please share your experiences via replies!