De-Googling my OnePlus 5T with LineageOS

Privacy Matters

I am known among friends and family to be a privacy-concious person. My opinion on privacy matters is that you should be aware of what you are paying with your data, then make the decision that makes the most sense to you.

If a business is making money sending chat messages between your friends for free, then someone is paying for those messages.
If a business is making money hosting your email, then someone else is reading your email.
If a business is making money tracking your location, then someone is paying for where you are.
If a business is making money hosting web content for free, then someone else is suffering because of that.

Now I want to emphasize the following: This is not a condemnation of Google services (except for AMP, AMP is awful). Google has been a good okay steward of private information, and the services they provide are extremely convenient. I simply want to use my experience with microG/LineageOS to find out exactly how much convenience and/or money is sacrificed to restore control over your mobile data.

What is LineageOS?

LineageOS is an Open-Source Operating System based on the Android Open-Source Project (AOSP), and spiritual successor of the CyanogenMod project.

LineageOS comes bundled with a number of patched versions of AOSP applications, such as a launcher (Trebuchet, forked from CyanogenMod’s Catapult), a music player (Eleven, forked from CyanogenMod’s project of the same name), a messaging application, or a clock. The project supports a few addons like OpenWeatherMap as a weather provider or an su program so applications can get root permissions. Privacy Guard is an application which can track and limit application permission access (such as location information). The project also develops some APIs for application developers to use (often in-place-of similar APIs provided by Google in non-AOSP Android builds).

The project is well-repsected, especially as a way to increase the longevity of devices unsupported by the original vendors.

Why Android is Proprietary

By default, there are no Google services included (no Play Store, no Google, etc). There is a link to the OpenGApps project, which provides stock Google applications, however:

Google Play services is a proprietary service which provides APIs for Android applications. These APIs include Google SSO, Google Cast, Analytics, Google Wallet, Google Maps, Google Play Games, and Google Mobile Ads. Without Google Play services, many applications (including all of Google’s) will not function.

Every package from OGApps includes Google Play and Google Play services. Even the “pico” package. However, we don’t have to forgo most of the Play library just to avoid Google Play services. Instead, microG is an open-source system-level application which reimplements some APIs normally provided by Google Play services.

The actual image

The actual image I flashed to my phone is offered by the LineageOS for microG project. It provides two key features for getting convenience back into a Google-free Android.

If you have ever used F-Droid, one of the biggest papercuts you’ve faced is in updating applications. If applications need updates, you must

  1. Open F-Droid
  2. Select the Updates tab
  3. Tab “Update All”
  4. Wait for an app to download
  5. Tap install for that app
  6. Tap install on the “are you sure?” dialog that pops up
  7. Repeat 4-6 for every application you are updating.

With the privileged extension, F-Droid works like Google Play normally does.

  1. Open Settings
  2. Turn on “Automatically Install Updates”

That’s it. F-Droid applications will be updated in the background from here-on-out.

Install Process

While my image was from the LineageOS for microG project, I followed LineageOS’s install instructions for my device.

After sideloading the system image, I sideloaded LineageOS’s AddonSU to root my device.

I rebooted to the system image, and walked through the setup without issue. Easy. I now have a Google-free Android device!

Application Shortlist

F-Droid has their own repository with curated applications, but there are some notable third-party repositories as well.

Because this post has “Google” in the title, here are some applications which can (to some extent) replace Google applications or services:

I will admit, there are two big holes in this list, and they are difficult holes to fill.

Application Shortcomings

There is no good replacement for Google Assistant. Speech-to-text services are notoriously memory- and storage-heavy. If you don’t send your voice to Google, you are sending it to someone else. Mycroft does not officially support Android yet, but does have an Android repository. However, it requires Mycroft-core (the actual speech recognition server) to be hosted elsewhere.

Finally, there is no easy way to replace Google’s Find My Device (Formally Android Device Manager). You need to have your phone broadcast its location to some service, and allow that service to remotely ring, lock or wipe your device. The biggest use I get from this is remotely ringing my device if I’ve misplaced it at home.

Addendum 2021-03-10: I have since found an altenative, appropriately named “FindMyDevice”. It reads SMS messages for a predefined string (like “fmd”) from a whitelisted number. It needs an adb command if you want it to be able to turn on location, but everything else is pretty straightforward.

As a stopgap, KDEConnect can let me remotely ring my device while connected to the same network. Perhaps with WireGuard and a $5/mo VPS, I can ring it from anywhere? Then add in Termux for the rest of the remote control? More research is needed.

Absolutely Proprietary

There are some crucial services I rely on which are only available on the Google Play Store.

Have a look inside my proprietary folder

For now, this is it, but I will probably add a couple more.

  • My family uses GroupMe to chat. I want to set up a Matrix puppet so I can just use Element instead, but it seems that the GroupMe puppet is currently broken. ☹ Maybe I can convince my family to use a Matrix/Element stack instead?
  • I use Walgreens as my pharmacy.
  • I use ZeroTier as a faster option to a traditional VPN, since it’s P2P.
  • I use Tile because I will misplace my keys at least once a week.
  • I have some Android games on HumbleBundle.
  • Forest is a very good live wallpaper, has no ads, and shows weather and cloud cover to match your location with an OpenWeatherMap key. The only in-app purchases are for donations to the author.

Root Access

Root access is not enabled by default, even with LineageOS’s AddonSU. To actually enable root access, you must first enable Developer Options (About Phone > Tap “Build number” repeatedly), then in System > Advanced > Developer Options > Root access, enable root access from either Apps, ADB, or both.

Just hit that button, okay?

The “Manage root accesses” option below “Root access” is for LineageOS’s Privacy Guard’s controls. It controls root access on an app-by-app basis, and logs what apps have asked for it.