A safe guide to install /e/OS on your Fairphone

Installation réussie avec Windows et FP3 alors que l’installeur posait des problèmes.

Merci beaucoup.

1 Like

Thank you very much for this guide! The browser-based installer from e/OS/ did not work and with your guide I came a lot further.

Nevertheless… I fear I bricked my new Fairphone 5, after the successful installation of e/OS/, while trying to re-lock the bootloader: ./fastboot flashing lock_critical worked as described, but after the ./fastboot flashing lock the device said it’s unsafe and only boots to the bootloader and nowhere else. Here is a log of my fastboot commands on Windows:

fastboot commands on Windows

me@myPC MINGW64 /c/adb/platform-tools
$ ./fastboot devices
<SERIAL>         fastboot

me@myPC MINGW64 /c/adb/platform-tools
$ ./fastboot oem device-info
(bootloader) Verity mode: true
(bootloader) Device unlocked: true
(bootloader) Device critical unlocked: true
(bootloader) Charger screen enabled: true
OKAY [  0.001s]
Finished. Total time: 0.006s

me@myPC MINGW64 /c/adb/platform-tools
$ ./fastboot flashing get_unlock_ability
(bootloader) get_unlock_ability: 1
OKAY [  0.000s]
Finished. Total time: 0.000s

me@myPC MINGW64 /c/adb/platform-tools
$ cd _fp5

me@myPC MINGW64 /c/adb/platform-tools/_fp5
$ ls -la
total 4719109
drwxr-xr-x 1 <USERNAME> 197121          0 Mar 10 12:07 ./
drwxr-xr-x 1 <USERNAME> 197121          0 Mar 10 12:07 ../
-rw-r--r-- 1 <USERNAME> 197121     155648 Feb 11 18:05 abl.img
-rw-r--r-- 1 <USERNAME> 197121     208804 Feb 11 18:05 aop.img
drwxr-xr-x 1 <USERNAME> 197121          0 Feb 11 18:05 bin-darwin/
drwxr-xr-x 1 <USERNAME> 197121          0 Feb 11 18:05 bin-linux-x86/
drwxr-xr-x 1 <USERNAME> 197121          0 Feb 11 18:05 bin-msys/
-rw-r--r-- 1 <USERNAME> 197121    3518464 Feb 11 18:05 bluetooth.img
-rw-r--r-- 1 <USERNAME> 197121  100663296 Feb 11 18:05 boot.img
-rw-r--r-- 1 <USERNAME> 197121     186628 Feb 11 18:05 cpucp.img
-rw-r--r-- 1 <USERNAME> 197121      54200 Feb 11 18:05 devcfg.img
-rw-r--r-- 1 <USERNAME> 197121   67108864 Feb 11 18:05 dsp.img
-rw-r--r-- 1 <USERNAME> 197121   25165824 Feb 11 18:05 dtbo.img
-rwxr-xr-x 1 <USERNAME> 197121       9475 Feb 11 18:05 factory.common*
-rw-r--r-- 1 <USERNAME> 197121      86480 Feb 11 18:05 featenabler.img
-rwxr-xr-x 1 <USERNAME> 197121        500 Feb 11 18:05 flash_FP5_factory.sh*
-rw-r--r-- 1 <USERNAME> 197121    3699872 Feb 11 18:05 hyp.img
-rw-r--r-- 1 <USERNAME> 197121      65536 Feb 11 18:05 imagefv.img
-rw-r--r-- 1 <USERNAME> 197121     271789 Feb 11 18:05 keymaster.img
-rw-r--r-- 1 <USERNAME> 197121  190541824 Feb 11 18:05 modem.img
-rw-r--r-- 1 <USERNAME> 197121      13400 Feb 11 18:05 multiimgoem.img
-rw-r--r-- 1 <USERNAME> 197121      57269 Feb 11 18:05 qupfw.img
-rw-r--r-- 1 <USERNAME> 197121      45616 Feb 11 18:05 shrm.img
-rw-r--r-- 1 <USERNAME> 197121     245760 Feb 11 18:05 studybk.img
-rw-r--r-- 1 <USERNAME> 197121 4331714164 Feb 11 18:05 super.img
-rw-r--r-- 1 <USERNAME> 197121    3777848 Feb 11 18:05 tz.img
-rw-r--r-- 1 <USERNAME> 197121     125201 Feb 11 18:05 uefisecapp.img
-rw-r--r-- 1 <USERNAME> 197121       8192 Feb 11 18:05 vbmeta.img
-rw-r--r-- 1 <USERNAME> 197121       4096 Feb 11 18:05 vbmeta_system.img
-rw-r--r-- 1 <USERNAME> 197121  100663296 Feb 11 18:05 vendor_boot.img
-rw-r--r-- 1 <USERNAME> 197121    3688576 Feb 11 18:05 xbl.img
-rw-r--r-- 1 <USERNAME> 197121     225496 Feb 11 18:05 xbl_config.img

