Howto install Calyx OS on FP4

Thank you for trying to help me!
I have already tried a different computer without a different result. A different ROM would be a new option I could try!
How would you use a Live USB in this instance?

Also running Manjaro? :thinking:
Otherwise, this seems to be getting weirder still…

Just boot it up and use the live environment like you would your regular system. Since you are already familiar with Arch, just grab one of the isos and write that to a stick, or throw Ventoy on there instead, if you want to try different distros.
If you don’t reboot there’s no need to enable persistence either.

Yes. On one computer I actually deleted FPOS, so that the system cannot start at all anymore. It seems that there is no system installed now.

Thank you. I will try that!

I made a post about some problems I had installing Calyx OS. The best option to get answers it’s posting it here imo.

I’m trying to install CalyxOS on FP4. I followed every step and guide availaible.

So I followed all steps from “Manage you bootloader” and simultaniously the steps of CalyxOS “”“”“Guide”“”“”“”" (Howto install Calyx OS on FP4).

My installation fails when installing CalyxOS itself. I’m installing CalyxOS 4.2.2 build number 22402020.

I execute ./flash-all (On GNU/Linux Debian) when on bootloader, after unlocking both critical and not, etc. And i get this:

Sending ‘abl_a’ (148 KB) OKAY [ 0.006s]
Writing ‘abl_a’ OKAY [ 0.003s]
Finished. Total time: 0.015s
Sending ‘abl_b’ (148 KB) OKAY [ 0.007s]
Writing ‘abl_b’ OKAY [ 0.002s]
Finished. Total time: 0.016s
Sending ‘aop_a’ (176 KB) OKAY [ 0.007s]
Writing ‘aop_a’ OKAY [ 0.002s]
Finished. Total time: 0.016s
Sending ‘aop_b’ (176 KB) OKAY [ 0.007s]
Writing ‘aop_b’ OKAY [ 0.002s]
Finished. Total time: 0.016s
Sending ‘bluetooth_a’ (940 KB) OKAY [ 0.006s]
Writing ‘bluetooth_a’ OKAY [ 0.004s]
Finished. Total time: 0.018s
Sending ‘bluetooth_b’ (940 KB) OKAY [ 0.015s]
Writing ‘bluetooth_b’ OKAY [ 0.004s]
Finished. Total time: 0.026s
Sending ‘core_nhlos_a’ (108556 KB) OKAY [ 0.505s]
Writing ‘core_nhlos_a’ OKAY [ 0.267s]
Finished. Total time: 0.779s
Sending ‘core_nhlos_b’ (108556 KB) OKAY [ 0.432s]
Writing ‘core_nhlos_b’ OKAY [ 0.252s]
Finished. Total time: 0.692s
Sending ‘devcfg_a’ (44 KB) OKAY [ 0.009s]
Writing ‘devcfg_a’ OKAY [ 0.001s]
Finished. Total time: 0.025s
Sending ‘devcfg_b’ (44 KB) OKAY [ 0.008s]
Writing ‘devcfg_b’ OKAY [ 0.001s]
Finished. Total time: 0.015s
Sending ‘dsp_a’ (65536 KB) OKAY [ 0.308s]
Writing ‘dsp_a’ OKAY [ 0.160s]
Finished. Total time: 0.475s
Sending ‘dsp_b’ (65536 KB) OKAY [ 0.309s]
Writing ‘dsp_b’ OKAY [ 0.168s]
Finished. Total time: 0.484s
Sending ‘featenabler_a’ (88 KB) OKAY [ 0.007s]
Writing ‘featenabler_a’ OKAY [ 0.002s]
Finished. Total time: 0.021s
Sending ‘featenabler_b’ (88 KB) OKAY [ 0.009s]
Writing ‘featenabler_b’ OKAY [ 0.002s]
Finished. Total time: 0.026s
Sending ‘hyp_a’ (400 KB) OKAY [ 0.007s]
Writing ‘hyp_a’ OKAY [ 0.003s]
Finished. Total time: 0.017s
Sending ‘hyp_b’ (400 KB) OKAY [ 0.006s]
Writing ‘hyp_b’ OKAY [ 0.003s]
Finished. Total time: 0.016s
Sending ‘imagefv_a’ (524 KB) OKAY [ 0.006s]
Writing ‘imagefv_a’ OKAY [ 0.003s]
Finished. Total time: 0.016s
Sending ‘imagefv_b’ (524 KB) OKAY [ 0.006s]
Writing ‘imagefv_b’ OKAY [ 0.003s]
Finished. Total time: 0.016s
Sending ‘keymaster_a’ (260 KB) OKAY [ 0.005s]
Writing ‘keymaster_a’ OKAY [ 0.003s]
Finished. Total time: 0.015s
Sending ‘keymaster_b’ (260 KB) OKAY [ 0.006s]
Writing ‘keymaster_b’ OKAY [ 0.003s]
Finished. Total time: 0.016s
Sending ‘modem_a’ (146188 KB) OKAY [ 0.517s]
Writing ‘modem_a’ OKAY [ 0.314s]
Finished. Total time: 0.837s
Sending ‘modem_b’ (146188 KB) OKAY [ 0.675s]
Writing ‘modem_b’ OKAY [ 0.334s]
Finished. Total time: 1.016s
Sending ‘multiimgoem_a’ (16 KB) OKAY [ 0.004s]
Writing ‘multiimgoem_a’ OKAY [ 0.001s]
Finished. Total time: 0.013s
Sending ‘multiimgoem_b’ (16 KB) OKAY [ 0.008s]
Writing ‘multiimgoem_b’ OKAY [ 0.001s]
Finished. Total time: 0.016s
Sending ‘qupfw_a’ (56 KB) OKAY [ 0.008s]
Writing ‘qupfw_a’ OKAY [ 0.001s]
Finished. Total time: 0.016s
Sending ‘qupfw_b’ (56 KB) OKAY [ 0.008s]
Writing ‘qupfw_b’ OKAY [ 0.001s]
Finished. Total time: 0.016s
Sending ‘tz_a’ (2948 KB) OKAY [ 0.018s]
Writing ‘tz_a’ OKAY [ 0.008s]
Finished. Total time: 0.043s
Sending ‘tz_b’ (2948 KB) OKAY [ 0.021s]
Writing ‘tz_b’ OKAY [ 0.008s]
Finished. Total time: 0.036s
Sending ‘uefisecapp_a’ (124 KB) OKAY [ 0.010s]
Writing ‘uefisecapp_a’ OKAY [ 0.002s]
Finished. Total time: 0.020s
Sending ‘uefisecapp_b’ (124 KB) OKAY [ 0.006s]
Writing ‘uefisecapp_b’ OKAY [ 0.002s]
Finished. Total time: 0.016s
Sending ‘xbl_a’ (3300 KB) OKAY [ 0.027s]
Writing ‘xbl_a’ OKAY [ 0.010s]
Finished. Total time: 0.044s
Sending ‘xbl_b’ (3300 KB) OKAY [ 0.019s]
Writing ‘xbl_b’ OKAY [ 0.008s]
Finished. Total time: 0.034s
Sending ‘xbl_config_a’ (96 KB) OKAY [ 0.011s]
Writing ‘xbl_config_a’ OKAY [ 0.002s]
Finished. Total time: 0.020s
Sending ‘xbl_config_b’ (96 KB) OKAY [ 0.007s]
Writing ‘xbl_config_b’ OKAY [ 0.002s]
Finished. Total time: 0.016s
Sending ‘frp’ (512 KB) OKAY [ 0.008s]
Writing ‘frp’ OKAY [ 0.003s]
Finished. Total time: 0.017s
Sending ‘devinfo’ (4 KB) OKAY [ 0.006s]
Writing ‘devinfo’ OKAY [ 0.001s]
Finished. Total time: 0.014s
Erasing ‘misc’ OKAY [ 0.019s]
Finished. Total time: 0.036s
Erasing ‘modemst1’ OKAY [ 0.012s]
Finished. Total time: 0.016s
Erasing ‘modemst2’ OKAY [ 0.022s]
Finished. Total time: 0.026s
Setting current slot to ‘a’ OKAY [ 0.027s]
Finished. Total time: 0.029s
Rebooting into bootloader OKAY [ 0.000s]
Finished. Total time: 0.453s
Erasing ‘avb_custom_key’ OKAY [ 0.014s]
Finished. Total time: 0.020s
Sending ‘avb_custom_key’ (1 KB) OKAY [ 0.003s]
Writing ‘avb_custom_key’ OKAY [ 0.011s]
Finished. Total time: 0.022s

