Degoogled

F-Droid

The awesome open source app store F-Droid needs no introduction.

To fully utilize its potential, you may want to install the “F-Droid privileged extension” which allows for background app updates without the need for you to approve every single app package.

Unfortunately the flashable zip packages do not work correctly most of the time. I have put together a userspace installation package for Linux which is installed via ADB:

If you are still on Windows you may also follow the steps outlined in install.sh via cmd manually.

Note: This package requires your Android OS to allow adb root access (Settings > System > Developer options > Rooted debugging). Read and understand the installation script in the package before executing it. Also make sure you have only one device connected at the same time and that it is the correct one.

This package installs both F-Droid and its privileged extension as a system app and makes sure it stays deployed on OS upgrades.

Wifi/cell location

Without Google apps you can not utilize Google’s location backend. A-GPS will work fine though and is often fast enough on modern devices.

But in case you need a real fast location fix (e.g. weather info) you may want to use an alternative cell location backend. UnifiedNLP from the microG project is such alternative. It will allow you to install multiple backend plugins to provide your device with cell and/or wifi location info.

Currently the project is stalling and there are many missing parts which are required to have the installation running smoothly on a modern Android version (i.e. 10 and up).

Here comes a list of workaround to get things up and running on LineageOS 18.1 (and possibly 17.1 too).

Installation

Installing UnifiedNLP as a user app via F-Droid is unfortunately not sufficient as the app requires a privileged system permission android.permission.INSTALL_LOCATION_PROVIDER which can only be granted to elevated system apps.

Thus, we need to install the application and a permission declaration file as a “priv-app” first. There are multiple flashable zips floating around online but (yet again) none of them worked correctly.

I put together an ADB installation package for Linux which should work for most Android distributions:

If you are still on Windows you may also follow the steps outlined in install.sh via cmd manually.

Note: This package requires your Android OS to allow adb root access (Settings > System > Developer options > Rooted debugging). Read and understand the installation script in the package before executing it. Also make sure you have only one device connected at the same time and that it is the correct one.

After a reboot configure the location backend and make sure to also read the chapter below about background location permissions.

You may then install backend plugins via F-Droid, e.g.:

Make sure to only use one plugin at a time as there are reports of them interfering with each other.

Missing “background location” permission on Android 10 and up

Since Android 10 a the new android.permission.ACCESS_BACKGROUND_LOCATION permission is required to have UnifiedNLP working correctly. Even with a system privileged app installation the permission is not granted automatically most of the time like with all other required permissions.

You may check that via the Android UI by going to the app permission screen of the UnifiedNLP package. Location permission should be allowed “Always” (or just “Allowed”). If “Only while app is in use” is shown, you need to grant the package the required background location permission manually.

You may also check via ADB:

adb shell dumpsys package com.google.android.gms | grep "android.permission.ACCESS_BACKGROUND_LOCATION: granted"

It should show granted=true is the permission is configured correctly.

You may work around the missing permission by following these steps:

# Temporarily install the system app again as a user update
adb shell pm install -r /system/priv-app/UnifiedNLP/NetworkLocation.apk

# Explicitly grant access to background location for the package
adb shell pm grant com.google.android.gms android.permission.ACCESS_BACKGROUND_LOCATION

# Uninstall the user update (this will not uninstall the system app)
adb shell pm uninstall com.google.android.gms

Recheck with the UI permission manager or ADB to verify it’s working.

Camera

OpenCamera

You may use Open Camera from F-Droid which works fine 99% of the time and allows for a plethora of customization options. You may have to experiment with various settings to allow for it to work correctly for your device (flash handling is especially iffy).

Modded Google Camera

The Google Camera provides a hassle-free experience with a good UX and at least on Pixel phones the best picture quality. It is proprietary software though and has a few “anti-features” like location saving and social integration. These can be turned of though. Additionally, by using a modded version you may futher enhance your camera feature usage.

There are various modded Google Camera APKs floating around. Please make sure you use only “trusted and tested” versions of them and be aware that you need to trust the developer (and Google for that matter) that your data is safe. If you want to be extra sure using these modded versions (and also for the stock version of course), you may disable network access for it in the app info screen via “Mobile data and Wi-Fi” > Uncheck “Allow network access”.

For a Pixel phone, I second Mike Kuketz’s recommendation of using PXv4.5_GoogleCamera_7.2.014 by cstark27 (Mirror). It works just fine for a Pixel 4a.

Usage without Google Play Services or MicroG

Using the Google Camera requires access to some Google Services Framework functions which ship with Google Play Services or alternatively MicroG. If you are not using any of those, you may install Gcam Services Provider by Lukas Pieper (Mirror) which is a minimal app that emulates empty GSF anchors so that Google Camera is satisfied.

Furthermore in newer versions of the Google Camera there seems to be an additional check which makes it rather hard to run a vanilla unmodded Google Camera without GSF. In that case, you need a modded Google Camera version which works around that check internally (most of them do).

LineageOS vendor repo bloatware

Even on a modern LineageOS installation there are apps provisioned via the vendor repos (e.g. Pixel 4a). Have a look at the bloatware list and check whether there are bloatware packages on your system even if you did not install GApps.