me@myPC MINGW64 /c/adb/platform-tools/_fp5
$ ./flash_FP5_factory.sh
INFO: You are using MinGW on Windows.
INFO: Looking for connected device(s)...
INFO: One Fairphone 5 in fastboot mode found (serial number: <SERIAL>).
Info: Your phone is in regular bootloader mode.
Sending 'bluetooth_a' (3436 KB)                    OKAY [  0.079s]
Writing 'bluetooth_a'                              OKAY [  0.000s]
Finished. Total time: 0.095s
Sending 'bluetooth_b' (3436 KB)                    OKAY [  0.079s]
Writing 'bluetooth_b'                              OKAY [  0.047s]
Finished. Total time: 0.126s
Sending 'devcfg_a' (52 KB)                         OKAY [  0.000s]
Writing 'devcfg_a'                                 OKAY [  0.016s]
Finished. Total time: 0.016s
Sending 'devcfg_b' (52 KB)                         OKAY [  0.000s]
Writing 'devcfg_b'                                 OKAY [  0.016s]
Finished. Total time: 0.016s
Sending 'dsp_a' (65536 KB)                         OKAY [  1.592s]
Writing 'dsp_a'                                    OKAY [  0.173s]
Finished. Total time: 1.765s
Sending 'dsp_b' (65536 KB)                         OKAY [  1.593s]
Writing 'dsp_b'                                    OKAY [  0.094s]
Finished. Total time: 1.687s
Sending 'modem_a' (186076 KB)                      OKAY [  4.549s]
Writing 'modem_a'                                  OKAY [  0.614s]
Finished. Total time: 5.163s
Sending 'modem_b' (186076 KB)                      OKAY [  4.550s]
Writing 'modem_b'                                  OKAY [  0.630s]
Finished. Total time: 5.180s
Sending 'xbl_a' (3602 KB)                          OKAY [  0.086s]
Writing 'xbl_a'                                    OKAY [  0.016s]
Finished. Total time: 0.111s
Sending 'xbl_b' (3602 KB)                          OKAY [  0.095s]
Writing 'xbl_b'                                    OKAY [  0.015s]
Finished. Total time: 0.110s
Sending 'tz_a' (3689 KB)                           OKAY [  0.094s]
Writing 'tz_a'                                     OKAY [  0.015s]
Finished. Total time: 0.110s
Sending 'tz_b' (3689 KB)                           OKAY [  0.094s]
Writing 'tz_b'                                     OKAY [  0.016s]
Finished. Total time: 0.110s
Sending 'hyp_a' (3613 KB)                          OKAY [  0.095s]
Writing 'hyp_a'                                    OKAY [  0.032s]
Finished. Total time: 0.126s
Sending 'hyp_b' (3613 KB)                          OKAY [  0.094s]
Writing 'hyp_b'                                    OKAY [  0.032s]
Finished. Total time: 0.126s
Sending 'keymaster_a' (265 KB)                     OKAY [  0.000s]
Writing 'keymaster_a'                              OKAY [  0.000s]
Finished. Total time: 0.016s
Sending 'keymaster_b' (265 KB)                     OKAY [  0.017s]
Writing 'keymaster_b'                              OKAY [  0.000s]
Finished. Total time: 0.017s
Sending 'abl_a' (152 KB)                           OKAY [  0.016s]
Writing 'abl_a'                                    OKAY [  0.000s]
Finished. Total time: 0.016s
Sending 'abl_b' (152 KB)                           OKAY [  0.000s]
Writing 'abl_b'                                    OKAY [  0.016s]
Finished. Total time: 0.016s
Sending 'aop_a' (203 KB)                           OKAY [  0.016s]
Writing 'aop_a'                                    OKAY [  0.000s]
Finished. Total time: 0.016s
Sending 'aop_b' (203 KB)                           OKAY [  0.000s]
Writing 'aop_b'                                    OKAY [  0.016s]
Finished. Total time: 0.016s
Sending 'featenabler_a' (84 KB)                    OKAY [  0.000s]
Writing 'featenabler_a'                            OKAY [  0.016s]
Finished. Total time: 0.016s
Sending 'featenabler_b' (84 KB)                    OKAY [  0.000s]
Writing 'featenabler_b'                            OKAY [  0.016s]
Finished. Total time: 0.016s
Sending 'imagefv_a' (64 KB)                        OKAY [  0.000s]
Writing 'imagefv_a'                                OKAY [  0.012s]
Finished. Total time: 0.016s
Sending 'imagefv_b' (64 KB)                        OKAY [  0.000s]
Writing 'imagefv_b'                                OKAY [  0.000s]
Finished. Total time: 0.016s
Sending 'multiimgoem_a' (13 KB)                    OKAY [  0.000s]
Writing 'multiimgoem_a'                            OKAY [  0.000s]
Finished. Total time: 0.000s
Sending 'multiimgoem_b' (13 KB)                    OKAY [  0.000s]
Writing 'multiimgoem_b'                            OKAY [  0.000s]
Finished. Total time: 0.000s
Sending 'qupfw_a' (55 KB)                          OKAY [  0.000s]
Writing 'qupfw_a'                                  OKAY [  0.016s]
Finished. Total time: 0.016s
Sending 'qupfw_b' (55 KB)                          OKAY [  0.000s]
Writing 'qupfw_b'                                  OKAY [  0.016s]
Finished. Total time: 0.016s
Sending 'uefisecapp_a' (122 KB)                    OKAY [  0.016s]
Writing 'uefisecapp_a'                             OKAY [  0.003s]
Finished. Total time: 0.018s
Sending 'uefisecapp_b' (122 KB)                    OKAY [  0.000s]
Writing 'uefisecapp_b'                             OKAY [  0.016s]
Finished. Total time: 0.016s
Sending 'xbl_config_a' (220 KB)                    OKAY [  0.016s]
Writing 'xbl_config_a'                             OKAY [  0.000s]
Finished. Total time: 0.016s
Sending 'xbl_config_b' (220 KB)                    OKAY [  0.016s]
Writing 'xbl_config_b'                             OKAY [  0.000s]
Finished. Total time: 0.016s
Sending 'cpucp_a' (182 KB)                         OKAY [  0.016s]
Writing 'cpucp_a'                                  OKAY [  0.000s]
Finished. Total time: 0.016s
Sending 'cpucp_b' (182 KB)                         OKAY [  0.000s]
Writing 'cpucp_b'                                  OKAY [  0.016s]
Finished. Total time: 0.016s
Sending 'shrm_a' (44 KB)                           OKAY [  0.000s]
Writing 'shrm_a'                                   OKAY [  0.000s]
Finished. Total time: 0.000s
Sending 'shrm_b' (44 KB)                           OKAY [  0.000s]
Writing 'shrm_b'                                   OKAY [  0.016s]
Finished. Total time: 0.016s
Sending 'boot_a' (98304 KB)                        OKAY [  2.394s]
Writing 'boot_a'                                   OKAY [  0.236s]
Finished. Total time: 2.630s
Sending 'boot_b' (98304 KB)                        OKAY [  2.393s]
Writing 'boot_b'                                   OKAY [  0.377s]
Finished. Total time: 2.770s
Sending 'dtbo_a' (24576 KB)                        OKAY [  0.597s]
Writing 'dtbo_a'                                   OKAY [  0.068s]
Finished. Total time: 0.665s
Sending 'dtbo_b' (24576 KB)                        OKAY [  0.601s]
Writing 'dtbo_b'                                   OKAY [  0.081s]
Finished. Total time: 0.682s
Sending 'vendor_boot_a' (98304 KB)                 OKAY [  2.352s]
Writing 'vendor_boot_a'                            OKAY [  0.260s]
Finished. Total time: 2.612s
Sending 'vendor_boot_b' (98304 KB)                 OKAY [  2.327s]
Writing 'vendor_boot_b'                            OKAY [  0.236s]
Finished. Total time: 2.562s
Sending 'vbmeta_a' (8 KB)                          OKAY [  0.000s]
Writing 'vbmeta_a'                                 OKAY [  0.000s]
Finished. Total time: 0.000s
Sending 'vbmeta_b' (8 KB)                          OKAY [  0.000s]
Writing 'vbmeta_b'                                 OKAY [  0.000s]
Finished. Total time: 0.000s
Sending 'vbmeta_system_a' (4 KB)                   OKAY [  0.000s]
Writing 'vbmeta_system_a'                          OKAY [  0.000s]
Finished. Total time: 0.000s
Sending 'vbmeta_system_b' (4 KB)                   OKAY [  0.000s]
Writing 'vbmeta_system_b'                          OKAY [  0.012s]
Finished. Total time: 0.012s
Sending sparse 'super' 1/6 (758485 KB)             OKAY [ 18.683s]
Writing 'super'                                    OKAY [  0.000s]
Sending sparse 'super' 2/6 (784869 KB)             OKAY [ 19.445s]
Writing 'super'                                    OKAY [  0.016s]
Sending sparse 'super' 3/6 (785925 KB)             OKAY [ 19.485s]
Writing 'super'                                    OKAY [  0.000s]
Sending sparse 'super' 4/6 (726947 KB)             OKAY [ 17.664s]
Writing 'super'                                    OKAY [  0.000s]
Sending sparse 'super' 5/6 (786236 KB)             OKAY [ 19.525s]
Writing 'super'                                    OKAY [  0.016s]
Sending sparse 'super' 6/6 (387724 KB)             OKAY [  9.555s]
Writing 'super'                                    OKAY [  0.000s]
Finished. Total time: 104.467s
******** Did you mean to fastboot format this f2fs partition?
Erasing 'userdata'                                 OKAY [  3.295s]
Finished. Total time: 4.176s
******** Did you mean to fastboot format this ext4 partition?
Erasing 'metadata'                                 OKAY [  0.000s]
Finished. Total time: 0.000s
Setting current slot to 'a'                        OKAY [  0.031s]
Finished. Total time: 0.031s
-----------

