[Samsung Galaxy Tab S8] BoiledPotato:
I recently bought a Tab S8 Ultra. I didn't enjoy Samsung's stock OS (OneUI) all that much, but the available alternatives (LOS GSI, for example) meant losing a lot of functionality, so I decided to just root and debloat the stock ROM as needed.

One thing I struggled to get working was microG, mostly due to following outdated guides or installing outdated packages. So I decided to write this guide to hopefully save time for others who might want to do the same thing in the not-too-far future.

Here's how I installed and got microG working on a Tab S8 Ultra running OneUI 5.1.1 (Android 13):

A disclaimer before we begin: I tried out a bunch of stuff before I finally got microG working, so some of the steps in the guide may be unnecessary. I chose to include everything I suspected might be relevant just in case. If you notice a mistake or an unnecessary step, please let me know and I'll update the guide.

Prerequisites:

- Bootloader is unlocked

- Device is rooted and Magisk is installed with systemless hosts and Zygisk enabled

- A working Xposed Framework provider installation (Ex. LSPosed https://github.com/LSPosed/LSPosed)

If you don't meet the prerequisites, do the following first:

Unlock the bootloader (will wipe your data) and root your device by following this guide.

Install TWRP by following this guide. For the S8 Ultra I had to flash Magisk and the kernel provided by the guide afterwards. Otherwise I ended up in a bootloop.

Boot into the system and finish the device setup (you can skip connecting to the internet).

If Magisk is missing, install the latest apk you got from the guide above and open it. It should ask to reboot to perform additional configuration. Then open Magisk and enable systemless hosts and Zygisk in the settings.

Install an Xposed Framework provider. I used LSPosed.

Now that your device is ready, first we'll need to get rid of the packages that microG replaces. I prefer doing so in a reversible way, so I used Systemless Debloater to achieve that:

First, uninstall updates for Google Play and Google Play Services (Go into list of installed apps, find app on the list, select it, open three-dot menu on the top right, and choose uninstall updates). Edit: I also clear data and put my device into airplane mode just to make sure nothing re-installs any updates in the background.

Install SystemlessDebloater in Magisk.

It should create two files in your Downloads directory: a configuration file and a log file. We need to add the applications we would like to remove at boot into the configuration file. Either grab the file I attached to the guide and extract it into the Downloads directory, replacing the old one, or do it manually as follows:

Open the configuration file and add the following entries at the end of the file, each on a separate line (do not include a hashtag before each entry as in the examples within the configuration file; that's for comments):

GmsCore
GoogleServicesFramework
Phonesky

To make sure it worked, reboot your device and you should see a bunch of notifications from apps complaining about the lack of Google Services. If you don't, install SystemlessDebloater again and make sure you see this line in the installation log in Magisk:

Input config file: /storage/emulated/0/Download/SystemlessDebloater.cfg

and also double-check your config file.

Now we can replace GSF and the play store with microG. I used the MinMicroG installer for convenience:

Since this is a stock ROM, we first need to enable signature spoofing. In order to do that, install FakeGApps and enable it in your Xposed framework provider (I used LSPosed).

Reboot and make sure the module is enabled.

Grab the latest release of MinMicroG. Check their wiki to determine which variant is the best for you. I chose the NoGoolag variant (at the time of writing this won't pass Play Integrity, because it installs Fake Store instead of Play Store, which doesn't pass it at this point in time; however, it will pass SafetyNet. See edit below for further info)

Install it in Magisk.

Reboot the device. You should now see "microG Installer" in the app drawer as well as "microG Companion App" in your apps list in settings.

Open microG Settings and go through the self-check, making sure device spoofing in particular is enabled and working. Grant it all permissions. You may need to go into the apps settings to be able to grant it background location access permission. Enable additional features (push notifications, safetynet, location backends) as needed.

Optional: Uninstall or disable additional Google stuff you won't be using. I choose something like Package Manager for this - a reversible option, since it can disable packages and not just uninstall.

Optional: Update microG and its companion app to the latest version by adding/enabling their repository in F-Droid.

Lastly, if you want to pass Safetynet checks, do the following:

Download and install the latest PlayIntegrityFix in Magisk.

Reboot.

Confirm that you are able to pass SafetyNet checks either from within microG Settings or by using something like YASNAC https://github.com/RikkaW/YASNAC

While this is supposed to fix both Play Integrity and Safety Net, I couldn't get Play Integrity to work with it, but that's a problem for 2025 (see https://developer.android.com/privacy-and-security/safetynet/deprecation-timeline)

I used Play Integrity Check to check Play Integrity. I passed it with stock Gapps, but not with microG.

Edit: Just a few additional notes.

I first tried to install microG using microg_installer_revived, but that didn't work for some reason.

I also hid the Magisk app after installing it to hinder that method of root detection (can be enabled in the app's settings menu), but I don't think that has any effect on microG and SafetyNet/PlayIntegrity.

Edit 2: Attached SystemlessDebloater.cfg for convenience.

Edit 3: So I dug around a bit more into this Play Integrity + microG situation and found these relevant issues on Github:

[Play Integrity API] Binding to the service in the play store failed . This is due to having an old play store version installed on the device · Issue #2050 · microg/GmsCore

Binding to the service in the play store failed . This is due to having an old play store version Is this fake store issue or gms core issue

github.com

followed by

Implement Play Integrity by js6pak · Pull Request #2077 · microg/GmsCore

It doesn't work yet, I'm suspecting microg's droidguard implementation, but it also doesn't make sense as there are recent reports of play integrity working through patched play store (I wasn't abl...

github.com

So if you know you need to pass Play Integrity right now, make sure you grab a microG installer that installs the Google Play Store instead of Fake Store. Personally, since I don't have any use case that requires passing Play Integrity at the moment, I'll just stick with Fake Store and monitor this PR for progress on the issue.