[OnePlus 5T  Guides, News, & Discussion] DoR3M3:
microG

I am no longer working on this, or updating any information here! This was created back in the day of Oreo.

I've personally moved on and I'm presently using /e/ which you can see the info here and get the ROM for OP5T.

/e/OS documentation - OnePlus 5T

Info about OnePlus 5T - dumpling

As of this post edit on 10/20/22 I'm using 'e-1.4-r-20220922220394-dev-dumpling' and /e/ uses microg. It runs quite nice, so check it out!

microG is Freedom, Security & Privacy from Google, by replacing the Google Services & Framwork, also improving phone and battery performance!

This guide shows you the steps needed to Deodex, Signature Spoofing, Debloat Gapps and install microG.

This is not just a OxygenOS guide, this works on any ROM with Gapps baked in, lack signature spoofing, or doesn't come with microG installed! The only areas specific to OxygenOS is using Xposed and the microG permissions, both which might not be needed on other ROMs, everything else you follow in this guide for any ROM.

The information is here to give you a complete understanding of the process, it's just the Android way is all! Without the information and only steps to follow, there are a lot of areas you could experience problems, and not know how to deal with them.

There is no shorter, or easier way to accomplish this, if there was I would of made a smaller quickie guide, this is the way it works in Android! If you want to do microG you're going to have to read, it looks like a lot but it's not, once you've done it a few times!

Remember, the information is here to help you!

Pie is not supported in Xposed, and at the present moment OxygenOS requires Xposed.

You need to WIPE and install the ROM and start fresh, otherwise it can get complicated, you've been warned! You also need to follow the steps exactly, do not deviate, the process is picky, that is why the steps are to be done this way!

When you go online for the first time do not allow any Google updates! Do not install any Gapps, or anything, other than what is mentioned in this guide!

Keep online time limited to the steps needed in this guide. Connect only to accomplish what is needed and keep an eye out for Google updates and cancel them!

I highly recommend making TWRP backups every step of the way, in case of a mistake, then you don't have to start all over!

Once you get the steps down, the entire process takes around 30-60 minutes to complete!

Each of the RED sections are the STEPS, just read and follow them one by one!

DEODEX OR FAKEGAPPS

For stock or custom roms that don't support signature spoofing, you can either deodex the rom with the VDEXEXTRACTOR steps and use the Nanodroid-patcher to apply signature spoofing, or use the Xposed FakeGapps module which enables signature spoofing support.

If you use an application called "Signature Spoofing Checker" with the Xposed FakeGapps module installed and it shows the support disabled, ignore it. FakeGapps is working, it's a bug in the "Signature Spoofing Checker". 5.1.5 shows Green/Enabled and 5.1.6 shows Red/Disabled.

If you use the Xposed FakeGapps module skip to the [MAGISK] SYSTEMLESS XPOSED section! If you know how to compile for vdexExtractor, there is no reason to use FakeGapps!

VDEXEXTRACTOR

This method shown below is a simple Deodex that NanoDroid uses. SuperR's Kitchen also uses vdexExtractor, but instead does a Full Deodex. The NanoDroid method is simpler, without the need for SuperR's Kitchen. I plan on eventually adding a method of using SuperR's Kitchen to the guide at some point in time.

This NanoDroid Deodex method shown here is good, it's just not a Full Deodex, it hurts nothing, it's not better or worse, just different! So, if you aren't concerned with needing/wanting the full customization capability that a Full Deodex offers, or you have no idea of what is being said here, then don't worry!

ROMs that are either in a state of VDEX or ODEX need to be DEODEX in order to apply Signature Spoofing! So depending on the ROM, check to find out which state it is in, and then you will apply either the VDEX or ODEX methods outlined in this guide; https://gitlab.com/Nanolx/NanoDroid/blob/master/doc/DeodexServices.md

In this guide for OxygenOS you will be following the VDEX method. OxygenOS follows the VDEX method because it has both .odex and .vdex files in the system.

You will have to compile the vdexExtractor source on either Windows, MacOS, or Linux, this guide doesn't cover compiling.

At the end of this section where you download vdexExtractor on GitHub, under the Dependencies section being mentioned there, this is a brief explanation of that information to help get you started.

