[Samsung Galaxy S10/S10+/S10 5G/E Cross Device Deve] JoeRifle:
Hehe, all good. You are doing enough for sure. I understand where you are going with Marvin resuming first: it would be a clean and more appropriate solution for everyone. Nobody knows what hidden incompatibilities else exist. Permissions might not be enough - especially when looking at safetynet. This might be a problem in the long run. But I hope that we (he) can find a way to circumvent it - and be it just to prove his magnificient coding skills and frivolous urge to break into security systems, I do have one at least :angel:)

Anyways, for me it seems to work what I have installed so far. Instructions coming now so that your users may follow my route - while we wait for good ole Marvin:

0. Pre first boot of OS: after flashing the system in TWRP, rm -r the UnifiedNlP folder in system/app. This ensures no conflicts with MicroG later on, as no other UnifiedNlP ever gets registered.

(probably optional, since it can also be solved by simply deactiving the preinstalled UnifiedNlP, but I wanted that system-app forever gone in case the user needs to factory reset the OS)

After having completely setup Magisk as usual (i.e. installing the Manager app in OS, flashing the include Magisk boot image in TWRP, starting Magisk Manager and downloading the remaining files to setup environment!):

1. Smali patch module for spoofing support.

https://xdaforums.com/apps/magisk/module-smali-patcher-0-7-t3680053

--> Be aware of the security risks though: this OS does not have any dialogue to ask for explicit user consent in order to grant the permission; the permission is openly available throughout the system now!

--> Off-Note: it would be best if the patcher itself could patch in a dialogue - which actually used to work a while ago, I remember some module for that in Smali patcher. A suboptimal alternative would be that custom roms were presenting an option during installation to include such support and apply all needed patches. IMHO the need for MicroG glory will persist and at some point spoofing will then be "needed" again - we do not have reason to believe that Marvin does not resume coding or that such a project would not be continued by other folks just in case!

2. Magisk Busybox module (probably optional, but might help some setups/apps/etc. lazy coding).

3. Then get this MicroG version here:

https://github.com/FriendlyNeighborhoodShane/MinMicroG_releases/releases

4. In the downloaded zip file (I used the NOGOOLAG version of them): edit the defconf by commenting out all backend installations under "stuff", and only(!) there. This will give you:

stuff="
#/system/app/AppleNLPBackend/AppleNLPBackend.apk
#/system/app/AuroraDroid/AuroraDroid.apk
#/system/app/AuroraStore/AuroraStore.apk
#/system/app/DejaVuNLPBackend/DejaVuNLPBackend.apk
#/system/app/LocalGSMNLPBackend/LocalGSMNLPBackend.apk
#/system/app/LocalWiFiNLPBackend/LocalWiFiNLPBackend.apk
/system/app/MicroGGSFProxy/MicroGGSFProxy.apk
#/system/app/MozillaUnifiedNLPBackend/MozillaUnifiedNLPBackend.apk
#/system/app/NominatimNLPBackend/NominatimNLPBackend.apk

...the other stuff unchanged

Close and save the editor. It will ask to update the zip file. Hit yes.

5. In the downloaded zip file also edit the system/etc/default-permissions/microg-permissions.xml by commenting out (<!-- "comment" -->) all unneeded permissions since we are not (yet) installing any backends - but note the explicit permission to run as background for Mozilla and for MicroG:

<exceptions>

<exception package="com.google.android.gms">
<!-- Phone -->
<permission name="android.permission.READ_PHONE_STATE" fixed="false"/>
<!-- Account -->
<permission name="android.permission.READ_CONTACTS" fixed="false"/>
<permission name="android.permission.WRITE_CONTACTS" fixed="false"/>
<permission name="android.permission.GET_ACCOUNTS" fixed="false"/>
<!-- Location -->
<permission name="android.permission.ACCESS_FINE_LOCATION" fixed="false"/>
<permission name="android.permission.ACCESS_COARSE_LOCATION" fixed="false"/>
<permission name="android.permission.ACCESS_BACKGROUND_LOCATION" fixed="false"/>
<permission name="org.microg.permission.FORCE_COARSE_LOCATION" fixed="false"/>
<!-- Storage -->
<permission name="android.permission.READ_EXTERNAL_STORAGE" fixed="false"/>
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" fixed="false"/>
</exception>

