Trapped in fastboot mode with locked bootloader and corrupted custom ROM

The gods were with me: Re-locking the bootloader worked – I am running CalyxOS now with locked bootloader :slight_smile:

For the record after re-enabling the OEM unlock toggle and OEM unlocking like described, I did:

  • boot into fastboot mdoe
  • fastboot flashing lock_critical
  • rebooting into Calyx, reenabling USB debugging and granting connected PC adb rights
  • rebooting into fastboot mode
  • fastboot flashing lock
  • rebooting into CalyxOS

I am very happy this worked, thank you!

5 Likes

:tada: :tada: :tada:

I’m really glad this worked :metal:

Not gonna lie, I was really nervous about this as well!

3 Likes

Congratulations!

For the record: what is the state of the OEM-toggle and fastboot flashing get_unlock_ability now that you have locked the bootloader?

2 Likes

Without having changed anything, OEM toggle is now “OFF”, but not grayed-out anymore (can be toggled). Don’t know about the state of get_unlock_ability yet, will check ASAP, but I assume it is 0 now.

2 Likes

Not greyed out is to be expected, but “OFF”, hmm… :thinking:
I don’t like that it keeps resetting. We really need to know at which point this happens, if it got reset when locking the bootloader again this could have still bricked the phone.

Edit: Ok, after some digging, turns out the devinfo partition that gets flashed with the updated script stores that kind of information and the answer was in this forum all along :man_facepalming:

Now we need to figure out why it doesn’t get saved :thinking:

Just had a look and indeed get_unlock_ability was set to 0 (setting OEM unlock to “OFF”) after issuing fastboot flashing lock (was not the case after fastboot flashing lock_critical).

Yes. At least in my case, in summary the state of OEM unlock was affected at two occasions:

  • after flashing: OEM unlock went from “ON” to “OFF” (get_unlock_ability from 1 to 0) and OEM unlock toggle disabled (grayed out)
  • after bootloader locking (fastboot flashing lock): OEM unlock went from “ON” to “OFF”, but remained active (i.e. can be toggled)
2 Likes

Whopsie, that’s a problem, it should be ${FASTBOOT_BIN} --set-active=a.
I’ll fix that for the next release.

You are correct :wink:

3 Likes

As suggested I contacted the support and was able to send the Fairphone to a repair shop.
The cost was 30€.
After 2-3 weeks I got it back and it was restored to its factory default state.

5 Likes

For completeness (didn’t have access to my FP4 earlier): mine looks like this (from Stock to CalyxOS, bootloader locked):

OEM-Entsperrung

And

get_unlock_ability is 0

2 Likes

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:

3 Likes

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

3 Likes

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:

2 Likes

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:

10 Likes

Hi,

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…

3 Likes

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

5 Likes

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

3 Likes