Official LineageOS 17.1 for Fairphone 3/Fairphone 3+

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?

Yes, the official instructions for building yourself do not cover flashing over these firmware partitions. My suggested option is to do that yourself with fastboot, but I will consider providing some official help with that.
When LineageOS sends out an officially signed OTA zip, special build scripts ensure that the partition images are transferred out of an internal repository and copied as “radio” images into the OTA.

Thanks! I understand its not easy to provide official instructions because of licenses for those blobs. Anyway, I’d love to get some assistance in how to extract those partitions from official images and how to flash them via fastboot :slight_smile: If you could even provide some hints on how to add them to the lineage zip I’d be more than happy :slight_smile:

2 Likes

I’ve just noticed that the FP3 using a Lineage4microG-build from April 14th does not allow sharing Wifi/mobile data over Bluetooth. I wonder if this has to do with LineageOS or if it is something about the device that prevents this feature?

Today I have made the switch from LOS4uG+Magisk to LOS + Magisk + uG.

I did not want to do a factory reset (as I would have lost my work profile, where I put all the apps from Aurora Store), so I had tried the “dirty” install with LOS recovery.

Unfortunately when I had booted into fastboot and run fastboot boot lineage-17.1-20210614-recovery-FP3.img the phone first booted as usual. Then I rebooted it and it went into a bootloop. Eventually LOS recovery started on its own but the only thing I could do was a factory reset.

I did the factory reset, and again booting with LOS recovery did not work. I therefore booted with the twrp-3.5.2_9-0-FP3.img and I could sideload LOS, and that was no problem at all. Of course since I had already done a factory reset, I did a clean install.

I will share here my experience with the process (after having backed up my storage partition and having run a SeedVault backup):

  1. reboot into bootloader adb reboot bootloader;
  2. boot into twrp: fastboot boot twrp-xxxxx-FP3.img
  3. tap Advanced > ADB sideload, select “wipe cache” and “wipe Dalvik cache” swipe
  4. from terminal: adb sideload lineage-17.1-xxxxx-nightly-FP3-signed.zip
  5. reboot and boot into LOS
  6. finish the initial setup, do not restore the Seedvault backup;
  • repeat steps 1-3
  1. from terminal: adb sideload Magisk-xxxxx.zip. It is preferable to first flash Magisk and then the signature spoofing patch, so that it is installed as a Magisk module, and not “in the system”, and thus it can be preserved during OTA updates (thanks, lost_geographer).
  2. reboot after having flashed Magisk, open the launcher and click on the Magisk app (it will download and install itself). It may ask you to reboot again. Reboot and then repeat again steps 1-3.
  3. from terminal: adb sideload NanoDroid-patcher-xxxxx.zip, go back and do the same for NanoDroid-fdroid-xxxxx.zip (both downloaded from here). If everything was done correctly, during the flashing of the NanoDroid patcher you will see the following string: Installation mode: MAGISK, otherwise it will say SYSTEM. If this is the case there is no problem: reboot to LOS (this will change slot), reboot to fastboot, boot into TWRP and repeat the flash.
  4. Boot into LOS, open Magisk, search for “microG Installer Revived” module, tap for more info, at the “Installation” chapter, click on the “GmsCore apk” link, download and install
  5. install the Magisk “microG Installer Revived” module and reboot. If you didn’t install the apk first some authorizations (in my case SMS and accurate location) can’t be provided.
  6. fulfill all of the uG self-check
  7. from terminal run adb shell am start-activity -a com.stevesoltys.seedvault.RESTORE_BACKUP to start the procedure to restore the seedvault backup. I have found out that if you mistake the 12-word recovery then it is not possible to try again. My workaround was to do a factory reset and try again.
  8. install your favourite work-profile app (I am using Inslanded) and check again the uG ticks over there.

Last time I had tried to do a SeedVault backup of my work profile (on a separate Nextcloud account since the work profile can not access the uSD card), but while restoring it would crash, resulting in a very incomplete restoration.
I don’t know if this behavior is expected or not. I would like very much to be able to backup my work profile too.

Now everything works fine, uG is working (even though for the first 1-2 hours the Device registration of my work profile was deactivating on its own, and when it were not, the GCM was), apps are registered and finally I can have an updated device. Haven’t tested yet VoIP calls (Whatsapp, Telegram, Signal): with LOS4uG the phone was crashing almost all the time, now I hope everything will work.

I hope this will be useful to not-so tech-savy people like me!

2 Likes

@dk1978
Today I tried to narrow down those VoIP crashes. I called with Signal from another phone to my phone multiple times while the screen was unlocked. In this setup, my phone never crashed.
But while I called my phone with locked screen my phone crashed much more often. I was able to catch a logcat in this situation:
https://cloud.informethic.ch:5001/d/f/626315192837389977

There seems to be an issue with audioserver but I don’t know if this is the root case for those phone crashes.
I hope this might help to determine the issue… :slight_smile:

