µg - A plugin-based replacement for gapps (updated)
Table of Contents
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 (Network Location Provider)].
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 (KitKat)] - [5.0 (Lollipop)]. 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 (Network Location Provider)] 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).