TWRP for Fairphone 3

May I ask you how you did this, please? At which point do you apply the boot.img and how? Thank you!

Thanks for continuing to work on this.

I just booted it and unfortunately neither mounting partitions apart from data nor decrypting data seem to work for me. It doesn’t ask for my decryption password, so doesn’t decrypt data, and mounting the other partitions looks like this …

I’m running Android 12 (S) in the form of /e/OS e-1.11-s-20230511288805-dev-FP3 …
Is there something I can test or try?

Switching the storage to SD card works, so apart from screenshots I can copy logs.

Please provide the /tmp/recovery.log.
Does /e/ use dynamic partitions?
What happens when you use the old 9.0-based TWRP?

Done via GitHub.

I don’t know. 9.0 based TWRP can mount partitions other than data, if that’s an indication.

Doesn’t ask for decryption password, so doesn’t decrypt, like the 11.0 based TWRP.
9.0 based TWRP decryption support was lost with /e/OS when it went from Android 11 to Android 12 on FP3.
Other partitions seem to mount fine, though (I can select them in “Mount”, too, which I can’t do in the 11.0 based TWRP) …

Seems there are two issues then for /e/.
It doesn’t seem to use dynamic partitions and the 11-based TWRP can’t decrypt the 12-based encryption.
I tried building a 12-based TWRP before, but that wasn’t able to decrypt the 11-based encryption of FPOS.
So this might need a separate TWRP-build for /e/
Would be great to get feedback from someone using LOS.

@bami: How to apply the patched boot image

  1. Make sure your FP3 is updated to the current patch level, (.0022) that it has the developer option enabled, that the boot loader is unlocked and that the current Magisk app is installed.
  2. Make sure your PC has the Android developer tools adb and fastboot installed.
  3. Download the patched boot image from (from the link provided in “Bootloop upon fastboot installation with FP3-8901.4.A.0021.0-gms-0b368514-user” above) and unzip it.
  4. Reboot your FP to bootloader mode with “adb reboot bootloader”
  5. Boot the downloaded image with “fastboot boot FP3-8901.4.A.0022.0-boot_magisk_patched_skip_initramfs.img” and make sure the patched image works for you.
  6. If it does then reboot again to fastboot mode as in step 4. and then install the patched image to the boot partitions of your FP3 with “fastboot flash boot_a FP3-8901.4.A.0022.0-boot_magisk_patched_skip_initramfs.img” and “fastboot flash boot_b FP3-8901.4.A.0022.0-boot_magisk_patched_skip_initramfs.img”
  7. Reboot (“fastboot reboot”) and enjoy :wink:

Note: If you want to apply any future releases to your FP3 you will have to revert to the unpatched boot image, so I strongly recommend that you keep an original boot image as contained in handy. To flash the original boot repeat the above step 6 with the boot.img contained in the images directory of the zip.


Tested with:
unfortunately no password prompt, and no decryption…, but thanks for your efforts!
recovery.pdf (104.8 KB)

Many thanks, @wjg57, for your detailed instructions! These are perfect for me!

Use this one instead:

The one you linked breaks recovery-boot (It will just boot to system, if you try booting recovery)

Thanks for your attentiveness, @k4y0z !
In fact that’s the one I used - picked the wrong link while reconstructing the process for the step-by-step, sorry. I’ve updated the link in the step-by-step with the corrected link.

This one (obviously) doesn’t work for A.0023 anymore and we require a new magisk patched boot image for that version.

Since I’m eager to learn, given that I have an A.0023 boot.img, Magisk, development tools and a somewhat okay understanding of c/c++, what would one need to do to create such a patched boot image?

The easiest way would be to use the apk created by my PR here:

If you want to build it yourself there is a guide


Would it be possible to host the apk somwhere? The github artifacts are no longer available as it seems, and I can’t get the build to work…

Many thanks @k4y0z for getting back here.

No, both LineageOS and /e/ does not use dynamic partitions on FP3. So, no support could be added on device/kernel side.

Let me know if I could be of any help.

Also, I came across this comment. This was done because of VTS I guess. Let me know if you have an alternative option for this.

I did try to create a request for creating a new branch on TWRP project so that we could submit changes via Gerrit but it didn’t work out.

I am happy to see the progress here and would like to contribute for this. :slight_smile:

@fabian.schicker the link still seems to work fine for me.

@TeamB58 Thanks for confirming, I already made some progress regarding LOS, unfortunately I wasn’t able to get decryption working on /e/ yet.
Thanks @AnotherElk and @d2w for testing.

I haven’t had the time yet to commit the changes and and create new releases.

Regarding this, I assume it was done to avoid having to update the bootloader and breaking ROMs that don’t use dynamic partitions. I does however go against googles recomendations:
For Android 10 devices, the bootloader MUST NOT pass skip_initramfs to the kernel command-line. Instead, bootloader should pass androidboot.force_normal_boot=1 to skip recovery and boot normal Android. Devices

1 Like

I think this is applicable for Dynamic Partitions but not for Retrofit since FP3 is Android 9 launch device.

The repistory requires you to be signed in into a GitHub account, then the link works. I uploaded it again here: -

(The original filename was just a bunch of numbers, I just typed somethinig)

Ah, thank you! Didn’t think about signing in on GitHub since it just gave me a 404 error…

I have uploaded two new versions of TWRP, one based on Android 11 and one based on Android 12.

Both versions should detect if the installed ROM uses (retrofitted) dynamic partitions or not.

twrp-3.7.0_11-0_k4y0z-20230818-01-fp3.img should be able to decrypt Android 11 based FPOS.

twrp-3.7.0_12-0_k4y0z-20230818-01-fp3.img should be able to decrypt LOS 20 /e/.

Unfortunately neither version currently supports decrypting Android 13 based FPOS or /e/ LOS.

Feedback welcome.

Thanks again @AnotherElk and @d2w for testing, and sorry for the delay.

EDIT: Seems like I mixed things up a bit, it was /e/ that worked not LOS.


Man you people are saints! Thank you very much!

Any info about Android 13 TWRP? Right now I consider going back to 11/ 12 just to get root.