This guide will receive updates and changes as they happen in microG!
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!
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/...dexServices.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
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
Download the NanoDroid-patcher; https://forum.xda-developers.com/app...icrog-t3584928
Download from Stable Download (Nanolx) - As of to date it's version NanoDroid-patcher-20.2.20181122.zip
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!
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
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://forum.xda-developers.com/xpo...posed-t3388268
Boot to TWRP and install Magisk to root your phone.
Reboot the phone and update Magisk.
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....id.privileged/
After installing these three modules reboot your phone!
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.
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;
Google Backup Transport
Google One Time Init
Google Partner Setup
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
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!
Oneplus System Service
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!
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 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
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.
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;
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 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)
Rename all the APK!
Create theses directory names and place the APK in them!
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
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
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.
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.
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!
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
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.
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!
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.
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
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!