<exception package="org.microg.nlp.backend.ichnaea">
<permission name="android.permission.ACCESS_COARSE_LOCATION" fixed="false"/>
<permission name="android.permission.ACCESS_FINE_LOCATION" fixed="false"/>
[B]<permission name="android.permission.ACCESS_BACKGROUND_LOCATION" fixed="false"/>[/B]
<permission name="android.permission.READ_PHONE_STATE" fixed="false"/>
</exception>

[B]<!--[/B]
<exception package="org.fitchfamily.android.dejavu">
<permission name="android.permission.ACCESS_COARSE_LOCATION" fixed="false"/>
<permission name="android.permission.ACCESS_FINE_LOCATION" fixed="false"/>
</exception>

<exception package="org.microg.nlp.backend.apple">
<permission name="android.permission.ACCESS_COARSE_LOCATION" fixed="false"/>
<permission name="android.permission.ACCESS_FINE_LOCATION" fixed="false"/>
</exception>

<exception package="org.openbmap.unifiedNlp">
<permission name="android.permission.ACCESS_COARSE_LOCATION" fixed="false"/>
<!-- Storage -->
<permission name="android.permission.READ_EXTERNAL_STORAGE" fixed="false"/>
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" fixed="false"/>
</exception>
[B]-->[/B]

</exceptions>

All but the preinstalled Mozilla backend are commented out and MicroG has been given default access to background location.

Same for Mozilla Backend - while probably it isn't needed here though, as all other backends ask for it anyhow after installation, but it does not harm either. I put it to make sure.

6. One more edit of the system/etc/permissions/com.google.android.gms.xml:

<permissions>
<privapp-permissions package="com.google.android.gms">
<permission name="android.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST" />
<permission name="android.permission.FAKE_PACKAGE_SIGNATURE" />
<permission name="android.permission.INSTALL_LOCATION_PROVIDER" />
<permission name="android.permission.READ_PHONE_STATE" />
<permission name="android.permission.READ_CONTACTS" />
<permission name="android.permission.WRITE_CONTACTS" />
<permission name="android.permission.GET_ACCOUNTS" />
[B] <permission name="android.permission.ACCESS_FINE_LOCATION" />
<permission name="android.permission.ACCESS_COARSE_LOCATION" />
<permission name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<permission name="org.microg.permission.FORCE_COARSE_LOCATION" />[/B]
<permission name="android.permission.READ_EXTERNAL_STORAGE" />
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" />
</privapp-permissions>
</permissions>

This ensures the actual permissions for MicroG in case default-permissions gets ignored somehow.

7. All the whitelisting in the system/etc/sysconfig/nogoolag.xml can be left alone. It ensures background API and energy savings compatibility once we do install further backends.

8. Install the edited MicroG zip as a module.

9. After reboot, go to MicroG settings, grant missing permissions if any, and setup your Mozilla backend and Nominatim.

All should work now. You are free to install further backends from this point on. They should all work without further tweaks as they are whitelisted and ask for background access under Android 10.

Droidguard can be installed as a user app and then systemized by Systemizer. But this does not help with safetynet. Even when using MagiskHideProps. So IMHO only Pico Gapps might work here.

Thank you Modpunk and contributors again. And Keule-T for making me remember a different release version as my base for the edits.

PS Substratum does not really work. Be it full version or Lite. Modules do not get applied and the amount of free themes is minimal. Forget it atm. Lineage 17.1 does have its own theme engine. But not much in it at all. Hope this becomes alive and lively. And all the free launcher alternatives are basically full of chinese tracking or advertisements. Forget it. For launchers there is either $$$ or the open source variant OpenLauncher. But more I could not dig up...