Trapped in fastboot mode with locked bootloader and corrupted custom ROM

Definitely don’t lock your bootloader in that case (as you are probably already know :slightly_smiling_face:)!

Since my method of unlocking the OEM switch works, but for @cosmic get_unlock_ability was reset to 0 again afterwards , better not to tempt fate. as well, tread very carefully here.
The only safe path forward is to wait for the Calyx devs to release a new version based on the updated Fairphone stock images, which they confirmed they will.

Edit: Should have reread your post :man_facepalming:
get_unlock_ability definitely shouldn’t have been reset to 0 again, so let’s hope this gets fixed with the next CalxyOS release. You might have to wipe your phone again then, though :see_no_evil:


I have no problem with that. As long as CalyxOS only releases test builds, it will remain the secondary phone for now…


How long did it take them to respond? I’ve opened an issue and after 10 days there is still no answer. I’m so hyped I just want to get it running :smiley:

NVM just received an answer :slight_smile:


I just reflashed a FP4 with the updated factory images and get_unlock_ability was reset to 0. That phone hasn’t been flashed to any custom ROM before (so not a Calyx problem this time) and get_unlock_ability was 1 before flashing.

So this is definitely not fixed… :roll_eyes:

Edit: I followed this process without locking the bootloader at the end and reflashed the whole OS again.
Same outcome, again.

Edit 2: Third time wasn’t the charm either. Tried a factory reset beforehand, tried fastboot flashing unlock again (doesn’t work on a unlocked phone), still changed that 1 to a 0 again :see_no_evil:



I think I messed up too… I did a quick flashing of CalyxOS (unlocked without critical). Then I recognized a much dimmer LED flash and wanted to get back to stock.
I did the download and startet the script which aborted because locked critical.
I unlocked critical and the installation went through. FPOS booted up, yeah!

And now for the messup. I got the message, that an unlocked phone isn’t secure. In my endles wisdom I locked critical and “nomal” again without toogling OEM unlock first in OS.
I then was presented the message that my system is corrupted. Now it just boots to fastboot mode and I cannot unlock the bootloader…

Here is my getvar all

