Fastboot on FP4

With the FP3 I could boot the phone into fastboot mode with the following adb command: adb reboot bootloader

I could then run: fastboot devices and the device would be listed

Not so much with the FP4. fastboot devices just hangs. I use fastboot version 31.0.3-7562133.

It is also not visible to fastboot devices, when I switch the device off by removing the battery. And then hold the volume down button while connecting the USB-C cable to turn it on.

When I go to “recovery mode → enter fastboot”, the device shows up in fastboot devices.
But when I try to flash the factory images, I get an error:
FAILED (remote: ‘Download is not allowed on locked devices’)

Questions:

  1. Why is fastboot now behind recovery? (Or do I need a newer version of fastboot?)
  2. What if my recovery is broken or replaced by a version that doesn’t support “enter fastboot”? How do I get to the fastboot/bootloader (to flash a new recovery)?
  3. Why do I need to unlock the boot loader to flash THE OFFICIAL FAIRPHONE FACTORY IMAGES? Shouldn’t they have the correct signature?
  4. If I lock my phone’s bootloader after flashing the original factory images, will I brick my phone (as others have reported)?

Strange. In my case fastboot devices also works after using the other two ways to start Fastboot. Only difference is that my bootloader is already unlocked. This might cause the different behaviour.

Without unlocking the bootloader you’re imho not allowed to flash anything. That’s unrelated to the fact if there’s a correct signature.

Don’t think it happens when flashing system worked correctly. You might boot the system and check before relocking.

To be expected as your bootloader is locked.

More information can be found e.g. here:
https://support.fairphone.com/hc/en-us/articles/4405858258961

4 Likes

So I followed the instructions on https://support.fairphone.com/hc/en-us/articles/4405858258961 to unlock the boot loader.

I was unable to complete Part 2.

Running fastboot flashing unlock gave the following result:

$ fastboot flashing unlock
FAILED (remote: ‘Unrecognized command flashing unlock’)
fastboot: error: Command failed

Looks like my bootloader is still not acccepting fastboot commands. And the one I accessed from recovery doesn’t support unlocking :frowning:

I also tried OEM unlock, which gave the following result:

$ fastboot oem unlock
FAILED (remote: ‘Command not supported in default implementation’)
fastboot: error: Command failed

Is my phone broken, since it doesn’t go into the default bootloader / fastboot mode? Or is there anything I can do to fix the fastboot mode? Maybe a factory reset?

What operating system are you running on your PC?

macOS Monterey 12.0.1.

Meanwhile I also upgraded fastboot to version 33.0.0-8141338 (latest provided by Google)

fastboot runs fine with my FP3. So I doubt its a problem with macOS.

Did you allow unlocking in the developer options of your phone?

I enabled OEM unlocking and USB debugging in the Developer Settings.

I am not sure my main problem is related to OEM unlocking. Shouldn’t fastboot devices also work on locked devices?

When I have both devices (FP3 & FP4) connected to my Mac and in fastboot mode (via adb reboot bootloader) then fastboot doesn’t hang, but it only shows the FP3.

Did you try ./fastboot… As indicated on the Support page when failing with MacOS?

- IMPORTANT -
If this doesn't work on your macOS, try typing: ./fastboot flashing unlock and press the "Enter ↩" key.

I hadn’t before. But I just did. Same behaviour:

$ cd $ANDROID_HOME/platform-tools/
$ ./fastboot devices

and

$ ./fastboot flashing unlock

both hang as well and don’t show any error.

Just to be clear adb reboot bootloader works for you as you said and the device shows up under adb devices? :thinking:
So we are specifically only talking about fastboot here every other USB related functionality, like MTP data transfer and so on works with your FP4?

1 Like

adb devices works as expected. And adb reboot bootloader seems to bring the device into fastboot mode. Except fastboot devices doesn’t list it.

On screen it looks similar to the FP3. Also the menu navigation looks similar. (Start/Restart Bootloader/Recovery mode/Power off/Boot to FFBM/Boot to QMMI)

I haven’t tried MTP data transfer. I only use adb and fastboot regularly.

