Official LineageOS 17.1 for Fairphone 3/Fairphone 3+

So is there a guide on how to build LOS with microG for yourself? Do I need special files like modem files and where can I get them?

Furthermore: I only own a quite old Laptop and I am afraid that building might take even longer than waiting for an updated build of LOS4microG…

You can follow these instructions: GitHub - lineageos4microg/docker-lineage-cicd: Docker microservice for LineageOS Continuous Integration and Continous Deployment
For me the build itself takes about 2 to 3 hours (Desktop PC with a Ryzen 5 3600), without the time needed for syncing the repo taken into account. The first build will take quite some more time, because of the initial repo sync. Also it is worth mentioning that you will need a lot of disk space. IIrc about 150 to 200 GB.

Thanks! I guess the disk space would be the biggest issue then, having only 190 GB free on the internal SSD. The external disk is an HD connected via USB 2 which is not exactly the fastest combination…
And if I understand it correctly, the build process will pull the updated proprietary files such that I am up to date and maybe won’t suffer from so many spontaneous shutdowns during phone calls?

FYI: Today I switched from LOS4microG to official LOS. First I did a backup with TWRP. The switch worked flawlessly.
Then I flashed Magisk to regain root access again.
Then, I installed the Magisk Module MinMicroG (the NoGoolag version)
So far, everything seems to work flawlessly.

6 Likes

You got here before. :slight_smile:
I wanted to test that for @juri.gagarin.ii and got the same result today. You can migrate from the microG-patched LOS to official LOS without losing data.

5 Likes

I am quite sure that the firmware updates etc. that are embedded into regular Lineage updates are not baked into the flashable zips that are built with the docker image.

Neither are these firmware updates part of the micro-g OTAs:

$ python2 lineage/scripts/update-payload-extractor/extract.py /tmp/lineage-17.1-20210414-microG-FP3/payload.bin --output_dir /tmp/lineage-17.1-20210414-microG-FP3/output
Extracting boot
Extracting dtbo
Extracting system
Extracting vbmeta
Extracting vendor

So the best (easiest) way to get an up-to-date LOS with all firmware updates and working microG would be the way @HolosericaCaligo described?

What’s somewhat strange: After the switch to official LOS I still have those very old firmware blobs on my device although newer firmware blobs should be included…?


Thus, I’m still facing constant crashes while trying to make VOIP calls (e.g. through Signal) :see_no_evil:

@HolosericaCaligo : cannot confirm that:

$ python2 lineage/scripts/update-payload-extractor/extract.py /tmp/lineage-17.1-20210607-nightly-FP3-signed/payload.bin --output_dir /tmp/lineage-17.1-20210607-nightly-FP3-signed/output
Extracting boot
Extracting dtbo
Extracting system
Extracting vbmeta
Extracting vendor
Extracting aboot
Extracting cmnlib64
Extracting cmnlib
Extracting devcfg
Extracting dsp
Extracting keymaster
Extracting lksecapp
Extracting mdtp
Extracting modem
Extracting rpm
Extracting sbl1
Extracting tz

In other words all the firmware partitions are included in the OTA as expected. Now, comparing, as an example, the recent Fairphone OS stock 0101-release modem image with the LineageOS modem image:

$ diff /tmp/FP3-REL-Q-3.A.0101-20210420.163631-user-fastbootimage/NON-HLOS.bin /tmp/lineage-17.1-20210607-nightly-FP3-signed/output/modem.img
$

So, byte-for-byte identical. :+1:
Other images may differ slightly since they potentially get expanded with zero bytes in the payload.

1 Like

I have this in LOS4microG (last update, April 14th)

Does signature spoofing work when installing microG this way?

Yey, that’s what I believe too. But somehow those firmware partitions aren’t installed correctly on my device? I really don’t know what’s wrong on my side :see_no_evil:

Nope, I changed my installation routine again: First, I installed microG directly with Magisk. Then I took from NanoDroid the so-called NanoDroid-patcher module and installed it again with Magisk. Now, Signature Spoofing seems to work :smiley:

EDIT:

So you’re having the same old firmware blobs like me. But that’s not surprising since LOS4microG releases don’t include formware blobs…

Some things might help at this point:

  1. Tell us how exactly you installed official LOS coming from micro-g LOS. Maybe a dumb recovery neglected to install all partitions? I used TWRP, then adb sideload for the migration.
  2. Compare the modem and other partition images with 0101 stock release versions as reference, like I did. Then you will know if you are actually using these images in your LOS or not. Easiest way to do that might be to boot twrp and extract partition images using adb pull on raw devices.
  3. Finally, if all the correct firmware is in place, then I suppose certain out-of-date user configurations might still be messing with your calls - but then we are mostly out of luck and down to trial-and-error reinstalling apps, cleaning caches, whatever.

I did it the same way. Installed it with TWRP through adb sideload. Later I also tried it with Lineage Recovery.

Thank you for this advice! I pulled both mmcblk0p1 and mmcblk0p2 modem partitions and compared them with modem file from lineage-17.1-20210614-nightly-FP3-signed.zip

\update_payload_extractor-master\output_FPOS>fc mmcblk0p1 modem
Comparing files mmcblk0p1 and MODEM
FC: no differences encountered

\update_payload_extractor-master\output_FPOS>fc mmcblk0p2 modem
Comparing files mmcblk0p2 and MODEM
FC: no differences encountered

The same with NON-HLOS.bin

\update_payload_extractor-master\output_FPOS>fc mmcblk0p1 NON-HLOS_FP3-REL-Q-3.A.0101.bin
Comparing files mmcblk0p1 and NON-HLOS_FP3-REL-Q-3.A.0101.BIN
FC: no differences encountered

\update_payload_extractor-master\output_FPOS>fc mmcblk0p2 NON-HLOS_FP3-REL-Q-3.A.0101.bin
Comparing files mmcblk0p2 and NON-HLOS_FP3-REL-Q-3.A.0101.BIN
FC: no differences encountered

hmh, but why does the build number (which I mentioned above) still mention this QQ3A.200805.001 firmware?

EDIT: And the reboot issue is also still present. When rebooting, the device gets stuck with a black screen and I have to press Volume Down + Power to get into the bootloader and start the OS from there…

This most probably is a Magisk issue which not only happens on the FP. Btw, probably you also can wait between 30s and 4m, this seems to be the standard time needed for the reboot. And it seems it does not work for shutdown (people report massive battery drain while thinking the phone is off)

1 Like

No idea. The LineageOS build overrides my device build properties, not sure exactly how or why yet. When you build yourself, you will see things such as these:

$ grep -e ‘build.display.id’ out/target/product/FP3/system/build.prop
ro.build.display.id=lineage_FP3-userdebug 11 RQ2A.210505.003 eng.koeste.20210602.092021 test-keys

That’s for my test of 18.1 LOS, naturally. It may be more informative to examine the properties shown in the Settings menu under Android version such as Baseband version etc.

1 Like

Thanks to clarify. So at least one issue does not correlate with firmware blobs. :slight_smile:

I just activated VoLTE and checked whether this old “Unknown Caller” issue is resolved or not. Sadly no, even this issue also persists.

Edit: Typo

Do you have any idea how one could include all the partitions in the docker-lineage-cicd from the MicroG folks? :confused: Im using that to build my images and I would really to include all those firmwares.

Or, asked in another way:
If I build the official LineageOS in the following way: Build for FP3 | LineageOS Wiki are all the partitions included? Or are they somehow added in another way or even after the build?