6-18 16:21:03.412 12658 12658 I libc    : malloc_limit: Allocation limit enabled, max size 536870912 bytes
06-18 16:21:03.413 12658 12658 I audioserver: ServiceManager: 0x7f747bddc0
06-18 16:21:03.773  3981  5595 I ServiceManager: Waiting for service 'media.audio_policy' on '/dev/binder'...
06-18 16:21:03.773  1159  2074 I ServiceManager: Waiting for service 'media.audio_policy' on '/dev/binder'...
06-18 16:21:03.773  1799  1902 I ServiceManager: Waiting for service 'media.audio_policy' on '/dev/binder'...
06-18 16:21:03.820  1159  1702 E AudioSystem-JNI: Command failed for android_media_AudioSystem_checkAudioFlinger: -32
06-18 16:21:03.820  1159  1702 E AS.AudioService: Audioserver died.
06-18 16:21:03.862  1954  3107 I ServiceManager: Waiting for service 'media.audio_flinger' on '/dev/binder'...
06-18 16:21:04.269  4138 12636 I ServiceManager: Waiting for service 'media.audio_flinger' on '/dev/binder'...
06-18 16:21:04.322  1159  1702 E AudioSystem-JNI: Command failed for android_media_AudioSystem_checkAudioFlinger: -32
06-18 16:21:04.322  1159  1702 E AS.AudioService: Audioserver died.
06-18 16:21:04.774  3981  5595 I ServiceManager: Waiting for service 'media.audio_policy' on '/dev/binder'...
06-18 16:21:04.775  1159  2074 I ServiceManager: Waiting for service 'media.audio_policy' on '/dev/binder'...
06-18 16:21:04.776  1799  1902 I ServiceManager: Waiting for service 'media.audio_policy' on '/dev/binder'...
06-18 16:21:04.824  1159  1702 E AudioSystem-JNI: Command failed for android_media_AudioSystem_checkAudioFlinger: -32
06-18 16:21:04.824  1159  1702 E AS.AudioService: Audioserver died.
06-18 16:21:04.863  1954  3107 I ServiceManager: Waiting for service 'media.audio_flinger' on '/dev/binder'...
06-18 16:21:05.019  4138 12625 I org.webrtc.Logging: EglRenderer: call_screen_large_local_rendererDuration: 4004 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: .0. Average render time: NA. Average swapBuffer time: NA.
06-18 16:21:05.270  4138 12636 I ServiceManager: Waiting for service 'media.audio_flinger' on '/dev/binder'...
06-18 16:21:05.326  1159  1702 E AudioSystem-JNI: Command failed for android_media_AudioSystem_checkAudioFlinger: -32

EDIT:
and sometimes the phone then reboots by itself with a veeeery slow LOS boot animation.
here is the logcat (from ~the phone call until the boot logo gets stuck completely)
https://cloud.informethic.ch:5001/d/f/626319122782794574

Do you mean the data partition in TWRP? Did you try to restore it from TWRP on the freshly installed LOS?

No, I mean storage partition: my mindset was “I am not going to use TWRP” so I played with adb push adb pull. The thing is that when I tried adb pull /data the folder on my PC was empty… apparently it was managing to pull only from storage.
Weird.
Anyway it was not much of a great loss, so I can’t really complain, it’s more of a bother for the work partition (I have whatsapp installed over there, and I have not activated the backups because I am not using Google, so it is a bit annoying starting with a fresh whatsapp every time.

EDIT: I thought “pull” and wrote “push”. Also I did not have adb with root access, and I did not have the option to enable it in my developer options. I was quite in a hurry and didn’t investigate further.

Perhaps because you didn’t use adb as root, so it didn’t have the rights to read the folder?
The /storage location is equivalent to /data/media/0 if I’m not mistaken. Did you try pulling this instead?
The internal storage of the work profile should be located in /data/media/10, or /data/media/11, or another number (I think you can check with a file manager).

Also, when I had exported WA from the personal profile to the work profile, I had managed to copy my messages. Here’s the trick I had used (I had done it some time ago though, I hope I remember correctly):

  • In WhatsApp, in the settings, do a backup of all messages.
  • Copy the WhatsApp folder in the internal storage.
  • Paste it once you reinstalled the OS/in your work profile, in the internal storage.
  • Open WhatsApp.
  • It’s going to tell you it can’t find messages if you try directly to restore the backup you did, or that you should set it up as new. Don’t do anything, close it and force stop it, and delete its storage.
  • Open WhatsApp again, tell it to restore from backup, it should now find it and restore it.

Can’t be sure this will work, but if you want to try it next time, or someone else… :slight_smile:

Edit: Modified one step that wasn’t correct.

2 Likes

I regularly copy /storage/emulated/0, which works fine for me

I have edited my previous message.

In WhatsApp, in the settings, do a backup of all messages.

Can one do it without Google Drive? Besides not having any Google-related app, and not having a Google account either, I am very reluctant about doing a GDrive backup since it would imply exporting all the chats unencrypted. I don’t really believe my whatsapp chats are not read by anyone besides me and the contact I chat to, but I would rather avoid that anyway.

Will try next time!

1 Like

Of course! You can store backups on the phone locally. Just that for some reason, I never managed to restore backups stored locally without the trick described in my post, WA tells me it didn’t succeed…

WhatsApp backups are encrypted when stored locally, and decrypted when restored. So they are normally not stored as clear on your device. See e.g here:

Also, I think I did a mistake in my protocol, I’ll edit my post. It still needs testing.

This is becoming annoying.
Today I was offered a new update for 17.1+microG. When I looked up the changelog, I was redirected to the “official” LOS changelog. Of course there was a change by @dk1978 https://review.lineageos.org/310526 which (if I interpret it correctly) is about updated firmware. But although it is in the changelog they link to, it seems to be not included in their update…

I think I really have to find time to switch to official LOS.

1 Like