LineageOS for microG incl. UnifiedNlp vs. LineageOS + UnifiedNlp without microG

I read something that our newly 15.1 LoS is “odexed” but as I use MicroG I need so called signature spoofing (done via a Python script called Tingle from GitHub). Will I be able to use Tingle with the current official LoS? Is there a flashable ready?


If you want to use microG, why not flash the LineageOS fork in which it simply is built-in (Info)?

1 Like

No. It’s not possible to patch a pre-odexed ROM. I’m in your same position. Your best bet is migrating to (do not attempt it without doing a backup before) as @AnotherElk have already said.

I think the MicroG version is nice, but what if that project is stopping builds or if MicroG development stops :-/. It feels much safer and comfortable to stick with an official version.

What was your way from 14.1 to 15.1 then? I read about a Is there any other way to get MicroG running with official LoS?

Thank you,

… an official version tinkered with to run a non-perfect try to mimick the original Google services, ready to be broken by Google at any time. Sounds safe and comfortable, indeed :slight_smile: .
I understand your reasoning well though. That was my first thought and installation attempt, too, going from the test-build to official 15.1 … and it was a real hassle , and I learned from this that the microG fork exists for a reason.

So my view on this right now is that there are 3 safe and comfortable ways to go about with LineageOS …

  1. Pure official LineageOS … no Apps that rely on Google services, so no Open GApps and no microG.

  2. LineageOS for microG … with microG robustly built into official LineageOS for those who want to use microG and are aware of what they are doing (a constant chase to match Google’s changes to their services for a hopefully select few dependent Apps, having those Apps in a potentially interchanging state of working, working poorly or not working at all … and I count an “update your Google Play services” notification everytime I want to do something with such an App as working poorly).

  3. Official LineageOS with Open GApps … If you really seriously are dependent on Apps using Google services, you are dependent on them to function reliably. So you use the original Google services, but keep more control over them than with an Android including the stock Google Mobile Services and all the Google Apps like Fairphone OS.

I personally am coming from (3), and I am now trying (2) to see whether I can reduce Google-dependencies as an intermediate step … to perhaps somewhen get to (1).

Then you install your phone from scratch.
If you’re lucky, both events coincide, resulting in only 1 new install :wink: .


Yeah, I understand your concerns. In fact, I was modding the official ROM using my microG installer (and maintaining it) for that same reason. Anyway, whenever shit happens, a reverse-migration is likewise possible and I’ll probably develop it if noone does it before.

What it doesn’t sound is reliable (regarding Gobble-dependent apps), as you pointed in 3 and we recommended to some users in the forum. But it is still safer and confortable (long-term) to trust your system to LOS first. You could revert your microG setup at any time with a patched official LOS.

There’s simply no way to patch a pre-odexed ROM, :man_shrugging:. You could (theoretically, I didn’t found a way) de-odex the ROM, then patch. But that’s not an easy-piece task AFAIK and you will need to make an additional step on every single update.

This just occurred to me as I write thanks to you: I don’t know however if you could use Xposed and microG plugins to get microG patches applied over the air on pre-odexed ROMs. I haven’t trusted Xposed historically, but now that the requiring packages are on F-Droid (installer, FakeGapps), that could be a way. Edit: the Xposed Installer on F-Droid just downloads and flash the original Xposed ZIP. Since that’s not built by F-Droid, I won’t trust it rightaway. You’ll need to choose whether you trust random binaries in your system.

To be honest I don’t rely on any Google app, nor do I rely on Play Services etc. AFAIK I only need MicroG to have unifedNLP working. Perhaps it’s a silly question, but can I use unifiedNLP without GAPPS and without MicroG or is there a working alternative?

That’s not silly. I hadn’t thought about this because I wanted microG and was happy that UnifiedNlp was taken care of in one go.

Of course logically it should be possible to install UnifiedNlp standalone. I found the following from a microG Project member here

“if you are only interested in the UnifiedNlp functionality, you don’t need the other parts of microG and only the “UnifiedNlp (no GAPPS)” standalone package (assuming you don’t have GAPPS installed. However this will not allow usage of official Google apps.”

And the location components I see in LineageOS for microG are all there on F-Droid as standalone installs …

1 Like

I was using this configuration on FPopenOS and it worked, but (so far) I think that Lineage with microG is much faster to get a fix.

If you only rely on network location (UnifiedNlp) without needing Google Maps API on third party apps, then you should go with official Lineage OS + UnifiedNlp, definitely simpler. No need for signature spoofing.

Although you’ll need to install UnifiedNlp system-wide: LOS has not included required patches as FP Open did to support location providers outside system. My microG/UnifiedNlp Installer should make your life easier, just let me release a new ZIP with the Oreo plumbing (the work is already done). It installs the right F-Droid build of UnifiedNlp and an OTA-survival script, so you can upgrade safely from there onwards and forgot about it. I recommend the minimal flavour that just installs UnifiedNlp and let you use whatever backend you want.

Edit: Here they are! Make sure you do a backup before (better in airplane mode), so you can revert in case something fails.


I’m going to check these out over the weekend :-). Thank you!

Edit: I’m currently upgrading my FP2!

Edit 2: It booted… now checking my apps and stuff…

Edit 3: WOW, that was easy and smooth! I just needed to redo my app positioning and was set.

Some observations (will edit further):

  • geolocation via UnifiedNlp is working, also none of my apps is missing Google/MicroG yet :slight_smile:
  • barcode scanner in camera app -> Is that new in 15.1?
  • auto HDR mode in camera app -> Is that new in 15.1?

Bugs / errros (will edit further):

  • taking videos is not working -> AFAIK a known bug
  • e-mail app is asking for some background permission for IMAP push -> I don’t use the app, I use K9, but I can decline the dialog, it pops up again and again. -> Bug?

I tried to install UnifiedNlp (minimal version for oreo).
Installation via TWRP completed without errors.

However, when I try to open the App, it says App isn’t installed.
I can see the app installed under Settings -> Apps, however I can not open it.

I already manually removed the /system/priv-app/UnifiedNlp folder in TWRP and re-flashed without any success.

Any ideas what could have gone wrong?
What is the proper way to uninstall the app?

Go into the app’s system settings, clear data and reboot.

Another way to launch it in Oreo is going into Location settings (tap and hold the notification bar quick-setting for toggling location), and at the bottom (“Location services”) you’ll find an entry for it.

To delete it, I guess it is enough to clear its data, reboot into TWRP and remove /system/priv-app/UnifiedNlp, /system/etc/permissions/privapp-permissions_microg.xml and /system/addon.d/
Alternatively, you could just clear its data, remove the latter file and re-flash your LineageOS ROM.

A clearer way will be always restoing the backup you should have performed before flashing it, though.


Thanks for your response!
Cleared data and restarted. It is still only accessible through the Location service menu, but it works :ok_hand:

Weird. Do you come from a microG installation or tried it before? Could you test —e.g. with SatStat—, with GPS disabled but network location active if you get positioned fine?

I also use the from @Roboe and I thought it is intended to only be able to configure it via the location settings of Oreo.

Do you have the same issue, then?

Source code of the UnifiedNlp shows the android.intent.category.LAUNCHER, which means it is intentionally launchable from the app launcher.

Would or should it be listed in the app launcher as UnifiedNlp?

AFAIK, it should.

That is not the case…