INFO: Done. The device will reboot now.
Rebooting                                          OKAY [  0.000s]
Finished. Total time: 0.000s

INFO: You can unplug the USB cable now.


me@myPC MINGW64 /c/adb/platform-tools/_fp5
$ cd ..

me@myPC MINGW64 /c/adb/platform-tools
$ ./adb devices
* daemon not running; starting now at tcp:5037
* daemon started successfully
List of devices attached
<SERIAL>        unauthorized


me@myPC MINGW64 /c/adb/platform-tools
$ ./adb devices
List of devices attached
<SERIAL>        device


me@myPC MINGW64 /c/adb/platform-tools
$ ./adb reboot bootloader

me@myPC MINGW64 /c/adb/platform-tools
$ ./fastboot oem device-info
(bootloader) Verity mode: true
(bootloader) Device unlocked: true
(bootloader) Device critical unlocked: true
(bootloader) Charger screen enabled: true
OKAY [  0.001s]
Finished. Total time: 0.001s

me@myPC MINGW64 /c/adb/platform-tools
$ ./fastboot flashing get_unlock_ability
(bootloader) get_unlock_ability: 1
OKAY [  0.000s]
Finished. Total time: 0.000s

me@myPC MINGW64 /c/adb/platform-tools
$ ./fastboot flashing lock_critical
OKAY [  0.027s]
Finished. Total time: 0.027s

