A guide to install Open GApps with minimal Google dependency

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 :disappointed_relieved:) 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. :+1:

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):

  • 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 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
  • Disable Google Play app
  • Install UnifiedNlp GAPPS (org.microg.nlp)
  • Move UnifiedNlp to system/priv-app (can use a system app mover)
  • Reboot
  • Give it location permission using Self-Check, 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 Nominatim Geocoder Backend
  • 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
  • Enjoy your “almost” Google-free but still Google-compatible Android, and use Gerald’s guide when upgrading the FP Open OS
12 Likes

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.

1 Like

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
  • Disable Google Play app
  • Install UnifiedNlp GAPPS (org.microg.nlp)
  • Install XposedUnifiedNlp
  • Reboot
  • 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 Nominatim Geocoder Backend
  • 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
2 Likes

Added a discovered item to both guides:

  • 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!)
1 Like

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.