Bootloader Version…:
Baseband Version…:
Serial Number…: 68240a85

extracting android-info.txt (0 MB) to RAM…
Checking ‘product’ OKAY [ 0.002s]
Setting current slot to ‘a’ OKAY [ 0.002s]
extracting boot.img (96 MB) to disk… took 0.254s
archive does not contain ‘boot.sig’
Sending ‘boot_a’ (98304 KB) OKAY [ 0.437s]
Writing ‘boot_a’ OKAY [ 0.254s]
archive does not contain ‘init_boot.img’
extracting dtbo.img (24 MB) to disk… took 0.043s
archive does not contain ‘dtbo.sig’
Sending ‘dtbo’ (24576 KB) OKAY [ 0.090s]
Writing ‘dtbo’ OKAY [ 0.056s]
archive does not contain ‘dt.img’
archive does not contain ‘pvmfw.img’
extracting recovery.img (96 MB) to disk… took 0.279s
archive does not contain ‘recovery.sig’
Sending ‘recovery’ (98304 KB) OKAY [ 0.419s]
Writing ‘recovery’ OKAY [ 0.211s]
extracting vbmeta.img (0 MB) to disk… took 0.000s
archive does not contain ‘vbmeta.sig’
Sending ‘vbmeta’ (8 KB) OKAY [ 0.008s]
Writing ‘vbmeta’ OKAY [ 0.003s]
extracting vbmeta_system.img (0 MB) to disk… took 0.000s
archive does not contain ‘vbmeta_system.sig’
Sending ‘vbmeta_system’ (4 KB) OKAY [ 0.002s]
Writing ‘vbmeta_system’ OKAY [ 0.003s]
archive does not contain ‘vbmeta_vendor.img’
archive does not contain ‘vendor_boot.img’
archive does not contain ‘vendor_kernel_boot.img’
extracting super_empty.img (0 MB) to disk… took 0.000s
Rebooting into fastboot OKAY [ 0.002s]
< waiting for any device >
fastboot: error: Failed to boot into userspace fastboot; one or more components might be unbootable.
Rebooting into bootloader OKAY [ 0.000s]
Finished. Total time: 0.804s