(bootloader) parallel-download-flash:yes
(bootloader) hw-revision:10000
(bootloader) unlocked:no
(bootloader) off-mode-charge:0
(bootloader) charger-screen-enabled:0
(bootloader) battery-soc-ok:yes
(bootloader) battery-voltage:4096
(bootloader) version-baseband:
(bootloader) version-bootloader:
(bootloader) erase-block-size: 0x1000
(bootloader) logical-block-size: 0x1000
(bootloader) variant:SM_ UFS
(bootloader) partition-type:modemst2:raw
(bootloader) partition-size:modemst2: 0x600000
(bootloader) partition-type:modemst1:raw
(bootloader) partition-size:modemst1: 0x600000
(bootloader) partition-type:tunning:raw
(bootloader) partition-size:tunning: 0x600000
(bootloader) partition-type:fsc:raw
(bootloader) partition-size:fsc: 0x20000
(bootloader) partition-type:fsg:raw
(bootloader) partition-size:fsg: 0x280000
(bootloader) partition-type:fpconfig:raw
(bootloader) partition-size:fpconfig: 0x20000
(bootloader) partition-type:fpconfig_persist:raw
(bootloader) partition-size:fpconfig_persist: 0x20000
(bootloader) partition-type:traceability:raw
(bootloader) partition-size:traceability: 0x100000
(bootloader) partition-type:ALIGN_TO_128K_2:raw
(bootloader) partition-size:ALIGN_TO_128K_2: 0x1A000
(bootloader) partition-type:swversion:raw
(bootloader) partition-size:swversion: 0x20000
(bootloader) partition-type:oembin:raw
(bootloader) partition-size:oembin: 0x400000
(bootloader) partition-type:catecontentfv:raw
(bootloader) partition-size:catecontentfv: 0x100000
(bootloader) partition-type:catefv:raw
(bootloader) partition-size:catefv: 0x80000
(bootloader) partition-type:secdata:raw
(bootloader) partition-size:secdata: 0x7000
(bootloader) partition-type:uefivarstore:raw
(bootloader) partition-size:uefivarstore: 0x80000
(bootloader) partition-type:storsec:raw
(bootloader) partition-size:storsec: 0x20000
(bootloader) partition-type:logdump:raw
(bootloader) partition-size:logdump: 0x4000000
(bootloader) partition-type:cateloader:raw
(bootloader) partition-size:cateloader: 0x200000
(bootloader) partition-type:logfs:raw
(bootloader) partition-size:logfs: 0x800000
(bootloader) partition-type:toolsfv:raw
(bootloader) partition-size:toolsfv: 0x100000
(bootloader) partition-type:limits-cdsp:raw
(bootloader) partition-size:limits-cdsp: 0x1000
(bootloader) partition-type:limits:raw
(bootloader) partition-size:limits: 0x1000
(bootloader) partition-type:splash:raw
(bootloader) partition-size:splash: 0x20A4000
(bootloader) partition-type:spunvm:raw
(bootloader) partition-size:spunvm: 0x800000
(bootloader) partition-type:apdp:raw
(bootloader) partition-size:apdp: 0x40000
(bootloader) partition-type:dip:raw
(bootloader) partition-size:dip: 0x100000
(bootloader) partition-type:devinfo:raw
(bootloader) partition-size:devinfo: 0x1000
(bootloader) partition-type:fsgbk_b:raw
(bootloader) partition-size:fsgbk_b: 0x280000
(bootloader) partition-type:core_nhlos_b:raw
(bootloader) partition-size:core_nhlos_b: 0xAA00000
(bootloader) partition-type:uefisecapp_b:raw
(bootloader) partition-size:uefisecapp_b: 0x200000
(bootloader) partition-type:imagefv_b:raw
(bootloader) partition-size:imagefv_b: 0x200000
(bootloader) partition-type:featenabler_b:raw
(bootloader) partition-size:featenabler_b: 0x20000
(bootloader) partition-type:dtbo_b:raw
(bootloader) partition-size:dtbo_b: 0x1800000
(bootloader) partition-type:vbmeta_b:raw
(bootloader) partition-size:vbmeta_b: 0x10000
(bootloader) partition-type:vbmeta_system_b:raw
(bootloader) partition-size:vbmeta_system_b: 0x10000
(bootloader) partition-type:recovery_b:raw
(bootloader) partition-size:recovery_b: 0x6000000
(bootloader) partition-type:qupfw_b:raw
(bootloader) partition-size:qupfw_b: 0x14000
(bootloader) partition-type:devcfg_b:raw
(bootloader) partition-size:devcfg_b: 0x20000
(bootloader) partition-type:boot_b:raw
(bootloader) partition-size:boot_b: 0x6000000
(bootloader) partition-type:keymaster_b:raw
(bootloader) partition-size:keymaster_b: 0x80000
(bootloader) partition-type:dsp_b:raw
(bootloader) partition-size:dsp_b: 0x4000000
(bootloader) partition-type:abl_b:raw
(bootloader) partition-size:abl_b: 0x100000
(bootloader) partition-type:mdtp_b:raw
(bootloader) partition-size:mdtp_b: 0x2000000
(bootloader) partition-type:mdtpsecapp_b:raw
(bootloader) partition-size:mdtpsecapp_b: 0x400000
(bootloader) partition-type:bluetooth_b:raw
(bootloader) partition-size:bluetooth_b: 0x200000
(bootloader) partition-type:modem_b:raw
(bootloader) partition-size:modem_b: 0xC300000
(bootloader) partition-type:hyp_b:raw
(bootloader) partition-size:hyp_b: 0x80000
(bootloader) partition-type:multiimgoem_b:raw
(bootloader) partition-size:multiimgoem_b: 0x8000
(bootloader) partition-type:tz_b:raw
(bootloader) partition-size:tz_b: 0x400000
(bootloader) partition-type:aop_b:raw
(bootloader) partition-size:aop_b: 0x80000
(bootloader) partition-type:questdatafv:raw
(bootloader) partition-size:questdatafv: 0x1000000
(bootloader) partition-type:fsgbk_a:raw
(bootloader) partition-size:fsgbk_a: 0x280000
(bootloader) partition-type:featenabler_a:raw
(bootloader) partition-size:featenabler_a: 0x20000
(bootloader) partition-type:core_nhlos_a:raw
(bootloader) partition-size:core_nhlos_a: 0xAA00000
(bootloader) partition-type:uefisecapp_a:raw
(bootloader) partition-size:uefisecapp_a: 0x200000
(bootloader) partition-type:imagefv_a:raw
(bootloader) partition-size:imagefv_a: 0x200000
(bootloader) partition-type:dtbo_a:raw
(bootloader) partition-size:dtbo_a: 0x1800000
(bootloader) partition-type:vbmeta_a:raw
(bootloader) partition-size:vbmeta_a: 0x10000
(bootloader) partition-type:vbmeta_system_a:raw
(bootloader) partition-size:vbmeta_system_a: 0x10000
(bootloader) partition-type:recovery_a:raw
(bootloader) partition-size:recovery_a: 0x6000000
(bootloader) partition-type:qupfw_a:raw
(bootloader) partition-size:qupfw_a: 0x14000
(bootloader) partition-type:devcfg_a:raw
(bootloader) partition-size:devcfg_a: 0x20000
(bootloader) partition-type:boot_a:raw
(bootloader) partition-size:boot_a: 0x6000000
(bootloader) partition-type:keymaster_a:raw
(bootloader) partition-size:keymaster_a: 0x80000
(bootloader) partition-type:dsp_a:raw
(bootloader) partition-size:dsp_a: 0x4000000
(bootloader) partition-type:abl_a:raw
(bootloader) partition-size:abl_a: 0x100000
(bootloader) partition-type:mdtp_a:raw
(bootloader) partition-size:mdtp_a: 0x2000000
(bootloader) partition-type:mdtpsecapp_a:raw
(bootloader) partition-size:mdtpsecapp_a: 0x400000
(bootloader) partition-type:bluetooth_a:raw
(bootloader) partition-size:bluetooth_a: 0x200000
(bootloader) partition-type:modem_a:raw
(bootloader) partition-size:modem_a: 0xC300000
(bootloader) partition-type:hyp_a:raw
(bootloader) partition-size:hyp_a: 0x80000
(bootloader) partition-type:multiimgoem_a:raw
(bootloader) partition-size:multiimgoem_a: 0x8000
(bootloader) partition-type:tz_a:raw
(bootloader) partition-size:tz_a: 0x400000
(bootloader) partition-type:aop_a:raw
(bootloader) partition-size:aop_a: 0x80000
(bootloader) partition-type:ALIGN_TO_128K_4:raw
(bootloader) partition-size:ALIGN_TO_128K_4: 0x1A000
(bootloader) partition-type:ddr:raw
(bootloader) partition-size:ddr: 0x100000
(bootloader) partition-type:cdt:raw
(bootloader) partition-size:cdt: 0x20000
(bootloader) partition-type:ALIGN_TO_128K_1:raw
(bootloader) partition-size:ALIGN_TO_128K_1: 0x1A000
(bootloader) partition-type:xbl_config_b:raw
(bootloader) partition-size:xbl_config_b: 0x20000
(bootloader) partition-type:xbl_b:raw
(bootloader) partition-size:xbl_b: 0x380000
(bootloader) partition-type:xbl_config_a:raw
(bootloader) partition-size:xbl_config_a: 0x20000
(bootloader) partition-type:xbl_a:raw
(bootloader) partition-size:xbl_a: 0x380000
(bootloader) partition-type:userdata:ext4
(bootloader) partition-size:userdata: 0x377E72E000
(bootloader) partition-type:super:raw
(bootloader) partition-size:super: 0x180000000
(bootloader) partition-type:rawdump:raw
(bootloader) partition-size:rawdump: 0x20CCCD000
(bootloader) partition-type:oempersist:raw
(bootloader) partition-size:oempersist: 0xC800000
(bootloader) partition-type:metadata:raw
(bootloader) partition-size:metadata: 0x1DE0000
(bootloader) partition-type:frp:raw
(bootloader) partition-size:frp: 0x80000
(bootloader) partition-type:keystore:raw
(bootloader) partition-size:keystore: 0x80000
(bootloader) partition-type:misc:raw
(bootloader) partition-size:misc: 0x100000
(bootloader) partition-type:persist:raw
(bootloader) partition-size:persist: 0x2000000
(bootloader) partition-type:ssd:raw
(bootloader) partition-size:ssd: 0x2000
(bootloader) partition-type:ALIGN_TO_128K_3:raw
(bootloader) partition-size:ALIGN_TO_128K_3: 0x18000
(bootloader) has-slot:modem:yes
(bootloader) has-slot:system:no
(bootloader) current-slot:a
(bootloader) has-slot:boot:yes
(bootloader) slot-retry-count:b:7
(bootloader) slot-unbootable:b:no
(bootloader) slot-successful:b:no
(bootloader) slot-retry-count:a:6
(bootloader) slot-unbootable:a:yes
(bootloader) slot-successful:a:yes
(bootloader) slot-count:2
(bootloader) secure:yes
(bootloader) serialno:3fdf6edb
(bootloader) product:FP4
(bootloader) snapshot-update-status:none
(bootloader) is-userspace:no
(bootloader) max-download-size:805306368
(bootloader) kernel:uefi