This is only the basics explained to help get you now moving in the right direction for compiling. If you have any other concerns or questions please search on Google, there is a wealth of information online to help you.

1. macOS users will need to compile by installing Homebrew https://brew.sh/ and adding the dependency zlib-devel as brew install zlib-devel. Then you should be able to use the terminal in macOS to run the command, ./make.sh gcc or sh make.sh gcc to now compile.

2. For Linux users you need to make sure you have libz-dev installed and then at a terminal run either, ./make.sh gcc or sh make.sh gcc to compile.

3. For Windows users you'll need to install cygwin, https://www.cygwin.com/ cygwin helps to give you a Unix/Linux like build environment. Make sure to install zlib-devel from the cygwin installer, it should be listed under the Devel section which you click it so it changes from the word Default to Install, if you don't see zlib-devel listed there, then search for it. There is a lot of information online about installing and using cygwin, hopefully this link below is still working fine for Windows 10 to help you setup the Cygwin Path to the Windows Environment Variable, to make it easier to use the command prompt to compile from. In Windows you'll also run the commands, either ./make.sh gcc or sh make.sh gcc to compile.

Install Cygwin and How to Use Linux Commands in Windows with Cygwin

https://www.howtogeek.com/howto/41382/how-to-use-linux-commands-in-windows-with-cygwin/

If compiling is a problem you can always use the Xposed FakeGapps module, but it's best to DEODEX/PATCH the ROM!

Learn to compile, you'll be better off for it in the long run, switch to Linux it makes the process of compiling a lot easier than any other OS.

Be sure to look at the vdexExtractor Github for basic compile information, where you'll download the source; https://github.com/anestisb/vdexExtractor

NANODROID PATCHER

Download the NanoDroid-patcher; https://xdaforums.com/apps/magisk/module-nanomod-5-0-20170405-microg-t3584928

Download from Stable Download (Nanolx) - As of to date it's version NanoDroid-patcher-20.2.20181122.zip

DEODEX SETUP

Boot to TWRP and mount the /system read-write.

Once you have mounted the /system in TWRP run these commands on your computer to deodex!

DEODEX COMMANDS

adb pull /system/framework framework

cp framework/services.jar services.jar-backup

vdexExtractor -i framework/oat/arm64/services.vdex --ignore-crc-error

mv framework/oat/arm64/services_classes.dex classes.dex

zip framework/services.jar classes.dex

zip -j framework/services.jar classes.dex

adb push framework/services.jar /system/framework

adb shell

chmod 644 /system/framework/services.jar

chown root:root /system/framework/services.jar

SIGNATURE SPOOFING

Unmount the /system read-write - TWRP > Mount > uncheck System

Install the NanoDroid-patcher in TWRP. (This takes around 10 minutes!)

If you did the deodex correctly, when flashing NanoDroid-patcher it will say Deodex.

When the patch has completed reboot the phone.

[MAGISK] SYSTEMLESS XPOSED

Xposed does not pass SafetyNet!

Download [Magisk] Systemless Xposed - XposedInstaller_3.1.5-Magisk.apk; https://xdaforums.com/xposed/unofficial-systemless-xposed-t3388268

MAGISK ROOT

Boot to TWRP and install Magisk to root your phone.

Reboot the phone and update Magisk.

MAGISK MODULES

Do not reboot until you have installed all three modules!

Install the Xposed Framework (SDK 27) - For Xposed to install, Systemless Xposed and Magisk need to be the only two things first installed in the rom!

Install the Debloater (Terminal Emulator) - Debloats the phone Systemlessly!

Install the F-Droid Privileged Extension - Read about it here; https://f-droid.org/en/packages/org.fdroid.fdroid.privileged/

After installing these three modules reboot your phone!

XPOSED MODULES

Open Xposed while connected online, it should be displaying in Green! If it is Red you might not of followed the steps correctly, especially the part about doing this on a "Fresh Clean ROM", and following the guide step by step.

Install FakeGapps if you did not deodex the rom, and then apply the signature spoofing NanoDroid-patch!

The XposedGmsCoreUnifiedNlP module will be installed later with microG, mentioned in the MICROG section!

If you installed FakeGapps, go to the Modules section and check the module to enable it, then reboot the phone.

F-DROID

