I’ve tried for a few months to use microG to bypass Google dependency but unfortunately a few of my essential apps (including one of a local electric minicar sharing service ) will simply refuse to run without Google Play Services, while others won’t run when microG isn’t updated timely after a new Play Services version is out (it’s the case right now, microG remains stuck into version 0.2.4-111 which isn’t current enough). Some apps also complain about lack of Google Location even if NLP works because they interface in nonstandard ways with Google services. This has proved to not be practical. Requesting developers to avoid Google is a dignified task but still too Quixotic given the incipient state of the open smartphone movement. Those who can live without Google have all my support, but I can’t.
So I did a little bit more of research and the good news is that a decent compromise is possible. The general idea is to use Open GApps while disabling Google dependency as much as possible without breaking Play Services. For example, I was able to run all my essential Play Services-dependent apps without signing in with a Google account and without using Google Location Services.
Below are the steps, in my case having microG previously installed (ignore microG steps if you don’t have it, and please share any idea to this thread if you find additional ways to reduce Google dependency):
Give permission to apps that lost them if first Open GApps installation
Make sure Google Location Services is working (blinking blue/gray pin on SatStat)
Opt out of targeted ads on the newly created Google menu in settings
Disable Cast Media Controls on the Google menu
Disable App Preview Message on Google menu
Revoke all permissions of Google apps
Deactivate Find My Device and Google Play protect on Google menu, Security
Disable speech data sharing in Accessibility / Text-to-Speech / Google Text-to-Speech (gear icon) / Settings for Google Text-to-Speech (this one is buried really deep!)
Disable Wi-Fi scanning on scanning menu (hidden on FP Open, use settings search function)
Disable device administrator access to Find My Device on security menu
Turn off user access for Google apps on security menu
Install your preferred backends, give permissions accordingly (no need to move to system)
Activate backends using UnifiedNlp Settings app
Reboot
Check if the first two and the last two boxes on UnifiedNlp Settings have checkmarks. Ignore other deceptive checks
SatStat should indicate that Google Location Services is on by presenting the blue/grey blinking pin.
Disable Network Location Service and Google Location Service (components of Google Play Services), this step is necessary to stop Google scanning and to allow UnifiedNLP to effectively bind the backends to the system
All backend boxes in the UnifiedNlp app settings will need to be cleared and rechecked after each reboot
I have updated the guide above with more precise instructions and with the results of further evaluations following M.A.K.'s instructions. This setup allowed me to disable Google Location Services while maintaining compatibility with most apps that depend on Google Play Services and on Google Location Services (the only exceptions are the few apps that depend on passing Google SafetyNet check). Google Cloud Messaging remains functional and is in my case the only remaining connection to Google, keeping in mind that this was also the case with the microG installation. Having to recheck the backend boxes after each reboot is the major drawback of this installation, couldn’t find a way to do it with automated intents. It’s probably a bug due to the interactions between Open FP, UnifiedNLP GAPPS and having disabled Network Location Service and Google Location Service.
Installation of the Xposed UnifiedNlp module solves two problems: it eliminates the need of rechecking the boxes for each backend after every reboot and it allows UnifiedNlp to be installed as user app, what is more practical for app and system upgrades. It shouldn’t be necessary, since org.microg.nlp has been integrated as location provider in the FP2 framework, but apparently it still is. It appears however that it keeps Google Location active concurrently with UnifiedNlp, probably an intended behavior. Apps that are Google Location dependent will tap on the service when they need it, while correctly coded apps will use UnifiedNlp. I dislike the idea of having Google Location enabled permanently and there’s no way of knowing what kind of information it shares with Google. I’m setting up a script therefore that enable’s Google location only when Google Location dependent apps are run. Here the guidelines for installing minimal Google dependency installation of Open GApps with Xposed:
Use TWRP to install Open GApps pico (or a broader version if necessary)
Give permission to apps that lost them if first Open GApps installation
Make sure Google Location Services is working (blinking blue/gray pin on SatStat)
Opt out of targeted ads on the newly created Google menu in settings
Disable Cast Media Controls on the Google menu
Disable App Preview Message on Google menu
Revoke all permissions of Google apps
Deactivate Find My Device and Google Play protect on Google menu, Security
Disable Wi-Fi scanning on scanning menu (hidden on FP Open, use settings search function)
Disable speech data sharing in Accessibility / Text-to-Speech / Google Text-to-Speech (gear icon) / Settings for Google Text-to-Speech (this one is buried really deep!)
Disable device administrator access to Find My Device on security menu
Turn off user access for Google apps on security menu
Give UnifiedNlp and XposedUnifiedNlp location permission using Self-Check in its settings or in apps settings, and ignore deceptive missing checkmarks, FP Open has been made compatible with UnifiedNlp GAPPS a while ago
Check if UnifiedNLP is bound to the system, it should be listed in Location settings, Location services
Install your preferred backends, give permissions accordingly (no need to move to system)
Activate backends using UnifiedNlp Settings app
Reboot
Check if all boxes on UnifiedNlp Settings have checkmarks. Ignore the final two deceptive failed checks
SatStat should indicate that UnifiedNlp is working with a solid blue pin. A test with the dummy backend from Xposed should show a solid blue pin in Georgia (careful to not use this one concurrently with other backends to not create false data in their databases).
Google dependent apps should still work with Google Location Services.
Disable Network Location Service and Google Location Service if wanted, but it will break Google dependent apps
Enjoy your “almost” Google-free but still Google-compatible Android, and use Gerald’s guide when upgrading the FP Open OS
Disable speech data sharing in Accessibility / Text-to-Speech / Google Text-to-Speech (gear icon) / Settings for Google Text-to-Speech (this one is buried really deep!)