You can install MinMicroG as a Magisk module or directly to the system. If you install as a module, it will not touch system at all, and you can easily remove it when something goes wrong. On the other hand, it will be tied to the Magisk installation and can be removed with it.
- If you want MinMicroG to be installed as a Magisk module, flash Magisk and boot your phone once to allow Magisk to setup properly.
- Open gear icons on the backends that have it and grant all neccessary permissions and configuration.
- Reboot.
Most of your self-check should be checked by now. If the last one or two are not, just enable high accuracy location, open the map tab on Satstat (from FDroid) and wait until a blue circle appears. They should be okay now.
### Prerequisites
##### [microG] Signature spoofing
Sigspoofing is a feature that is required by several core features of MicroG, namely those that require pretending to be the real Google Play Services.
All apps basically call Play Services like, "Yo, package `com.google.android.gms` with signature `x`, I need this done". So for microg to receive that message, microg needs to have the same signature.
But since we don't have google's keys to sign the microg apk with the same signature as gapps, we add an extra feature in Android that makes microg look like it has the play services signature. The app asks, "Hey Android, is this really play services?" Android responds <crossingitsfingers>, "Yeah, sure".
Of course, this is only a simplified explanation. To be more technically accurate, it patches Android's signature checking mechanism at the core. Because of that, apps can misuse the permission and compromise your device by allowing APKs from different (possibly malicious) creators to be installed over the current one.
ROMs with a source sigspoof patch are much less dangerous in this regard because they have sigspoofing as a part of the Android runtime permissions GUI, as opposed to dexpatched ROMs, which grant it universally without any user consent. Regardless, you should carefully watch who you grant sigspoof to, and how you update that app. I am not aware of any app that legitimately requires sigspoof other than microG, fakestore, and patched Playstore.
Because the permission has the possibility to be misused, several ROM maintainers (including LOS) have rejected putting sigspoof in the official code. But most of them have rejected it just because they are averse to trying to leave Google. Some ROMs that do include sigspoof in official builds are:
* LOS for µG
* AEX
* AospExtended
* AOSIP
* ArrowOS
* CarbonROM
* NitrogenOS
* OmniROM
There are several other ways to have your ROM support sigspoof too:
- Patching it at the source level
- Easiest if you self-build or know a friendly neighborhood maintainer
- OmniROM's commits to integrate it into Android's permissions GUI [here](https://gerrit.omnirom.org/c/android_packages_apps_PackageInstaller/+/36730) and [here](https://gerrit.omnirom.org/c/android_frameworks_base/+/36729)
- Patching it with Haystack patcher or Needle patcher
- Requires PC
- Using the NanoDroid-patcher standalone zip for on-device patching
- Fork of Haystack modified to run on-device
- Using an Xposed module called FakeGapps
- Using the SmaliPatcher application on PC (shrouded in mystery)
- Proprietary, windows only
- [Here](https://forum.xda-developers.com/showpost.php?p=78958124) OP of XDA thread admits they do not know of the source code, probably do not even have access to it
- [Here](https://forum.xda-developers.com/showpost.php?p=80287799), [Here](https://forum.xda-developers.com/showpost.php?p=80287989), [Here](https://forum.xda-developers.com/showpost.php?p=80292041), It connects to arbitrary Russian IPs and OP says it's probably nothing
##### [microG and UNLP] Network Location Provider support
Another major thing MicroG and UNLP do is providing network location to apps.
What is network location? It's a quick and rough estimate of your location, several hundred metres wide, made using cellular towers and wifi networks around you, before you get a precise GPS lock. Basically it's the wider circle that appears on your maps app quickly before a smaller accurate one appears.
It technically should not be needed for the functioning of most apps, but poorly coded ones that depend on Google Play Services often crash without it.
Most ROMs should support it, but some OnePlus's and Xaiomi's have other providers (like `com.qualcomm.location`) that do not allow other providers to bind with system.
MinMicroG does a little debloating that may even make it work on GApps-infected ROMs, but I've never tested and give no guarantees. (Well I don't give guarantees for clean ROMs either, but that'a a different thing)
Get a clean AOSP-based ROM.
Or if you're a masochist, there are several ways to clean those kinds of ROMs:
If multiple reboots do not solve this, some other provider might be overriding it, like `com.qualcomm.location`. Debloat them. If that doesn't solve it, your ROM may require source-level patches, detailed in the prerequisites section.
I should take these two paragraphs to clarify that Network location is NOT GPS. microG has nothing to do with your GPS. Network Location is that hugely approximated wide-circle that appears before you get a GPS Lock.
If you cannot get a location even on device only location mode, it's not microG. It's your app, your ROM, your device, or your cursed house. Change any of these.
To test network location, enable high accuracy location, and then use satstat (from FDroid), open maps tab and wait for the blue circle to appear.
Some new permissions are protected by Android now, and cannot simply be granted. You can try several things that may or may not work, depending on your ROM:
If you restored app data from old backups, there might be some configuration files left over preventing the app from registering for push with microG. Run this from a root terminal:
You should also be able to sync contacts with Google without proprietary apps or microG using the open-source CardDAV client DAVx5 (available on F-Droid or Play)
If they don't log into an account, try force stop and wipe data. Or perhaps logging out of all Google accounts, and logging in from inside the app's prompt.
If nothing else works, backing up the app from a working GApps setup and then restoring it should. Stuff like MagicGapps or WeebGApps should be helpful.
You can directly buy apps from the Play Store if you have it installed with microG. But if you don't, a much cleaner way is to buy it from the [Google Play](https://play.google.com) website through a browser.
If you've bought an app, you can download it without Play Store by using Aurora Store by logging in with your own account.
License verification, unfortunately, is something tied to Play Store and probably always will be. If you don't want to install it, all you can do is pester the devs to remove it or atleast offer alternative means of verification.
- The Titanium Backup devs are a bunch of nice people. If you email them, they'll give you offline verification codes.
In App Purchases are even more tied to Play Store. Not even vanilla Play Store will do, it has to be patched for sigspoofing to be able to use IAPs. Setialpha regularly grabs the latest release and patches it, and the product can be found in the NanoDroid F-Droid repository.