Is there a way besides sending it to the repair center?

Thanks in Advance :upside_down_face:

Unfortunately no other (better) way has come up here on the forum up to now…


@friede Can you share the filename of the zip you used for flashing? Did you pull the latest one from the support article?


Sorry @friede but now it’s time to send it back

I’m kinda sad. I wasn’t able to send my FP4 back until now, I rarely got a response on Apr 22 that I was able to send it back if I wanted. I replied that I indeed wanted and did not receive an answer since. I mean I get they don’t have the capacity like tech giants but I was so hyped for my FP4 and now I kinda completely forgot about it since it is already in a package waited on being shipped to the repair center… They mention a support phone number on the support site but the only number I found was the one in the impressum here Impressum - Fairphone is that the correct one to call? Just to make sure they didn’t forget about my request?

I think the number is mentioned here #contactsupport


I submitted my support ticket on friday night and did get an answer this afternoon. Currently I’m waiting for the shipping labels and instructions.
They acknowledged my situation:

Our Software team has identified the root cause of this issue. We now provide an updated package for manual installation which addresses this cause.

The problem is, this is the exact version that I was using. The checksum of the .zip-file I downloaded is identical to the the one in the article…

Perhabs somebody of you can tell me what I could’ve done wrong:
I installed calyxos several times because everytime that I locked flashing I got the Message that my device is corrupted. After that I unlocked it and installed it again.
I tried this several times until I just let it be open.

