Unified NLP on Fairphone 2 Open OS


I got Unified NLP working on the Fairphone 2. You need my patches from Garrit for frameworks/base and qcom/common
More information here.

How to apply:
repo download -c fp2-dev/platform/frameworks/base 3 repo download -c fp2-dev/device/qcom/common 4 rm vendor/qcom/proprietary/target/product/FP2/system/etc/permissions/com.qualcomm.location.xml rm vendor/qcom/proprietary/target/product/FP2/system/priv-app/com.qualcomm.location/com.qualcomm.location.apk

Thanks to Marvin from microg for the help!

Cheers Jochen


Thanks a lot @jochensp ! I tried your patches today, it works great! :slight_smile:

Someone (moderators?) please link into this topic from the “Compiling” thread, or somewhere else that would make it easier to find? More people need to be able to see that, and if it’s buried near the bottom it will lose visibility!


I linked it in the living without google 2.0 thread. You can add it to Compiling FP Open OS yourself, it’s a Wiki post.


Might this be the solution for the problem with location based apps (described here)?

Could very well be. However, I think it works fine with the stock ROM, it just doesn’t work with self-compiled ones. In any case, after recompiling an image with the patches linked here, I was able to get coarse location data from two different weather applications!

@jochensp thanks for your work on this.

I’m still trying to get it to work on the stock FP2 OS. After installing Xposed and the XposedGmsCoreUnifiedNlp module on the stock FP2 OS, as well as installing NetworkLocation.apk in /system/priv-app, the Unified NLP self-checks seemed to succeed. Except that no location updates were received, even though there were backends that should have location data. :frowning:

Sorry for a stupid question - how does one apply these patches to the FP2 OS sources?


@root: I also wonder how to do it, though you could always just manually edit the files. :wink:

@All @jochensp: I’m new to this and don’t know how UnifiedNlp works. Until now, my impression was that it works without any “proprietary Google stuff”. However, @jochensp’s patch added com.google.android.gms to the config_locationProviderPackageNames resource array in the source code, as suggested by mar-v-in. Does this mean that UnifiedNlp uses the Google Mobile Services (see also the gms package description) in some way? In any case, what does this patch actually do?

Thanks - makes me feel less stupid! :slight_smile: I guess one needs to run the patch command on the shell. Just wondering from which path…

Regarding GMS - I guess UnifiedNLP mimics the Google services and therefore is named identically? Does this make sense?

Ah, I see. You may be right, even on F-Droid UnifiedNlp carries this name: https://f-droid.org/repository/browse/?fdid=com.google.android.gms Thanks for noticing that!

I assume you need an account for the review tool they use to just be able to pull it. But downloading it manually will work as well, I guess. Too bad it just a “undocumented” website and there is no howto on how to use it without an account.


Update: Solved now, see the top of this thread.

Well, my (and maybe also @root’s) question was rather how to pull (if I’ve already an acoount), because I’ve never done this before …

That is correct.

It doesn’t use any Google Services. It uses (mainly) free location services provided by backends.

I’ve added a howto to the top post.


@jochensp: Nice, thanks for the commands!

@paulakreuzer: Thanks for clarifying!


Hi and thanks for your efforts!

Currently I don’t get any location information in any app on my own built FP2 OS. Will Unified NLP solve that problem? Or will it only make the network based location work?

Do I understand your how-to correctly, that the OS has to be built again after applying your patches?

Is there a way to just modify my FP2 OS? I would like a solution where I wouldn’t have to reinstall and configure all apps etc…

This will only help you with network location. You need to recompile the OS (or at least framework/base, haven’t tried), but you don’t need to reinstall everything afterwards (just don’t flash with -w :wink: ).

1 Like

I haven’t full understand the procedure. It would be nice if someone could clearify some things for me.
If I correctly understand it one has to apply the patches mentioned above and the build the FPOSOS version. Right? But which of the three F-Droid packages

do I have to install? I must have something wrong because so far it didn’t work with either of them. I tested it by trying to show my location in OsmAnd~.

Thanks it advance


I’m guessing this one, or did you include GAPPS in your OSOS build?

For it to actually work you’ll also need to download some backends to use the corresponding databases.

The procedure is correct. For me the “no GAPPS” version works fine (as I don’t have Gapps installed). Some things to check:

  • Did you enable the network location in the location settings?
  • Did you enable a Plugin for NLP (which one)?
  • Did you reboot as proposed in the installation guide?
  • If everything fails, you can try the debug version here.