Official LineageOS 18.1 for Fairphone 3/Fairphone 3+

Just finished installing LOS 18.1 with pico OpenGapps (no Magisk, no microG). Everything mostly appears to be working, including WiFi and GPS. Haven’t tested NFC yet. The auto brightness issue is almost unnoticeable, it just went down to lowest brightness once so far under normal daylight.

Edit: NFC appears to be broken for me based on testing with the german ID card. I can’t get it to read the card even with the bumper and the back cover removed.

For those of you who are using the microG-build and want (in-)app-payment-support (like I do), I created a quick and dirty Magisk-module that replaces the preinstalled FakeStore with the patched Google Play Store from Nanolx. I am a bloody noob so don’t expect too much. However it works flawlessly for me and it should also work on other smartphones and other Android versions of microG-builds. If you are brave enough to try it, please let me know if it works for you. :slight_smile:


I successfully flashed Magisk v23, so it might not be a general issue.

My steps:

  • boot to fastboot (e.g. by pressing vol- during device start)
  • fastboot boot twrp.img
  • wipe system
  • flash
  • reboot recovery
  • flash
  • reboot system (mainly to check boot is successful prior to flashing magisk)
  • boot to recovery (e.g. via vol+ during device start)
  • flash (renamed from magisk.apk)
  • celebrate and write this post
1 Like

Slowly I understand, why LOS4microG 17.1 only provided updates every 1-2 months…
I am building my first LOS for 3 days now. OK, I admit: laptop, only 8GB RAM, i5-3320M@2.60GHz and external HD, but if the effort is so great every time…
I have no clue when this will come to an end.

For me NFC is working. Maybe you turned it off? Put the card on the back near the lower right corner, when you look at the display.

I tested it with the german ID card, a credit card and an old bus card. All are working.

I use NFC for the alarm clock. I have a alarm clock app that can be turned off via NFC. So I have to get out of bed to turn it off.

It’s definitely turned on. It also passes the self test of the AusweisApp, which tests for NFC support, if it’s switched on, and if it can detect a valid card. It just fails if I try to read my own data. No matter which orientation I try it in, and even if I take off both the bumper and the back cover, it isn’t able to read the ID card.

I’ve attached screenshots of both the successful self test, as well as the error I keep getting.

Hi everybody, can someone upload the boot.img hier in this thread? That would be great.
Thanks. :slight_smile:

Edit: Flashing Magisk.Zip worked perfectly fine. Thanks everybody. :slight_smile:

My steps:

  1. boot to fastboot
  2. fastboot boot twrp.img
  3. apply adb sideload
  4. adb sideload
  5. reboot to recovery
  6. apply update
  7. adb sideload (v23.0)
  8. reboot to system

Voila. Everything works. 1000 Thanks to everybody.


I re-flashed the ROM to find out: You’re right, all boxes checked now. Now I used the LOS-Recovery to flash, used TWRP before. I’m unsure whether this made it fail. Thanks for making me retrying it, @HolosericaCaligo!

1 Like

Has the app been working before switching to LineageOS 18.1? Because I’ve tried it with 17.1 as well as 16 and it didn’t work in both cases. I didn’t try it with FairPhoneOS though.

Thanks so much to @dk1978 and @TeamB58 and everyone else involved! I upgraded from LOS17.1 to LOS18.1 and everything worked just fine. I re-flashed Magisk using the stock LOS recovery and installed µg from F-droid with no issues. I’ve tried NFC with my Yubikey and successfully encrypted an Email using the stored PGP-key. Additionally, regular rebooting now also works. When using LOS17.1, I always had to reboot pressing the power-button for 20-30 seconds. This might also mean that the problem of exessive power-drain on a shut-off device might be solved now.

I’m having problems with some apps complaining about missing play-store functionality even though µg’s self check was completely successfull. This might relate to what @Switch mentioned, so I’ll try out your Magisk module. Thanks!

Edit: No luck with my banking apps as of yet. Also tried all sorts of magisk shenanigans with riru unshare, magisk hide, Shelter, MagiskHide Props Config, but to no avail.

