Porting LineageOS to FP2

Funny thing, that. In Fairphone Open OS, my compass was always pointing in the wrong direction when I initially started any map App, some few seconds of swinging around for calibrating always fixed this. I thought perhaps the magnets in my flip case would cause this, but …

Now in LineageOS my compass is showing the correct direction since I installed (and now restored) it, I didn’t have to calibrate it once.

GASP! The rumours were true, Android really seems to be a proper mess :smiley:

1 Like

So, I destroyed the LUKS header of userdata, formatted and resized data in TWRP, but still no luck with encrypting LineageOS afterwards :frowning: .

Did the same things again and restored Fairphone Open OS 17.06.4 from a TWRP backup to establish 2 things:

  1. FM Radio does work in the current Fairphone Open OS (I checked, because I last used it back in Android 5).

  2. @Roboe: Fairphone Open OS has once again happily encrypted my data partition, at least both the OS and TWRP want my password and seemingly decrypt the data.

I will restore my Internal Storage for now and continue using Open OS for the time being.
When I have some time again, I will try to set the phone back to the state it was delivered in and then try to install LineageOS from scratch.

1 Like

Quick update on the Bluetooth issue:

  • Still reproducible when running the initial setup in the Pebble app. The phone does not instantly crash or freeze. Instead the Pebble app seems to continue the devices search just fine until I try to leave the app, open the statusbar or lock the screen.
  • Other BT devices seem to work fine (mostly tested with my BT headphones) BUT I also realized that my Pebble is trying to connect in LE mode. This could make the difference.

I also managed to get better logs. The errors I saw on my initial logcat were WiFi related…
logcat: https://pastebin.com/fQYNBi4B
Kernel: https://pastebin.com/10x2NeN3

Unfortunately nothing too obvious in there. But I’ll keep digging.

The answer is simpler than expected: Privacy Guard

Bluetooth LE was indeed the reason why other devices worked just fine. More specifically, Android requires the ACCESS_COARSE_LOCATION permission to perform BTLE scans. While ACCESS_FINE_LOCATION was allowed for the Pebble app in Privacy Guard, ACCESS_COARSE_LOCATION was set to ‘always ask’ - just that the permission pop-up never appeared. Once I set ACCESS_COARSE_LOCATION to ‘allow’ (or disable Privacy Guard for the app) and everything works.

I’m wondering if this is a potential LineageOS bug, since the pop-up to request coarse location never appears. And I’m surprised that ACCESS_COARSE_LOCATION needs to be granted specifically while ACCESS_FINE_LOCATION is already available. I’ll try to write a small test app to reproduce the problem and get a clearer picture.



I wonder why Android needs location access at all if you want to do a BTLE scan.


I just did a factory reset from within Fairphone Open OS thinking it would reset my phone to a somewhat near initial state … wrong, OS and TWRP are the same and encryption is still there, only every other user-related stuff is gone and the OS starts with the initial setup.
Dear diary, “factory reset” nowadays seems to be a funny thing not 100% related to the term I once knew, I’m feeling old :slight_smile:
So I wiped everything in TWRP and formatted data again to get rid of the encryption.

This time I installed the newer LineageOS build from over at the OTA thread like @sky suggested, and indeed, FM Radio and encryption do work.
Awesome :+1:!


There are lineageos repos now for fairphone:

Code review is done through gerrit as usual:

It is not yet an official device with nightlies.

What is missing?

  • CVE updates
  • more code review
  • switch to a better kernel source at some point (maybe not a showstopper, but would be good)

Getting the FP2 listed as an official device and official builds are a goal though? Just wondering because of the we-are-fairphone OTA etc.
Currently waiting for that, so I do get the “official” OTAs from the beginning.

1 Like

Yup: The OTA server is doing the building for now (and swithing to the official repo) and when it’s official device I’ll make 2 migration zips to hop on the official release without a factory reset.


Just did a successful build with this manifest:

    <remote fetch="https://github.com/" name="github2" />
    <project name="LineageOS/android_device_fairphone_FP2" path="device/fairphone/FP2" remote="github2" revision="cm-14.1" />
    <project name="LineageOS/android_kernel_fairphone_msm8974" path="kernel/fairphone/msm8974" remote="github2" revision="cm-14.1" />
    <project name="FairBlobs/proprietary_vendor_fairphone-fork" path="vendor/fairphone" remote="github2" revision="cm-14.1" />
    <project name="lineageos/android_device_qcom_common" path="device/qcom/common" remote="github2" revision="cm-14.1" />

See: https://fp2.joutubes.nl/jenkins/job/FP2-LineageOS14.1/24/

Starting a new build with the old keys (OTA signing) and OTA url, so this will work again. I will test the zip tomorrow and then push the semi-official release over OTA if everything looks great!


I have updated the modem.zip file to the latest modem firmware of Fairphone OS 17.07.6. This time I have added proper output to the installation script. This zip file also includes the official Fairphone splash image. In case you have installed a custom splash image, you might want to reflash it.

:file_folder: Download: modem-17.07.6.zip
:bookmark_tabs: SHA256: 0b2f6998309163cb85e9a95d57ca0b32349c0de9081e0e3154075d86a4c1515a

After you have flashed the zip file, you should see the version 4436.1-FP2-0-04 under Settings -> About Phone -> Baseband Version.

Since those are binary blobs, I have no idea what has changed since the previous release. But comparing the image files, I can see that the following files were changed:

  • emmc_appsboot.mbn
  • NON-HLOS.bin
  • rpm.mbn
  • sbl1.mbn

The following files were not changed since previous release:

  • splash.img
  • tz.mbn

The following files were included in the previous release, but not in the current:

  • sdi.mbn

I included sdi.mbn and the unchanged files in the modem.zip file, so you can upgrade from older versions as well.

Alternatively, you can flash the latest modem firmware using fastboot. You can get the firmware images from the official Fairphone OS downloads page (scroll down to binary images). Don’t flash system.img, boot.img and recovery.img obviously.


(emphasis by me)

Yeah, you finally included sdi.mbn in the ZIP, :wink:

… which was last updated in FPOS 1.4.2, about a year ago. Those were the days… :wink:

What is it about sdi.mbn? I tried googling it but with no success.

Thanks for the update. Sadly this update still suffers from the proximity sensor wakelock bug. Can one of the devs confirm that the old modem files that we used as workaround on FP OpenOS would work on Lineage OS, or is there a compatibility issue ?

The old modem files for Fairphone Open OS should work. However, they might contain unpatched security vulnerabilities and it is not recommended to use them.

If you run into problems with the old modem files, you can always flash the latest modem.zip from the first post of this thread.


In your build from 31th, did you change dpi settings? I have the impression that find are smaller and space is distributed differently ok my screens (Nova launcher)

It’s using the actual screen dpi of the phone and Fairphone doesn’t use that value because it isn’t compliant with the Google CTS


Well, the display indeed looks sharper… But my old eyes, after a day in front of a computer :wink:

1 Like

Would it be possible to put this patch in “our” build soon(!) ? People (myself included) are having exactly that problem: No microphone on Skype and Skype for Business.
I just modified the file on my phone and uploaded it to /system/etc/mixer_paths.xml and microphone is back on Skype. Here is the attached file (just remove the .pdf extension that is just there to fool the upload restriction in the forum).
mixer_paths.xml.pdf (47.8 KB)