You have basically 3 choices for applications; Aurora Store, F-Droid, Yalp Store.

For now I recommend you install F-Droid, download from https://f-droid.org/en/

After installing F-Droid go to Settings, toggle on Expert mode, make sure Privileged Extension is checked, close and reopen F-Droid and then update F-Droid if a new version is available!

You'll need a terminal emulator in Android because Debloater (Terminal Emulator) runs from the command line, it doesn't have a GUI. I recommend using Termux, it's a very powerful terminal emulator with many features.

Search for an install Termux!

DEBLOATING APPS SYSTEMLESSLY

Do not debloat the Google Play Store if you plan on using it!

Do not create/add a Google Account, it will only get removed when you debloat out Google, instead wait to the last section I WANT MY GOOGLE & STAY PRIVATE TOO, and add it after you have installed and setup microG!

If you want to keep some Gapps that's your choice! Be sure to run any Gapps that you want to keep before debloating. This is not always the common situation where you need to run Gapps before debloating, it's typically rare, but some odd applications will have a hard time working with microG if this isn't done. For applications you are not sure of, be sure to run them, especially applications that use Location, such as OnePlus Weather and the Camera, etc., before debloating!

Make sure you are connected online when you run Termux for the first time.

With Termux running, at the command prompt type su for superuser access and grant root access.

Type debloat and you'll remove from 1 - System Apps & 2 - System Priv-Apps.

Type the numbers with spaces in between for the applications you are debloating, as an example; 15 16 17.

When you have the applications typed in and you are ready to debloat, tap enter.

For the best Gapps Free experience debloat all of these;

Android Setup

Calendar

Chrome

Drive

Duo

Gboard

Gmail

Google

Google Backup Transport

Google One Time Init

Google Partner Setup

Google Pay

Google Play Movies

Google Play Music

Google Play Services

