[General Topics] KJ7LNW:
Hello all,

Recently I got a new phone and installed it using LineageOS + microG. Many Android apps rely on the Google Apps API, but many people no longer trust Google for various reasons. In response to this, microG was created as an open-source re-implementation of the Google Apps API.

The thing is, once you step outside of the Google sandbox, there are a few features you might miss and this thread intends to express my experience moving off the Google network. This is organized with the most important considerations during your transition away from googledom at the top:

Play Store

You're probably used to the Play Store, and you may even use apps that are not owned by Google but where to get them without logging into Google?

Enter F-Droid: a FOSS repository for Android apps. There is an app called "Aurora Store" which connects to the existing Google Play store, but without using the Google app---its just a play-store client!

First, install F-Droid using the APK they provide.

Install Aurora Store using the F-Droid interface from your phone.

Login with an existing Google account or the provided anonymous account.

Then download whatever you want from Aurora and it will come from Google Play.

This is a good time to install your firewall (AFWall+ or orWall) before testing a bunch of apps. Default-deny/explicit allow is the best policy. See the firewall section below.

Contact Sync & Calendar

You can still use Google's storage if you wish, or at least use it temporarily to move to a private DAV server. Install DAVx and follow this guide to (at least initially) sync your contacts and calendar from Google. Then you can use the calendar that comes with LineageOS/AOSP. Non-google Cal/CardDAV servers are available, or your can host your own on something like NextCloud.

Navigation

I'll break this into two parts: Location services and Nav Software:

Location Services

The microG Unified Network Location Provider (UnifiedNlp) is used to find your current latitude/longitude. In addition to your on-phone GPS hardware (which is typically slow to get a location fix), microG uses different backends to discover your lat/long with faster resources such as cell tower signal strength based on known tower locations. See "Apps->microG->Location modules".

nominatim - Converts addresses to lat/long

Uses OpenStreetMap by default

Can optionally use the MapQuest API for address resolution. You will need an API key from MapQuest.

The GSM Location Service (gitlab) can use an OpencellId database to find cell towers. It first downloads a database and can from then on get a lat/long location without Internet connectivity.

Mozilla Location Service: uses Mozilla's online database to find lat/long, requires network connection.

See the Unified Network Location Provider (UnifiedNlp) link for a full listing and detailed description:

AppleWifiNlpBackend - Uses Apple's service to resolve Wi-Fi locations. It has excellent coverage but the database is proprietary.

OpenWlanMapNlpBackend - Uses OpenWlanMap.org to resolve user location but the NLP backend did not reach release-quality, yet. Users interested in a freely licensed and downloadable database for offline use should stick with openBmap for now - Last updated in 2015

OpenBmapNlpBackend - Uses openBmap to resolve user location. Community-created, freely licensed database that can optionally be downloaded for offline operation. The coverage varies from country to country (it's best in central Europe).

MozillaNlpBackend - Uses the Mozilla Location Service to resolve user location. The coverage is OK. Only the cell tower database is free.

LocalWifiNlpBackend - Local location provider for Wi-Fi APs using on-phone generated database.

LocalGSMLocationProvider - Local opencellid based location provider backend. Has been surpassed by LocalGSMBackend which also has an OpenCellID option - Last update in 2014

LocalGSMBackend - Local location provider for GSM cells. It works offline by downloading freely licensed database files from Mozilla, OpenCellID, or lacells.db.

Nav Software

These navigation packages download maps to your device so you can navigate without network connectivity! (Read the text-to-speech section below if audible announcements.)

Organic Maps is the most user friendly, others are more technical:

Navit

OsmAnd

ZANavi

You'll have to try it to see if you like it. If you really prefer the more user friendly features that Google Maps and Waze provide, then I know at least Google Maps will install from the Aurora store will get your location using the UNlp backends from microG (above).

Firewall (requires root):

I've not found anything better than AFWall+. orWall is an option too, but I've not tried it. Drop a comment if you have a firewall you like better. Generally speaking you want to disable all network and then only enable what you need.

By default I disable everything. At a minimum, you probably want to enable these apps:

NTP for time sync

Aurora Store

DAVx

F-Droid

Location:

GSM Location Service (to download cell database)

GSMLocationBackend (to download cell database)

Mozilla Unified Nlp

Nomanatim Geocoder backend

microG Services Core is needed for some location downloads to work (I think...)

Network Manager so it doesn't say "limited connectivity"

Phone and Mesaging Storage for SMS and such.

Text-to-Speech (TTS) Engine

eSpeak will verbialize text which is useful for mapping software annoucements like "Turn right at the next intersection". Without a TTS engine you will not hear any navigation advice. When you run eSpeak the first time go to "eSpeak->menu->General TTS settings" and select "Preferred Engine" and then select "eSpeak" so it will download the voice model.

I find the voice is choppy so in "menu->eSpeak TTS settings" change the speech rate to "80 WPM". This is slow, but then you can go to "menu->General TTS settings" and set the "Speech rate" slider to run at a reasonable speed with less chop. Adjust your language and other parameters to your preference.

Speech-to-Text (STT)

One of the great things Google provides is speach-to-text, but unfortunately there are not many great replacements here, or at least not yet. There are a few projects being worked on:

LocalSTT is a proof of concept to support the microphone button on some keyboards like AnySoftKeyboard.

This page has an en-US build of LocalSTT (.apk) that works on Android 11.

vosk-android-service is a work in progress. Check it often and encourage the developer, it appears to be the first promosing STT option that does not need a network backend to convert speech to text:

Kõnele (github) provides STT service but requires a network server to do the translation. You can setup your own server, and maybe even deploy that server on your phone but I've not tried so post a comment if you get this working.

Keyboards

If you use swipe, then you can try a few alternatives:

OpenBoard

AnySoftKeyboard

Of course you can always install "GBoard" if you need to, just firewall it off ;)

Email

I have found FairEmail to be a great open-source IMAP/POP3 client with a focus on privacy.

SMS

I use Signal from the Aurora store as my default SMS app because the android SMS app wasn't always waking the phone. This is probably a LineageOS bug, though, not a microG bug. The privacy feature is neat if you and your peer are both on Signal, but most of my texts are things like "please bring home milk" so I really don't care about the private text messages. (Of course now that I say that I'll start getting milk advertisements...)

Actually if you have an SMS app that you really like, please post it in the comments. I've never really loved any particular SMS app so something great would be great!

Browser

I'm sure everyone has an opinion on browsers. My favorite is Firefox Mobile and I always install the NoScript plugin so javascript is off by default. It is difficult these days to exploit a vulnerability in a browser, to advertise or to track you without some JS help, so only enable JS for sites you trust. There are many private browsers so I'll let you do your own research.

SafetyNet

See "Apps->microG->Google SafetyNet" because there is an option for it. For now I've been fortunate not to need any apps that need SafetyNet, so untested by me. The microG core does support it, read this article and this ticket for more detail.

Closing Thoughts

So thats about it, the rest is just normal use of your phone the way you normally would. I've been daily driving this config for a while and so far no real issues. GPS works, I can text and make phone calls, and do my occational browsing about the latest Linux Kernel features, maybe lookup a recipe or a HAM radio repeater frequency. It will be interesting to see what the future of microG is, but for now, I like that it gives me greater control of my device.

Cheers,

- Eric, KJ7LNW