I verified my system booted before locking the bootloader, but it still bricked, so there is definitely something weird going on. I’m sending my device in and hopefully Fairphone will be able to shed some light on the situation.

3 Likes

I found a way to make fastboot devices list my device after going to the bootloader via adb reboot bootloader. It works with my old Notebook (Intel macOS Big Sur).

Not sure whether it is the Intel chip (versus Apple Silicon M1 Max) or Monterey vs. Big Sur.

Since I want/need to use fastboot, I will not upgrade my Intel MacBook to Monterey anytime soon.

Who do I report this problem to? Fairphone? Google? Is this a bug in fastboot for Apple silicone or a bug in the Fairphone 4?

Just to be clear. This problem does not occur with any of my other phones. So far I tried:

  • FP3+
  • Pixel 3a
1 Like

But even after unlocking, I am unable to flash FP4.FP3R.A.099.20220112_factory with the embedded script called flash_fp4_factory.command.

The error is:

Sending ‘abl_a’ (148 KB) OKAY [ 0.008s]
Writing ‘abl_a’ FAILED (remote: ‘Flashing is not allowed for Critical Partitions’)
fastboot: error: Command failed

When I skip abl_a, it fails with the same error on abl_b.

Looks like the following partitions could be flashed:

Sending ‘dtbo_a’ (8192 KB) OKAY [ 0.179s]
Writing ‘dtbo_a’ OKAY [ 0.019s]
Finished. Total time: 0.206s
Sending ‘dtbo_b’ (8192 KB) OKAY [ 0.180s]
Writing ‘dtbo_b’ OKAY [ 0.019s]
Finished. Total time: 0.205s
Sending ‘recovery_a’ (98304 KB) OKAY [ 2.105s]
Writing ‘recovery_a’ OKAY [ 0.254s]
Finished. Total time: 2.367s
Sending ‘recovery_b’ (98304 KB) OKAY [ 2.103s]
Writing ‘recovery_b’ OKAY [ 0.231s]
Finished. Total time: 2.342s
Sending ‘vbmeta_system_a’ (4 KB) OKAY [ 0.004s]
Writing ‘vbmeta_system_a’ OKAY [ 0.001s]
Finished. Total time: 0.015s
Sending ‘vbmeta_system_b’ (4 KB) OKAY [ 0.008s]
Writing ‘vbmeta_system_b’ OKAY [ 0.001s]
Finished. Total time: 0.017s
INFO: Deleting user data
Sending ‘userdata’ (4096 KB) OKAY [ 0.089s]
Writing ‘userdata’ OKAY [ 0.014s]
Finished. Total time: 0.111s
Sending ‘metadata’ (44 KB) OKAY [ 0.008s]
Writing ‘metadata’ OKAY [ 0.001s]
Finished. Total time: 0.019s

Why does this script contain flash commands, that “are not allowed”? What is the correct list of images to flash? And what is the correct partition layout in case I accidentally repartion the flash.

After flashing these partitions my phone doesn’t boot anymore :frowning:

Apparently the flashing seems to work when using fastbootd in bootloader -> Recovery -> enter fastboot. Phone is still boot looping. :frowning:

The error was for frp:

Erasing ‘frp’ FAILED (remote: ‘Partition doesn’t exist’)
fastboot: error: Command failed

After disabling the removal of frp. It fails for misc:

Erasing ‘misc’ FAILED (remote: ‘Erasing failed’)
fastboot: error: Command failed

Next error:

INFO: Erasing some partitions
Erasing ‘modemst1’ FAILED (remote: ‘Partition doesn’t exist’)
fastboot: error: Command failed

I think you didn’t follow the instructions. Or did you also type in fastboot flashing unlock_critical?

2 Likes

That certainly helped. The script now completed successfully and rebooted my phone. Unfortunately the boot loop persisted.

Setting the boot partition to a helped:

fastboot --set-active=a

Now my phone seems to be in the same condition as when I initially received it. Except for the unlocked bootloader. Many thanks to: @Volker, @yvmuell @hirnsushi

3 Likes