Edit²: Wow, what a nightmare. I’ve tried additional solutions including XPrivacyLua and blocking some process using the 3C toolbox. The solution for my comdirect photoTan App after hours of searching was posted here and here. The combination of riru, riru unshare, Magisk hide and a renamed Magisk App plus disabling a single process ( and deleting all app and cache data of my banking app using the 3C Toolbox (from Aurora store) did the trick. I also had to delete some base.vdex and base.odex files located at /data/app/~~u5ELd6t9HMSHp3BI_7RrEw==/com.comdirect.phototan-THPAtcs03qKLQPMN6i0oJw==/oat/arm64. The folder will be different each time but can be found using the 3C->task manager->select process.

Maybe this will save someone the hours of testing-rebooting-searching-rinse-repeating I had to do to find this solution, even though this process probably doesn’t generalize to other apps. Cheers!


It worked with FairphoneOS before, although to be fair, it was a little bit finicky wrt card positioning then as well, it failed in something like 10% of tries, I would guess. Now on LOS 18.1 it always fails with an error stating “card removed”. I have only tried it with the ID card so far, I have yet to try mobile payment.

It’s the only issue I have though, and for me personally, it’s not a huge issue right now. I’m very happy to be back on LOS, huge thanks to to @dk1978 and @TeamB58 from me as well.

Thanks for this stuff, it took me some time to set it up. My build fails, I tried several times now. Do you have any idea what might be wrong? I get the following messages at the end of the log:

INSTALL net/bridge/br_netfilter.ko
DEPMOD 4.9.218+
make[1]: Leaving directory ‘/srv/src/LINEAGE_18_1/out/target/product/FP3/obj/KERNEL_OBJ’
make: Leaving directory ‘/srv/src/LINEAGE_18_1/kernel/fairphone/sdm632’
depmod: WARNING: could not open modules.order at /srv/src/LINEAGE_18_1/out/target/product/FP3/obj/PACKAGING/depmod_vendor_intermediates/lib/modules/0.0: No such file or directory
depmod: WARNING: could not open modules.builtin at /srv/src/LINEAGE_18_1/out/target/product/FP3/obj/PACKAGING/depmod_vendor_intermediates/lib/modules/0.0: No such file or directory
ninja: build stopped: subcommand failed.
07:29:25 ninja failed with: exit status 1

failed to build some targets (12:14:32 (hh:mm:ss))

I don’t know if this part of the log is sufficient to find the error, but I could of course paste a little bit more if necesary.
The path


does exist, and it contains several files, but modules.order is indeed missing. modules.builtin is missing, too, but there is a modules.builtin.bin.

Maybe you could give me a hint what could be wrong?
Plus, in a previous log I found the warning that my RAM is too low (I only have 8GB in my computer) and this could maybe circumvented by changing the -j option. If I understand it right, this is the number of parallel instances building, right? Is there a config file somewhere where I could adjust it?

I just updated from LOS17.mG to LO118.1mG successfully by using ADB sideload with LOSrecovery without any wipe!
After cheking if all works I installed Magisk23 the same way.
Till now everything works as before without losing any data.
Thx to all who made this possible!


Today I installed LOS4microG 18.1 on a new FP3+ of a friend of mine. Everything worked fine - even the subsequent flashing of Magisk :smiley:
So the problems mentioned by me and some others must have something to do with other conflicts, e.g. due to backlogs of Magisk before the upgrade to LOS 18.1.

Yepp, the same here with updating LOS for microG (17.1 to 18.1). That was way to smooth and easy! I’ve been waiting for the great crash for 4 days now…

After some more research regarding missing play services after the 17.1->18.1 upgrade ([App] requires the Google Play Store, but it is missing.) despite passing µg’s self-tests, I checked the logs.


08-17 09:44:23.216 1182 1443 I ActivityTaskManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=de.[App].app/.ui.splash.LaunchActivity bnds=[35,1416][287,1716]} from uid 10106
08-17 09:44:21.282 6713 6756 I chatty : uid=10073( Binder:6713_1 identical 1 line

08-17 09:44:23.358 9482 9599 W GooglePlayServicesUtil: de.[App].app requires the Google Play Store, but it is missing.
08-17 09:44:23.358 9482 9599 W GoogleApiManager: The service for is not available: ConnectionResult{statusCode=SERVICE_INVALID, resolution=null, message=null}
08-17 09:44:23.373 9482 9482 W GooglePlayServicesUtil: de.[App].app requires the Google Play Store, but it is missing.
08-17 09:44:23.375 9482 9482 W GooglePlayServicesUtil: de.[App].app requires the Google Play Store, but it is missing.
08-17 09:44:23.377 9482 9482 E GoogleApiAvailability: Google Play services is invalid. Cannot recover.
08-17 09:44:23.379 9482 9482 W GoogleApiAvailability: Creating dialog for Google Play services availability issue. ConnectionResult=9
08-17 09:44:23.379 9482 9482 W GoogleApiAvailability: java.lang.IllegalArgumentException
08-17 09:44:23.379 9482 9482 W GoogleApiAvailability: at
08-17 09:44:23.379 9482 9482 W GoogleApiAvailability: at
08-17 09:44:23.379 9482 9482 W GoogleApiAvailability: at de.[App].app.core.managers.impls.GoogleApiAvailabilityManagerImpl.errorDialog(SourceFile:22)
08-17 09:44:23.379 9482 9482 W GoogleApiAvailability: at de.[App].app.ui.splash.LaunchActivity.onResume(SourceFile:70)
08-17 09:44:23.379 9482 9482 W GoogleApiAvailability: at
08-17 09:44:23.379 9482 9482 W GoogleApiAvailability: at
08-17 09:44:23.379 9482 9482 W GoogleApiAvailability: at
08-17 09:44:23.379 9482 9482 W GoogleApiAvailability: at
08-17 09:44:23.379 9482 9482 W GoogleApiAvailability: at
08-17 09:44:23.379 9482 9482 W GoogleApiAvailability: at
08-17 09:44:23.379 9482 9482 W GoogleApiAvailability: at
08-17 09:44:23.379 9482 9482 W GoogleApiAvailability: at$H.handleMessage(
08-17 09:44:23.379 9482 9482 W GoogleApiAvailability: at android.os.Handler.dispatchMessage(
08-17 09:44:23.379 9482 9482 W GoogleApiAvailability: at android.os.Looper.loop(
08-17 09:44:23.379 9482 9482 W GoogleApiAvailability: at
08-17 09:44:23.379 9482 9482 W GoogleApiAvailability: at java.lang.reflect.Method.invoke(Native Method)
08-17 09:44:23.379 9482 9482 W GoogleApiAvailability: at$
08-17 09:44:23.379 9482 9482 W GoogleApiAvailability: at
08-17 09:44:23.427 9482 9482 W Adjust-pool-37-: type=1400 audit(0.0:281): avc: denied { search } for name=“net” dev=“sysfs” ino=24356 scontext=u:r:untrusted_app:s0:c127,c256,c512,c768 tcontext=u:object_r:sysfs_net:s0 tclass=dir permissive=0 app=de.[app].app

This looks more like a problem with µg than with LOS, so I guess I’ll just leave it at that unless andybody got any ideas about what this might mean. :face_with_raised_eyebrow:

I also tried to install Android WebView from the Aurora Store but failed with the error message:

INSTALL_FAILED_MISSING_SHARED_LIBRARY: Reconciliation failed…: Reconcile failed: Package requires unavailable shared library; failing!

I do not know if this is related to this, but I was wondering whether anyone else experienced this error when trying to update WebView? I think I’ve read that WebView historically used Chrome functionality to display web components but that was changed. Now, WebView uses Trichrome, which apparently is missing on my device. Manually installing the corresponding trichrome version as was advised here did not seem to work due to a failed installation.

Hello everyone, I finally understood why my Fairphone woudn’t boot using Lineageos 18.1 + OpenGApps + Magisk, and I managed to get it working.
The problem was I didn’t disable my Magisk modules before upgrading to 18.1.
When I reinstalled Magisk using the patched boot image method, Magisk used those still installed modules which is why the phone got stuck on boot logo.

To solve the problem, I disabled all of my Magisk modules following these steps which are inspired from these instructions : Magisk - Installation and troubleshooting:Magisk and MagiskHide Installation and Troubleshooting guide.

  1. Enable adb and root adb in developer settings on the phone.
  2. Connect the phone to a pc where adb is installed (I use Manjaro Linux).
  3. In the terminal, launch adb root using : adb root and check that the phone is detected using adb devices
  4. Launch the phone’s shell using : adb -d shell : the shell prompt should now have changed to the phone’s prompt.
  5. Navigate to /data/adb/modules/ using cd /data/adb/modules/
    Here, using ls, you can see folders representing all of your previously installed Magisk modules, which might not have been disabled.
  6. Disable them by creating an empty file named disable in each of those folders using touch /data/adb/modules/<name of module>/disable (replace the name of the module).
  7. Exit the phone’s shell using exit : you should now see again your usual terminal’s prompt.
  8. You can now disconnect the phone and install magisk using the patch boot.img method : Installation | Magisk.

I hope this can help those of you who couldn’t get Lineageos 18.1 + Magisk or Lineageos 18.1 + OpenGApps + Magisk to work (the problem didn’t have anything to do with OpenGApps). It’s quite likely we ran into the same problem.
Lineageos 18.1 and Magisk are both perfectly fine : the problem came from my side. I would advise everyone to disable their Magisk modules prior to upgrading to Lineageos 18.1.
Huge thanks to @dk1978 and @TeamB58 for making all of this possible !


A question to all those that installed the 20210816 nightly build:

How is auto brightness doing?

Mostly works. Drops down to zero brightness about once per day for me, but apart from that, it works.

1 Like