The last reboot the FP4 doesn’t boot into bootloader but it boots into fastbootd (Which i think it’s the recovery). Because of this the script doesn’t end and i have to manually reset phone and press Volume down in order to get into bootloader again. Then i get that error. And Calyx OS doesn’t install. If i go into recovery and select factory reset i reset into stock FP4 OS. Well at least phone isn’t mega doomed. Also after this mess of installer i’ve get_unlock_ability=0 so I think that now i’m stuck with an unlocked bootloader forever.

Any helps? Is it my fault or a mix of FP4 bootloader bugs and Calyx OS bugs, because i followed every step carefully and it’s really a mess. I don’t remember that hard when I installed Lineage Os on BQ Aquaris X PRO.

Welcome to the community :wave: I’ve moved your post to this topic.
Please don’t try bumping your posts, it’s only been 2 hours, people (or at least I) got to eat :smirk:

That’s intended behavior if I remember correctly, but according to your logs, the installer didn’t manage to finish that step correctly. That’s not recovery, but the place fastboot functionality is slowly getting moved to :nerd_face:

Let’s start with the obvious troubleshooting steps, what’s your fastboot --version and have you tried different USB ports / cables already, fastboot is notoriously finicky when it comes to USB communication.

You can reset that switch using Magisk if you want to lock your bootloader (and are adventurous) :slightly_smiling_face:

Oh and please put your log between triple backticks (```)

```text

like this

```

… makes it way easier to read.

1 Like

Thank you for the fast reply! I’m so sorry for the output I’ll use the triple backticks, thanks! My platform-tools from Google dev is the latest one, in particular fastboot version 33.0.3-8952118. I don’t know what Magisk is but i’ll check it (It’s some kind of recovery or a desktop command?). The thing is that once booted it says that the Bootloader is unlocked so I don’t really understand what information get_unlock_ability is giving (I just read that 0 = bad, do not lock). I’ll try another port and see what happens.

Magisk is a way to root your phone, you need (at least temporary) root privileges to switch that switch back to ON. I wrote a short tutorial in the past (which might be slightly outdated, don’t use that boot.img), but there is still a risk involved when locking the bootloader, so I wouldn’t recommend it if you depend on your FP for anything essential. Worst case scenario you’ll have to get if fixed by support for up to 30 euro.

get_unlock_ability tells you the state of that OEM unlocking switch you had to toggle before unlocking the bootloader. Doesn’t matter much if you don’t intend to relock your bootloader, but if you do and something goes wrong, that variable being 0 means you wouldn’t be able to unlock it again to fix it → :brick:

But before any of this becomes relevant, you’ll need a working Calyx installation first :smirk:

1 Like

Hey thanks for your replies, it was some udev rules I didn’t setup. I’m in!! I got Calyx Os! So this brick problem you can only solved by changing that stupid flag variable? It’s like a joke how an almost debug variable can literally brake your phone. There’re plans to fix this? I find it very stupid tbh. Should I wait for those fixes?

So what I understand is that the flag itself does nothing, the problem is that if your phone bricks due to other problems, that stupid variable sets off any debugging options?

But if this is it, why i can’t just reenable it from the debugging options of my phone!!! What has changed??? This is some kind of Google kind of drm bullshit I cannot believe this…

If someone has the same problem I had with the fastboot check (4.2.2) Cannot finish Calyx Os Installation on FP4 (#1278) · Issues · CalyxOS / calyxos · GitLab.

Yes I’m double posting problems (not on the same web). Twice the solving posibilities!

Congratulations on getting it to work :tada:

Yes and no, the flag tells you the state of the OEM unlocking switch, that got reset because of a bug in the bootloader. That flag is a switch and it’s potentially standing between you being able to unlock the bootloader again, I wouldn’t call that doing nothing.
I wouldn’t wait for this to get fixed, Fairphone has acknowledged the problem, but they consider it solved from their side (which it clearly is not) and there haven’t been any updates on that topic in months.

If nothing bad happens when locking the bootloader (e.g. rollback protection gets triggered for some reason) you could absolutely lock your bootloader right now, CalyxOS will disable that switch after a successful boot anyway, but I wouldn’t recommend it.

Nothing to do with DRM or anything, the only reason that switch can’t be toggled is that your bootloader is already unlocked and while that’s the case, the switch is greyed out. Have a look at the linked tutorial, the solution is just to make the system think its locked and you can toggle it again.

Hi, we move here then. I managed to reset the inlock OEM switch with Magisk. Now I have get_unlock_ability=1. What should I do now? Factory reset into fastboot flashing lock_critical and tehn fastboot flashing lock. All the steps doing adb reboot bootloder before each lock.

Do I have to skip the factory reset part?

I don’t consider locking critical partitions necessary, once the bootloader is locked, you can’t access them anyway. But for completeness’ sake, you can of course lock them :nerd_face:
I would boot cycle the phone at least once for good measure and check if everything stays as it’s supposed to. Locking the phone (or the critical partitions) will factory reset it anyway, no need to wipe it beforehand.
You might have to do a factory reset after locking the bootloader, if your phone doesn’t boot properly.

Standard disclaimer here, there is a risk involved with locking your bootloader, I personally don’t recommend it, this might brick your phone.

Oh, and just to be sure, you didn’t flash the modified boot.img to your device and just booted it, right?!

1 Like

Well… I had unlock_ability= 1 with the first lock_critical. But now im stuck on infinite boot… There is any posibility to get into recovery or fastboot? so i can fastboot flashin unlock again since OEM was unlocked at the last step? Or do I have to send to repair? How do I contact fairphone for repair?

After the I locked bootloader, i had a screen popup saying You have installed a diferent OS. So I imagine that fariphone is literally blocked to just use the stock OS (if you want locked).

What do you mean with infinite boot? :thinking:
Did you only lock critical partitions or the bootloader as well?

That’s a normal screen.

I get Fariphone screen and it reboots. No other popup

Was this the screen you were getting:
https://source.android.com/docs/security/features/verifiedboot/boot-flow#locked-devices-with-custom-root-of-trust
If so, that’s completely normal.

Have you tried unplugging the phone and holding either Vol. Up / Vol. Down while plugging it back in?

Yes, I got inside bootloader and recovery. Sorry I was panicing a bit. So nothing bricked indeed.

I still get unlock_ability 1 on bootloader. The problem it’s jsut that Calyx Os doesnt boot. I’ve tried factory reset too but it loops on bootling fairphone screen. Why is it?

I should be 100% able to unlock it again, but I want to understand what is happening.

I got LOCKED devices with custom root fo trust

Thank god :relieved:

You just booted from the Magisk boot.img, right?

I would unlock it, install Calyx again and repeat the process.

That’s what you want :+1: