µg - A plugin-based replacement for gapps (updated)
This is a follow-up of Nogapps - A replacement for gapps.
The NOGAPPS project has been renamed to µg, and the part that interessts me the most, off-line, libre, coarse localization is called µg Unified Nlp.
The forum is sparse on usage information, so this aims to be a how-to with screenshots.
Prerequisites
- A rooted phone
- No Google services installed
- Android 4.4 - 5.0. If you’ve got and older version, see the projects github.
Installation
- Install µg UnifiedNlp. Installing from f-droid is the easiest way.
- Now you need providers. Search for nlp in f-droid, and install i.e. GSMLocationNlpBackend. This will give access to two databases of GSM cell towers and their locations.

Configuration
- Find the “µg UnifiedNlp” app and open it, go to “Configure location backends”.

- Hit the gear to configure GSM Location Backend.

- Mozilla Location Services can be activated right away.
- To activate OpenCellId you need an API key. Head over to OpenCellId.org and register.
- Make sure you’re on a decent network, preferably WiFi, and hit “Generate Database”. It will download a few hundred MB, depending on your location. Note that one seems limited to one database dump from OpenCellId per day. Subsequent attempts will fail.
- You also have to make sure your android location settings are set to “Powersave” (WiFi and GSM) or “High precision” (GPS + WiFi and GSM).

Backend alternatives
Currently a search for Nlp in f-droid gives,
- AppleWifiNlpBackend - using Apples WiFi database
- GSMLocationNlpBackend - using cellid from OpenCellId and Mozilla Location Services.
- LocalGsmNlpBackend - Collecting and using cellids seen by phone. Nothing is uploaded or downloaded.
- LocalWifiNlpBackend - Collecting and using wifi seen by phone. Nothing is uploaded or downloaded.
- NominatimNlpBackend - “Backend that uses MapQuest’s Nominatim service (based on OpenStreeMap) for geocoding.”. Not sure what this is for.
There seems to be more Network Location Providers on the way, like OpenWLANMap.
Testing
Now does this work?
Using LocalWifiNlpBackend I can find my location without GPS, fast. But this is a very selfish method (not sharing data), and it only works where your phone has been and had GPS signal before.
I’ve had less success with GSMLocationNlpBackend, even though I know my neighborhood is mapped. Will update this if I experience differently.

OpenWLANMap is probably a better bet for proper localization, so hold on for those to arrive!
Edit: After the update of µg UnifiedNlp (Version 1.2.0 - Added on 2015-01-19), localization works great for me! (And by that I mean the test that failed in the last paragraph).