<HERE THE DEVICE REBOOTED AND I ENABLED USB DEBUGGING AGAIN>

me@myPC MINGW64 /c/adb/platform-tools
$ ./adb devices
List of devices attached
<SERIAL>        device

me@myPC MINGW64 /c/adb/platform-tools
$ ./adb reboot bootloader

me@myPC MINGW64 /c/adb/platform-tools
$ ./fastboot oem device-info
(bootloader) Verity mode: true
(bootloader) Device unlocked: true
(bootloader) Device critical unlocked: false
(bootloader) Charger screen enabled: true
OKAY [  0.001s]
Finished. Total time: 0.001s

me@myPC MINGW64 /c/adb/platform-tools
$ ./fastboot flashing get_unlock_ability
FAILED (Write to device failed (Unknown error))
fastboot: error: Command failed

<IT SEEMS I OVERLOOKED THAT ERROR, SIGH>

me@myPC MINGW64 /c/adb/platform-tools
$ ./fastboot flashing lock
OKAY [  0.026s]
Finished. Total time: 0.026s

<HERE THE DEVICE REBOOTED, SAID IT WAS UNSAFE, AND SINCE THEN IT ONLY REBOOTS TO BOOTLOADER>

me@myPC MINGW64 /c/adb/platform-tools
$ ./fastboot oem device_info
FAILED (remote: 'unknown command')
fastboot: error: Command failed

