Hi everyone,
My apologies if this topic has already been covered before. I looked around this forum as well as the Fairphone forums to get some guidance and found some answers, but I still had a few questions that I hope the community here might be able to help me with.
I bought a Fairphone 6 last week with Android preinstalled and immediately set out to install /e/OS. This was the first time I have installed a custom OS on a phone, and unfortunately I managed to hard-brick the phone.
I followed the guide Install /e/OS on a Fairphone The Fairphone (Gen. 6) - “FP6” and here is a quick summary of my environment and the steps I carried out.
Environment:
Windows 11 Laptop
Steps:
-
Installed Android SDK Platform-Tools to get adb and fastboot.
-
Added Platform Tools folder to my system PATH for easier access to adb and fastboot commands.
-
Installed Google USB Drivers and Universal ADB Drivers from clockworkmod’s website.
-
This might’ve been overkill but I had some initial issues with adb not finding my device so this was part of my solution.
-
Ran initial setup of FP6 and updated to latest Android version with Security patch: 2025-06-05.
-
Enabled
Developer options
on FP6. -
Enabled
OEM unlock
on FP6 with Bootloader Unlock code generated from Fairphone website. -
Enabled
USB debugging
on FP6. -
Set
Default USB configuration
toFile transfer
. -
Downloaded
/e/OS build : A15 official (Security patch: 2025-06-05)
, specificallyIMG-e-3.0.4-a15-20250708507307-official-FP6.zip
from link in the FP6 Installation Guide. -
Followed all steps in
Install /e/OS on a Fairphone The Fairphone (Gen. 6) - “FP6”
under sectionUnlocking the bootloader
. -
Everything seemed fine here, no obvious problems or errors encountered.
-
Unzipped the downloaded build archive and confirmed that the extracted dir contained the listed directories and files (steps 1 & 2 in
Install /e/OS on a Fairphone The Fairphone (Gen. 6) - “FP6”
under sectionInstalling /e/OS
) -
Booted phone into bootloader/fastboot mode and ran installer script in Windows 11 Git Bash CLI (MinGW).
Installation log:
$ ./flash_FP6_factory.sh
INFO: You are using MinGW on Windows.
INFO: Looking for connected device(s)...
INFO: One Fairphone 6 in fastboot mode found (serial number: <serial>).
Info: Your phone is in regular bootloader mode.
Sending 'bluetooth_a' (812 KB) OKAY [ 0.041s]
Writing 'bluetooth_a' OKAY [ 0.002s]
Finished. Total time: 0.061s
Sending 'bluetooth_b' (812 KB) OKAY [ 0.047s]
Writing 'bluetooth_b' OKAY [ 0.002s]
Finished. Total time: 0.066s
Click for full log
Sending 'devcfg_a' (47 KB) OKAY [ 0.004s]
Writing 'devcfg_a' OKAY [ 0.001s]
Finished. Total time: 0.023s
Sending 'devcfg_b' (47 KB) OKAY [ 0.003s]
Writing 'devcfg_b' OKAY [ 0.002s]
Finished. Total time: 0.021s
Sending 'dsp_a' (65536 KB) OKAY [ 4.200s]
Writing 'dsp_a' OKAY [ 0.031s]
Finished. Total time: 4.246s
Sending 'dsp_b' (65536 KB) OKAY [ 3.630s]
Writing 'dsp_b' OKAY [ 0.032s]
Finished. Total time: 3.677s
Sending 'modem_a' (180876 KB) OKAY [ 8.441s]
Writing 'modem_a' OKAY [ 0.090s]
Finished. Total time: 8.547s
Sending 'modem_b' (180876 KB) OKAY [ 13.088s]
Writing 'modem_b' OKAY [ 0.097s]
Finished. Total time: 13.202s
Sending 'xbl_a' (1138 KB) OKAY [ 0.361s]
Writing 'xbl_a' OKAY [ 0.008s]
Finished. Total time: 0.387s
Sending 'xbl_b' (1138 KB) OKAY [ 0.215s]
Writing 'xbl_b' OKAY [ 0.009s]
Finished. Total time: 0.240s
Sending 'tz_a' (3932 KB) OKAY [ 0.566s]
Writing 'tz_a' OKAY [ 0.003s]
Finished. Total time: 0.585s
Sending 'tz_b' (3932 KB) OKAY [ 0.915s]
Writing 'tz_b' OKAY [ 0.003s]
Finished. Total time: 0.934s
Sending 'hyp_a' (1642 KB) OKAY [ 0.104s]
Writing 'hyp_a' OKAY [ 0.002s]
Finished. Total time: 0.125s
Sending 'hyp_b' (1642 KB) OKAY [ 0.126s]
Writing 'hyp_b' OKAY [ 0.002s]
Finished. Total time: 0.144s
Sending 'keymaster_a' (430 KB) OKAY [ 0.317s]
Writing 'keymaster_a' OKAY [ 0.002s]
Finished. Total time: 0.336s
Sending 'keymaster_b' (430 KB) OKAY [ 0.236s]
Writing 'keymaster_b' OKAY [ 0.002s]
Finished. Total time: 0.253s
Sending 'abl_a' (239 KB) OKAY [ 0.007s]
Writing 'abl_a' OKAY [ 0.002s]
Finished. Total time: 0.032s
Sending 'abl_b' (239 KB) OKAY [ 0.007s]
Writing 'abl_b' OKAY [ 0.001s]
Finished. Total time: 0.025s
Sending 'aop_a' (311 KB) OKAY [ 0.034s]
Writing 'aop_a' OKAY [ 0.002s]
Finished. Total time: 0.051s
Sending 'aop_b' (311 KB) OKAY [ 0.137s]
Writing 'aop_b' OKAY [ 0.001s]
Finished. Total time: 0.157s
Sending 'featenabler_a' (102 KB) OKAY [ 0.008s]
Writing 'featenabler_a' OKAY [ 0.001s]
Finished. Total time: 0.027s
Sending 'featenabler_b' (102 KB) OKAY [ 0.027s]
Writing 'featenabler_b' OKAY [ 0.001s]
Finished. Total time: 0.045s
Sending 'imagefv_a' (51 KB) OKAY [ 0.008s]
Writing 'imagefv_a' OKAY [ 0.002s]
Finished. Total time: 0.027s
Sending 'imagefv_b' (51 KB) OKAY [ 0.005s]
Writing 'imagefv_b' OKAY [ 0.002s]
Finished. Total time: 0.025s
Sending 'multiimgoem_a' (11 KB) OKAY [ 0.001s]
Writing 'multiimgoem_a' OKAY [ 0.005s]
Finished. Total time: 0.024s
Sending 'multiimgoem_b' (11 KB) OKAY [ 0.002s]
Writing 'multiimgoem_b' OKAY [ 0.005s]
Finished. Total time: 0.023s
Sending 'qupfw_a' (59 KB) OKAY [ 0.005s]
Writing 'qupfw_a' OKAY [ 0.001s]
Finished. Total time: 0.023s
Sending 'qupfw_b' (59 KB) OKAY [ 0.006s]
Writing 'qupfw_b' OKAY [ 0.002s]
Finished. Total time: 0.025s
Sending 'uefisecapp_a' (192 KB) OKAY [ 0.011s]
Writing 'uefisecapp_a' OKAY [ 0.002s]
Finished. Total time: 0.030s
Sending 'uefisecapp_b' (192 KB) OKAY [ 0.012s]
Writing 'uefisecapp_b' OKAY [ 0.001s]
Finished. Total time: 0.031s
Sending 'xbl_config_a' (300 KB) OKAY [ 0.022s]
Writing 'xbl_config_a' OKAY [ 0.006s]
Finished. Total time: 0.045s
Sending 'xbl_config_b' (300 KB) OKAY [ 0.019s]
Writing 'xbl_config_b' OKAY [ 0.005s]
Finished. Total time: 0.041s
Sending 'aop_config_a' (19 KB) OKAY [ 0.002s]
Writing 'aop_config_a' OKAY [ 0.001s]
Finished. Total time: 0.021s
Sending 'aop_config_b' (19 KB) OKAY [ 0.002s]
Writing 'aop_config_b' OKAY [ 0.002s]
Finished. Total time: 0.021s
Sending 'cpucp_dtb_a' (11 KB) OKAY [ 0.001s]
Writing 'cpucp_dtb_a' OKAY [ 0.001s]
Finished. Total time: 0.020s
Sending 'cpucp_dtb_b' (11 KB) OKAY [ 0.002s]
Writing 'cpucp_dtb_b' OKAY [ 0.002s]
Finished. Total time: 0.020s
Sending 'uefi_a' (2835 KB) OKAY [ 0.110s]
Writing 'uefi_a' OKAY [ 0.003s]
Finished. Total time: 0.129s
Sending 'uefi_b' (2835 KB) OKAY [ 0.084s]
Writing 'uefi_b' OKAY [ 0.003s]
Finished. Total time: 0.104s
Sending 'vm-bootsys_a' (502200 KB) OKAY [ 22.678s]
Writing 'vm-bootsys_a' OKAY [ 0.250s]
Finished. Total time: 22.954s
Sending 'vm-bootsys_b' (502200 KB) FAILED (Write to device failed in SendBuffer() (no link))
fastboot: error: Command failed
ERROR: Could not flash the vm-bootsys_b partition on device c006dc30.
ERROR: Please unplug the phone, take the battery out, boot the device into
ERROR: fastboot mode, and start this script again.
ERROR: (To get to fastboot mode, press Volume-Down and plug in the USB-C)
ERROR: (cable until the fastboot menu appears.)
ERROR: Aborting now (press Enter to terminate).
Now I am not sure if the problem was caused by a bad laptop USB port, a bad cable, MinGW messing up or my USB port or that I didn’t disable USB power-saving settings in Windows Device Manager, or anything else. In any case, I didn’t have any screwdrivers available at this point to open up the back and disconnect the battery as the script output suggested. Instead, I unplugged the cable, turned off the phone and tried booting it up again to try restarting the script. This is where the real problem started where the phone would not boot up no matter what button or button + cable combination I tried. After plugging the phone into the PC I noticed the phone’s name in the Device manager was QUSB_BULK_CID:<cid>_SN:<sn>
, which I understood to mean that the phone was in EDL mode and would not boot into Fastboot mode anymore, and you would need a Firehose file to restore the phone. I sent the phone to the FP service center to get it fixed and just got it back, and now I am considering trying to install /e/OS a second time (I am very stupid and persistent).
Avoiding hard-bricking:
I just wanted to get your feedback and summarize some steps and measures I can make to reduce the risk of hard-bricking the phone again. These are the steps I have written down for myself.
-
Use a new, short cable (I bought the USB-C 3.2 Long Life Charging & Data (20Gb/s) Cable 1m from Fairphone which I intend to use).
-
Don’t touch the phone or cable at all during installation.
-
Run installation on Linux instead of Windows (I understood that this is more reliable/stable?)
-
Disable USB power-saving settings on PC
-
Use a USB 2.0 port on PC (I think 2.0 ports are more reliable?)
Is there any measure/tip I have missed here that can be helpful?
Q1:
I also have a question with regards to the installation script’s console output tip to unplug phone, remove battery, boot device and restart script. Can this actually work if the installation is interrupted for some reason, as it was when I tried? What’s the difference between removing the battery and just powering off the device in this situation? And also just to recap the tip, I am supposed to:
-
Unplug phone
-
Remove battery
-
Put battery back in
-
Press Volume-Down and plug cable back in at the same time
-
Restart script