After reinstalling FPOS I did the same thing with the only difference, that i wasn’t able to unlock flashing again.

Additional information:
For the installation of calyx I unlocked only flashing.
After the first try of installing FPOS again the script failed because critical was locked, so I unlocked it and tried again. After installing and booting into the configuration wizard, I locked critical and flashing again. After doing that it prompted the message again that my device is corrupted and won’t boot.


As from my understanding the root cause is that. If you flash back the FPOS it does have a bug. That the Switch under Developer Options for “OEM Unlocking” is greyed out and turned off. So unlocking is not allowed. But you cannot turn it on as well. If you then go ahead and lock the bootloader you’re stuck in the loop. I still did not get an answer and everytime I call it says no agent is available right now… But nice that you received a response that fast!


BTW the german number there leads to nowhere, when I call there it just hangs up immediately. I tried to call the Netherlands one several times, where no agents where available unfortunately. Thanks a lot though :slight_smile:

I have to ask: Did you submit a official ticket?
I did get an answer within 2 business days.

Yes. Via the official zendesk tool.

Expect using the (not that easy) workaround mentioned further above:


Yeah, I fell into this trap as well.
Trying to revert back to FpOS using FP4. Install Fairphone OS offline after attempting installing /e/os.
I’m have a feeling the issue was using a built image of /e/os that didn’t match the current security patch level
I updated the phone earlier today to “FP3V.A.116.20220414” (released April 25, 2022) before trying to flash “IMG-e-0.23-r-20220413178020”.
Trying to lock the bootloader as instructed gave me a corrupted OS message as mentioned throughout this post, but it didn’t reset my unlock ability to 0.

However, following Fairphones own guide FP4. Install Fairphone OS offline and locking the bootloader “corrupted” the OS and set my unlock to 0.
Can I somehow see what version is used in that “factory reset Fairphone OS” kit that you download through the link above? I have a gut feeling it’s not up to date to the current security patch level

Welcome to the community :wave:

The latest factory images are based on the A.107 release, so the one before the current version (A.116).

Yeah, you reckon that could of been the problem? :thinking:

It really is on me at the end of the day for attempting something I knew little about (after all, it’s on your own risk), but I think it would be a good idea to really emphasise the importance of finding out the correct versions in all relevant documents.
The documentation with important version numbers gets outdated pretty quickly, so next time I’ll make sure not to rely on those and try to double-check everything myself :thinking:

Hoping to get this restored by sending it off to support like the people further up in the thread did, but if this happens often enough I think it should be in everyone’s interest to make these steps a bit more “fool-proof”.