me@myPC MINGW64 /c/adb/platform-tools
$ ./fastboot flashing get_unlock_ability
(bootloader) get_unlock_ability: 1
OKAY [  0.000s]
Finished. Total time: 0.000s

me@myPC MINGW64 /c/adb/platform-tools
$ ./fastboot flashing lock
FAILED (remote: '       Device already : locked!')
fastboot: error: Command failed

me@myPC MINGW64 /c/adb/platform-tools
$ ./fastboot reboot
Rebooting                                          OKAY [  0.000s]
Finished. Total time: 0.000s

me@myPC MINGW64 /c/adb/platform-tools
$ ./fastboot flashing get_unlock_ability
(bootloader) get_unlock_ability: 1
OKAY [  0.000s]
Finished. Total time: 0.000s

me@myPC MINGW64 /c/adb/platform-tools
$ ./fastboot oem device-info
(bootloader) Verity mode: true
(bootloader) Device unlocked: false
(bootloader) Device critical unlocked: false
(bootloader) Charger screen enabled: true
OKAY [  0.001s]
Finished. Total time: 0.001s

me@myPC MINGW64 /c/adb/platform-tools
$

The Android version was 15 and the Android security patch was February 5, 2026 for the original Android when I did the unlocking. The e/OS/ (“IMG-e-3.5-a15-20260211580868-official-FP5.zip”) also is Android 15 and from a later date in February (11th according to file name).

Update: By simply using ./fastboot flashing unlock and ./fastboot flashing unlock_critical as recommended by this guide I was able to unlock and unbrick my device and install e/OS/ again.

Please note that this post shall in no way critize your guide - I just want to find out what I did wrong. And whether there is any way to un-brick my device.

1 Like

Hello @TeeTeeHaa, Welcome to the Fairphone users forum.

Great log report !

according to Releases · e / os / 🚀 Releases · GitLab

/e/'s android security patch is not newer !

But because it is from the same month, you should be able to unlock again now, use the phone, and wait for the next /e/ release to relock the bootloader.

2 Likes

Will I have to reinstall e/OS/ and loose all my data by relocking?

And good news: By simply using ./fastboot flashing unlock and ./fastboot flashing unlock_critical as recommended by this guide I was able to unlock and unbrick my device and install e/OS/ again.

no, just updating OTA

yes.

4 Likes