Google Play Store - (Do not debloat if you're going to use!)

Google Services Framework

Market Feedback Agent

Maps

Photos

On a note of Privacy, there's information online in regards to OnePlus and Analytics/Data Mining as it relates to the below applications.

I highly recommend that if you're serious about privacy to do your own research and judge for yourself, but if you're asking me I debloated all of them!

BugReportLite

EngSpecialTest

FactoryMode

Insight Provider

LogKitSdService

OnePlusLogKit

Oneplus System Service

RfToolkit

After debloating you are suppose to reboot your phone for the changes to take effect!

If you debloated Chrome, make sure you update the Android System WebView in either the Aurora Store or Yalp Store, after you've completed the installation of microG!

Make sure you debloated Gboard, be sure to install another keyboard before rebooting! I recommend installing AnySoftKeyboard from F-Droid!

If you make any mistakes, you have the option to reinstall applications!

Reboot the phone...

If any updates occurred, after debloating some Gapps might still appear in the system. These now turn into User-Installed applications, so either in the Settings > Apps > Application List, you'll have the option to uninstall, or if the application is in the App Drawer, you can now uninstall it from there!

If the Google Play Services is listed in the phone but no option shown to uninstall, follow the GMS PROBLEMS section! Regardless of what you see or don't see in the Application List be sure to still follow the GMS PROBLEMS section!

GMS PROBLEMS

Before installing microG you need to make sure this GMS directory com.google.android.gms is out of the system!

Run this command;

adb uninstall com.google.android.gms

If com.google.android.gms exists and you were able to remove it, you'll see this reply; Success

If you see a lot of output with this line, then you have no changes or updates installed, there's nothing to remove;

java.lang.IllegalArgumentException: Unknown package: com.google.android.gms

If com.google.android.gms exists and the Google Play Services is still active, you'll see this reply; Failure [DELETE_FAILED_DEVICE_POLICY_MANAGER]

If the Google Play Services is still active you will have to manually remove com.google.android.gms.

Run these commands;

adb shell
su
cd /data/data
rm -rf com.google.android.gms

If you run rm -rf com.google.android.gms and get this reply back; rm: databases: Directory not empty, just run the command over!

Even if the command gave you a success response, or unknown package, be sure to visually check for the presence of com.google.android.gms in /data/data!

Exit and reboot your phone!

If you had to manually remove com.google.android.gms, go to the Settings > Apps > Application List > Three Dots (Upper Right) > Show system apps. If you see the Google Play Services uninstall it, the option to uninstall should now be available. Click uninstall and wait a few seconds for a popup to appear and click ok to remove.

microG creates com.google.android.gms, do not remove it after you have microG installed!

DALVIK CACHE & CACHE

Before installing microG, boot into TWRP and Wipe the Dalvik Cache and Cache!

When done wiping reboot the phone back into the system.

NANODROID-MICROG

At the present moment it is better to use the NanoDroid-microG version! Official microG is not getting as much development!

Visit the NanoDroid post on XDA;

https://xdaforums.com/apps/magisk/module-nanomod-5-0-20170405-microg-t3584928

Down from the Stable Download (Nanolx) link!

If you use the NanoDroid-microG version, take the "FakeStore" "GmsCore" "GsfProxy" from the zip, look for them in the folders under /system/priv-app/ use the "GmsCore_NanoDroid" and "GsfProxy_NanoDroid" and be sure to rename them, and follow the MICROG steps below using these versions instead of the Offical microG!

MICROG

microG on stock Android sometimes take a little more effort with Gapps installed compared to custom roms without Gapps, but the process typically only involves dealing with the preinstalled Gapps and Google updates. Most of the time you only need to follow the GMS PROBLEMS steps outlined in the guide when running into problems.

If you debloat the Play Store and then later reinstall it, make sure you do not have FakeStore installed, Play Store will not go back in with FakeStore installed!

microG DroidGuard Helper is only required if you want to use applications that require SafetyNet or to test DroidGuard!

The microG UnifiedNlP package at this point in time is not supported in OxygenOS, for this reason the XposedGmsCoreUnifiedNlP Xposed module needs to be installed!

Open Xposed and install XposedGmsCoreUnifiedNlP, go to the Modules section, check the module to enable it!

Android 7 (or later) needs to have microG installed to the /system.

If you use the Official microG download FakeStore GmsCore GsfProxy! (It's higly recommened to use the Nanodroid-microG version!)

FakeStore - (Only needed if you're not using the Play Store)

https://github.com/microg/android_packages_apps_FakeStore/releases

GmsCore

https://github.com/microg/android_packages_apps_GmsCore/releases

GsfProxy

https://github.com/microg/android_packages_apps_GsfProxy/releases

Rename all the APK!

FakeStore.apk

GmsCore.apk

GsfProxy.apk

Create theses directory names and place the APK in them!

FakeStore

GsfProxy

GmsCore already has a directory in /system/priv-app!

Debloater (Terminal Emulator) places a file .replace in all the /system/priv-app directories that you debloated.

In GmsCore the contents of ".replace" is "Google%Play%Services", so that the Google Play Services apk doesn't populate the directory. If you were to remove or rename ".replace" and rebooted, you would see the actual Google Play Services GmsCore.apk in the directory!

Do not touch these hidden ".replace" files!

Because GmsCore already has a directory in /priv-app, copy the microG GmsCore.apk to your phone with a File Manager that gives you root access to /system/priv-app/GmsCore.

Do not adb push GmsCore.apk in TWRP, it will only get removed when you reboot!

Boot to TWRP and mount the /system read-write.

Use this command to push the directories for FakeStore and GsfProxy. - (FakeStore is only needed if you're not using the Play Store)

adb push FakeStore /system/priv-app
adb push GsfProxy /system/app

Make sure /system is still mounted in TWRP, then > Advanced > Terminal.

Run these commands to make sure you have the correct permissions! - (FakeStore is only needed if you're not using the Play Store)

chmod 755 /system/priv-app/FakeStore
chmod 644 /system/priv-app/FakeStore/FakeStore.apk
chown -R root:root /system/priv-app/FakeStore/FakeStore.apk

chmod 755 /system/priv-app/GmsCore
chmod 644 /system/priv-app/GmsCore/GmsCore.apk
chown -R root:root /system/priv-app/GmsCore/GmsCore.apk

chmod 755 /system/app/GsfProxy
chmod 644 /system/app/GsfProxy/GsfProxy.apk
chown -R root:root /system/app/GsfProxy/GsfProxy.apk

Do not update microG through Aurora Store or Yalp Store, only update through F-Droid!

If at any time there are any new updates, you'll need to follow the steps over for adb push, copying GmsCore, and the permissions for FakeStore - GmsCore - GsfProxy! Delete all the old APK first before copying and doing adb push!

If you use the Official microG Open F-Droid, Settings, tap on Repositories and add in the microG repo; https://microg.org/fdroid/repo so you can keep microG updated!

If you use NanoDroid-microG, in F-Droid, Settings, tap on Repositories and add in the NanoDroid-microG repo; https://nanolx.org/fdroid/repo/ so you can keep microG updated!

Unmount the /system read-write and reboot the phone.

MICROG SETUP

Open F-Droid and search for microg. The Network-based Geolocation choices are, Deja VU - MozillaNlPBackend - Local GSM Location. It's good to just install all three, or experiment to see which works best for you, either alone or in combination. For address lookup and to also test Geocoder, install NominatimNlPBackend.

Make sure WiFi, Mobile data, "Location ( Mode - High Accuracy)" are all turned on in the phone before opening microG!

Open microG, you'll notice at the top it says Permission missing, tap on this, tap on the words REQUEST MISSING PERMISSIONS and ALLOW all of them!

If your deodex went successful, or you went with FakeGapps, you should notice at the top System spoofs signature checked.

You should now only see two check marks missing at the bottom for Location backend(s) setup and UnifiedNlP do not have Location to test Geocoder.

Network-based location enabled should be checked if you didn't turn off Location in the Phone Settings.

Make sure Battery optimizations ignored is also checked!

To get Location working properly in microG, under Self-Check tap on Google device registration and toggle it ON.

Google device registration needs to be ON, when signing up or logging into your Account, or the Play Store for the first time, afterwards it can be turned OFF if you don't need Location support! If at any time an application doesn't run, trying turning Google device registration back ON to see if it helps.

Go to the phone Settings > Location and put the Mode on "High Accuracy".

In the "UnifiedNlP Settings" configure the "Network-based Geolocation" backends you just installed!

Under "Address lookup" for the NominatimNlPBackend, tap Choose Nominatim API Server and pick MapQuest! I recommend using MapQuest, you'll need to sign up for a free account at MapQuest to get an API key.

https://developer.mapquest.com/

When you get your key, tap on MapQuest Developer API Key and add it in.

The MapQuest API key only allows 15,000 transactions a month!

MICROG PERMISSIONS

To get UnifiedNlP do not have Location to test Geocoder checked in microG, you need to add these two permissions.

adb shell
su
pm grant com.google.android.gms android.permission.ACCESS_COARSE_LOCATION
pm grant com.google.android.gms android.permission.ACCESS_FINE_LOCATION

After adding the permissions reboot your phone.

If you go into the microG settings before it's updated the Location, you will still see UnifiedNlP do not have Location to test Geocoder unchecked. Go back out of Self-Check and wait a few seconds then check it again, sometimes you need to scroll up and down a few times too. After a few seconds your Location should be updated and everything should be checked.

This time you'll see it says Geocoder provides address resolution from location checked. Also scroll up and down for a few seconds, and this time under UnifiedNlP status you should have 6 sections now checked.

Over a period of time, depending on what you do, you might see UnifiedNlP do not have Location to test Geocoder become unchecked, if this happens just run the permissions over!

I WANT MY GOOGLE & STAY PRIVATE TOO

All of this just depends on your level of privacy and concerns in regards to Google!

If you debloated Chrome, before you can add a Google Account in the phone settings through microG, you need to update Android System WebView!

These steps below are only if you need paid applications through the Play Store! Free and paid applications can also be downloaded through Aurora Store and Yalp Store, F-Droid can only download free applications.

If you want to stay away from Google, you can use your Google Account on either Aurora Store or Yalp Store. Some paid applications with their License Checks might not work without being downloaded through the Play Store, or if the Play Store isn't installed, you'll have to test this out with various applications to see how they work.

Besides paid applications, system applications will also appear through Aurora Store and Yalp Store, so you can limit the time using the Play Store for privacy, and update everything through either Aurora Store or Yalp Store, possibly even paid applications too.

Aurora Store and Yalp Store violates §3.3 of Google Play Terms of Service, so your account could be disabled, but as it's mentioned on the Yalp Store site, they've never heard of any real cases of accounts being disabled.

https://github.com/yeriomin/YalpStore

https://gitlab.com/AuroraOSS/AuroraStore

To make this step of privacy work, you will need to create a Google account for the first time, because if you did it the normal way on your phone, then you have exposed your device, given up your carrier name, mobile or wifi ip address, geo location etc... If you signed up on a computer, depending on what you did, you might of also exposed yourself!

If you want to create your Google account on a computer, be sure to cover your tracks, like using a VPN!

If you need paid applications from the Play Store, create your Google account after you've done all the steps outlined in this guide for privacy!

Before you follow the steps, make sure Location is off, WiFi is off, Mobile Data is off, and switch the sim card! You do not need an active sim card to use the Play Store! With dual sims, deactivate the good one, and activate the dead/spoofed one! Make sure the spoofed sim card is also the sim card set as the default for the Phone, text, mobile data!

Follow these steps even if you are signing up through a computer, to make sure you are ready to sign into the Play Store on your phone you've prepared!

Every time you sign into the Play Store on your device, if you want privacy with as little attention drawn to the account, then you need to always connect to the Play Store with all of the same phone settings, sim card, etc., otherwise you will get a new device added to the account.

Make sure you never sign into a Google account using your real sim, wifi/mobile network IP, or Location on! Anything that can track you, make sure it's spoofed or off!

For the best Privacy use a VPN that does not log, then sign into the Play Store over wifi using this VPN! As an example you can also use some throw away sim card that you paid for by cash that has no trail to you, but remember the Carrier Network does place you locally! If Geo Locality is a concern, use a VPN!

It's also recommended to maintain the same network(s) and GEO location when signing into the Play Store!

If at anytime you want to update, or get more applications, follow the steps over repeating the process!

Here's a break down in the steps! - (1 - 4)

1. You can sign up for the Google account on your computer, then add it into your phone, but don't forget to follow step #2 when you add the account in the device.

2. When signing up or adding your Gmail/Google account on your device, use another sim card in your phone so the mobile network goes through a different carrier, or a spoofed sim card that doesn't work, or wifi over a VPN, Phone, text, mobile data all set on the spoofed sim card, Location is off! Make sure anything that can track you is off or spoofed!

3. If you are either signing up, or logging into your Account on your device, make sure Google device registration is ON in microG! This also needs to be ON the first time you log into the Play Store!

4. When you are done using the Play Store for the first time you can turn Google device registration OFF in microG, if you don't need phone Location! If at any time applications aren't working properly try turning Google device registration ON!

Be careful with the Account and Play Store on the phone, that you don't access either of them with anything that gives up your identity, as you can see there are a few things you could forget!

NANODROID PHONESKY

If at anytime you have problems with the original Play Store, you can get Phonesky.apk from NanoDroid-microG, it's a patched version to work with microG. Download it from Stable Download (Nanolx), it's located in the /system/priv-app/Phonesky directory.

https://xdaforums.com/apps/magisk/module-nanomod-5-0-20170405-microg-t3584928

Copy Phonesky.apk with a File Manager to the Download directory.

Boot to TWRP and mount the /system read-write.

Rename the original Phonesky.apk in /priv-app to keep a backup, also so it won't run. Rename it like; Phonesky.bak - Phonesky.orig

In TWRP copy the Nanodroid version to /priv-app/Phonesky.

In TWRP > Advanced > Terminal, run this command to make sure you have the correct permissions on the Nanodroid version of Phonesky!

chmod 644 /system/priv-app/Phonesky/Phonesky.apk

Unmount the /system read-write and reboot the phone.

The Nanodroid version of the Play Store is now located in the App Drawer.

If Privacy is a concern, when you are done using the Play Store you can go to Settings > Apps > Application List > Google Play Store - Tap Disable to stop the Play Store from running, then you can Enable it later when you want to run it again! You do not need to debloat the Play Store! You can also tap Permissions and disable all of them!

Settings > Security & lock screen > Apps with usage access > Google Play Store > Permit usage access - Disable this for better privacy!

That's all there is to accomplishing microG on OxygenOS, Stock Android ROMs, and Custom ROMs!

>

>

>

If this post helped you in any way, please press the THANKS button! :)