Howto install Calyx OS on FP4

Thx for the quick reply. Most of the stuff is clear to me now.

Just some details / double check questions:

  1. When we talk about unlock bootloader is it just the fastboot flashing unlock or also fastboot flashing unlock_critical? The last one was discussed here in some posts and it seems that also /e/OS and official Fairphone guides point on that. So do you leave this second option unlocked as well or do you lock it again (at least in between updates or so)? As far as I understood it should stay unlocked as well, at least in regards of the following two issues (correct me if it is wrong):
    ** during first installation with the factory version → to get rid of a lot of FAILED (remote: 'Flashing is not allowed for Critical Partitions')
    ** prevent problems during OTA updates

  2. The update procedure is performed within the running CalyxOS (except the reboot of course), right? (uninstall Magisk within the Magisk App; run the OTA update; install Magisk again [via inactive Slot option] ← never saw that up to now tbh - anyway.

  3. the first installation of Magisk procedure, you explained here, is still the recommended way? (with a boot from the patched boot image in between) - I didn’t get the A/B boot image point up to now, so I feel a bit unsafe and I think I will pick the boot.img from the Calyx factory zip for patching in Magisk App.

(Last point: I can edit the initial post as well (handled like a wiki post I think - and depending on the privileges some users can edit). @R2D2 do you mind when I (/we … whoever can) edit it, in case there is anything to add/re-word (first example might be 'unlock_critical`)?)
EDIT: Will eventually create a separate guide for Calyx including root and don’t touch this one…


  1. I read some more stuff and I think both should stay unlocked, as boot partitions are critical partitions. So Magisk setup would fail without it. Also at a later stage during OTA updates Magisk will be uninstalled and installed to inactive Slot, which will probably fail, when the critical partitions are locked again, right? Furthermore locking in between does not really make sense in such a setup, as it always wipes everything ´unlock_critical´ as well as ´lock_critical´.
    With that said I think 1. is answered. Feel free to add/correct.
  1. Yes you should use fastboot flashing unlock_critical and I would keep it unlocked. I’m not sure if there are still problems with locked critical partitions when it comes to OTA, haven’t seen anything scroll by on Matrix. :man_shrugging: But since you have to keep your bootloader unlocked for Magisk anyway, might as well keep everything easily accessible.
    Magisk doesn’t touch critical partitions though, so you could lock them, it’s just more hassle if you do (and have to fix something)
  2. Yes, performed on a running Calyx system. Just a quick Magisk uninstall → OTA update → Magisk install to the other slot. I’ve used that method on several updates without any problem.
  3. The Magisk install procedure is still the same, you just use the boot.img from the Calyx factory images, that’s correct :+1:
1 Like

And thanks for all your informative posts and your quick reply, @hirnsushi , they really help to get things sorted (it was a bit different with the FP2 which is still in use here :wink: ).

Also thanks for that, will use it, when I going to flash the first time, but with my first question here I meant more a page like Lineage has (example for FP2: LineageOS Downloads ) where I can see the builds listed or so!? With that way you can just point to the lastest build. Right now, it feels more like one has to know the URL. ^^

1 Like

Yeah, I always have to dig through their news section myself when I need the link. Can’t seem to remember putting it in my notes :see_no_evil:
CalyxOS on the FP4 is still in the testing phase, not installable through their “easy installer”, that’s why it isn’t featured more prominently on the website.

Regarding the link, I just took the latest link from their news ( and swapped the old build number 22305000 with the newer 22307020 mentioned here.
That usually works with all kinds of stuff :smirk: (for example Fairphone kernels)


Worked well. Thanks again @hirnsushi

Phone is running with CalyxOS 3.7.2 + Magisk 25.2 :white_check_mark:


Hello all, many thx to R2D2 and hirnsushi for the nice guide and support. After some trouble with the drivers on windows and the usb connectivity at ubuntu i finally made it. 3.7.2 works very well right now. THX!

I checked on for newer updated and found the version 3.7.3 did anyone already flashed this version?


That version has only been released for the Pixel 6a for now, have a look at the checklist :white_check_mark: in that issue.
Might still be some time till this reaches the FP4 :slightly_smiling_face:

Oh and welcome to the community :wave:

Did the Calyx install script also overwrite the recovery?
At least there is one step executed during the installation (I saved it when I installed 3.7.2):

extracting recovery.img (96 MB) to disk... took 0.326s
archive does not contain 'recovery.sig'
Sending 'recovery' (98304 KB)                      OKAY [  3.703s]
Writing 'recovery'                                 OKAY [  0.254s]

Now I was looking for a way to flash a zip (in my case it just contains an app, which should be installed as system app - background is a test with a camera installed as system app - see here).

So I have a flashable zip and was looking for a way to install it. Normally there were options in recovery (probably I remember TWRP) to install such a zip directly or to start adb sideload and flash it on that way.

First thing which confused me was the way of accessing the recovery (I don’t remember that I booted into recovery with my FP4 before, so I cannot tell if it always looked like that):

  1. device off (no cable connected)
  2. hold “Volume Down” key + insert charger (release “Volume Down” key, when the fp logo shows up)
  3. select “recovery mode” (with “Volume Up/Down” keys) and confirm with power button
  4. I will boot in a “No command” screen (I did not remember from other recoveries I used before)
    Recovery no command
  5. Hold “Power” + “Volume Up” keys … and it will finally boot into the recovery menu

I assume in there
Android recovery
I can use “Apply update from ADB” to sideload a zip?

Or is there any other recommended way to do this?

  • flashing a different recovery first with some more options or
  • install system apps without flashing e.g. like described here (copying the apk to the right folder, set correct access permissions and reboot)

Flashing random .zips usually isn’t a feature in any of the modern recoveries, those were the good 'ol TWRP days :face_with_monocle:. But even if it was, I would strongly advise against using it, you will break OTA-updates.

Don’t modify /system directly, create a Magisk module.

1 Like

Thanks for the quick reply. So I will repeat what I learned recently (about how to create a Magisk module). :wink:

A post was split to a new topic: Magisk module for (system-)camera apps

Thats the standard AOSP recovery I think, at least its the standard FPOS recovery (FP2+FP3)…

1 Like

Yes, this could be. When I researched about it, it felt like that it exists and behaves that way for a long time already and over several Android versions. Looks like I always used TRWP or Lineage Recovery over the years with my FP2 (got it end of 2016) and I never had the pleasure of using ASOP recovery.

Here are my five cents on installing CalyxOS on FP4:

After a few hours of sweating blood, I managed to install CalyxOS with a locked bootloader.
I followed the instructions listed on the top of this thread with the following modifications>

  • I used the newer CalyxOS Install image BETA 3.7.2 from the mentioned link.
  • I additionally also did fastbood flash unlock_critical first as mentioned in the CalyxOS install instructions (which included an additional reboot, clicking through setup and re-enabling USB debugging and OEM unlock).

Everything went as described (including the Cannot load Android system. error that can be resolved with the factory reset.

After successfully booting into CalyxOS, I found I was hit by this issue. :weary:

In short: you cannot enable OEM unlocking through the OS (above shown option is greyed out,not 100% clear why), but the command fastboot flashing get_unlock_ability returns get_unlock_ability=0. :warning:Attempting to lock the bootloader in that state seems to brick your phone! :warning:

Since I wanted to have the security of a locked bootloader I went through the cumbersome procedure described in this post, which involved using Magisk to patch boot.img, boot that with fastboot and using the command
adb shell su -c 'resetprop ro.boot.flash.locked 1'
after which I was able to enable OEM unlocking again and got me get_unlock_ability=1.
After this I was confident enough to relock the bootloader using fastboot flashing lock.
My prayer were answered and after another factory reset, the bootloader was locked and I have now CalyxOS with a locked bootloader. :sweat_smile:

Thanks everyone in this (and other) threads (especially @hirnsushi and @R2D2) for their help and tips on installing CalyxOS!


I’m really glad this worked for you :smiley:

Could you please check what state fastboot flashing get_unlock_ability is in, now that you went through the whole process :thinking:
If it got reset to 0 again, consider yourself lucky…


When I check now, I get get_unlock_ability: 0 but I have not activated OEM unlocking at the moment, so I guess that’s expected? :man_shrugging:

But you didn’t deactivate yourself, right?!
Otherwise, I think it should stay enabled.

If you follow the thread with those instructions just a bit further, you’ll notice we very quickly discovered that it would just reset to 0 again. That’s why I haven’t recommended that method again after that.

You got lucky, you had the right conditions on your phone (likely down to the patch level being the same or newer than what you had before), but if you didn’t, I’m pretty sure you would have bricked your device.

1 Like

In addition to what @hirnsushi wrote, this statement/warning is IMO wrong!
That state does not always lead to a bricked phone. It rather can cause a bricked phone if something goes wrong while locking the phone (mainly because as said above you downgrade the patch level) because then you’re no longer able to unlock it again.


Could you enable it or is it greyed out?