Fairphone - FP5 - FP5 - Documentation Suggestions

…Enter suggestions to improve documentation in this category. Do not raise bugs or issues here…

Here are my suggestions for the install guide:

  1. „8. Reboot again into bootloader“: When the user completes point 7 his phone boots into a virgin Google Android with the OOBE wizard. In order to then get back into the bootloader via adb, which the user knows how to use by this point, he then has to complete the wizard and some of the steps taken before again (e.g. go to settings, become a dev, activate USB debugging etc.). Only later in the guide, in point 3 of section „Installing /e/OS“, the user learns that there is a much easier way to get into the bootloader: „Hold Power + Volume Down button combo simultaneously“

  2. „Hold Power + Volume Down button combo simultaneously“: It could be helpful to say that the buttons have to be held for quite a long time. For me it was something like 10 seconds (ideally until you actually see the bootloader). If we want to be super detailed, holding the volume button for that long will make the bootloader switch the colored writing on the upper part of the screen, which looks scary, but doesn’t need to concern the user since we control the bootloader via adb.

  3. Using GitBash: Do Windows versions starting from Win 10 (due to ended support we can disregard anything older, I guess) really not have in-house means to execute the shell script (.sh file)? And if so, is there possibly some other, more lightweight FOSS software for that? I don’t mean to criticize GitBash, but it’s a 50+ MB download and has a really long-winded installation procedure during which I sometimes was lost what to pick.

  4. „The script will flash all required files and will wait for input at the last step“: I remember when flashing my FP3 that the script did wait for input, but in case of the FP5 it didn’t wait, but immediately tried to boot into /e/OS. Because I didn’t want to go through the whole settings stuff (activate USB debugging etc.) a third time, I stopped it from doing that, which was possible due to the phone showing a helpful message that if you want to stop it from booting, you can press the power button. At that point I had learned how to get into bootloader via power and vol down, so I forced my way into it and did the first (fastboot flashing lock_critical) and then the same way the second bootloader locking step (fastboot flashing lock). Since these steps are done via adb, I first wanted to make sure that the phone is still properly connected to my PC, so I executed adb devices. This didn’t return a device, which I found frightening, but the locking commands worked anyway (which I find almost equally frightening).

I had some questions and shocks during the procedure, but ultimately I managed to get it done despite having the bare minimum IT knowledge to complete this task. So I’d like to express a massive thank you to @Manoj and the team for putting up the guide (and not to forget the stable version)!

2 Likes

You should mention that one (at least me…) need to activate again the debugging mode after each reboot.
Also in my case with ubuntu I had to use adb with sudo

1 Like

My two cents:

"Enable USB debugging on your device." should also include “.. as well as OEM lock”. I almost forgot to do that because I thought ‘I know how to enable USB debugging’ and did not check the [here] link. A little bit further down OEM unlock is mentioned, than again no mentioning of enabling USB debugging. So information seem to be provided twice but always forget one half.

Also wrt. “The /e/OS build available says: /e/OS build : S stable (Security patch: 2022-06-05)
Great you included examples, except I could not find anywhere those exact information clearly presented. What you might have to do (or what I did at least and what should be mentioned maybe as well) is that:

  • go to “https://gitlab.e.foundation/e/os/releases/-/releases
  • go to “Security fixes” section of your selected build release, where you would read something like " This [release] includes the [Android security patches] available until October."
  • you should even go further and check out the official link hidden under “[Android security patches]” which directs you to “https://source.android.com/docs/security/bulletin/…” where you would finally find a more detailed security patch information like “latest security patch level 2023-10-06” which might indicated that your good to go and flash your downloaded eOS image over current AOSP with a “security patch level 2023-10-05”.

I wholeheartedly agree. Git for Windows is not something you should expect the average user to install. The only real alternative for Bash scripts is MinGW. Neither of these are good options.

The remedy isn’t a different way to run BASH. Unix shell script is not the tool to use for a cross platform installer. Perl might work better here, in that there are fairly easy ways to produce standalone Windows executables from Perl scripts. Personally, though, I would highly recommend to just make an executable. Use something like Lazarus (IDE for Free Pascal) and have a nice GUI installer. It’s a RAD platform that wouldn’t take much more time to produce a GUI installer than it took to write that bash script. It’s very cross platform too. You could either do quick-and-dirty one-offs for each phone, or with a little effort, you could make an installer framework with an internal scripting language that would serve to make it work with many different phones. There are off-the-shelf components for incorporating scripts into Lazarus/Free Pascal programs.

EDIT: I would volunteer to do something like this.

Other points:

  • It makes no sense to provide ADB/Fastboot as part of the later flash procedure, but require the user to download, install, and use ADB/Fastboot as part of the initial unlock process and later relock. Combine the that together and have a one-stop-shopping “download this, run this, follow the prompts as you see them”. This ties in with my suggestion for a more user friendly installer.

  • Step 3 in the guide, as noted in the comment on “Hold Power + Volume Down button combo” is difficult to do but I have the opposite problem. If the USB cable is still attached when you power down the phone, then it will want to come back up almost immediately without pressing any buttons at all. This should be “Disconnect USB, Power OFF the device, then hold Power + Volume Down button combo simultaneously to bring the phone back up in the bootloader again, then reconnect the USB”

1 Like

I successfully installed e/OS on my FP5 yesterday with the help of the guide AND the comments posted here.

I had the same confusion as @crabs with step 8. After rebooting into a virgin Goolge Android, you’re not a developer anymore and cannot connect to the phone through adb. This is confusing, because the adb approach just used to boot into the bootloader now failed. After trying adb devices, which didn’t list anything, completing the wizard and re-enabling usb-debugging also crossed my mind. Luckily I ended up here and read about the “Hold Power + Volume Down” button approach.

The guide might be less confusing when it doesn’t make use of adb at all. It’s only used for the initial boot into the bootloader, which is also possible with ‘Power + Volume down’. From there on you only need the fastboot command. At some point I realized that to check if the device is connected when the bootloader is active, you should use fastboot devices instead of adb devices. This would probably have made @crabs experience at point 4 a bit less frightening.

Another thing that might be worth mentioning is that I initially had some problems with the fastboot commands. Sometimes it returned the error FAILED (Write to device failed (Protocol error)). I think this also happened in the middle of running the ./flash_FP5_factory.sh script, which resulted in the following output:

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.)

Although I didn’t get why I needed to take the battery out, instead of powering off I followed the advice. Before running the script again I switched to a different USB port on my computer first though. I suspect my USB-C port is a bit wonky, since I also had some problems connecting external monitors through that port. Fortunately there weren’t any hickups when using a regular USB port and I was able to run the flash script in it’s entirety.

1 Like

fastboot commands are to be issued with the phone in fastboot mode, which is also called bootloader.
So, reboot into bootloader, then issue the fastboot command.

You are in fastboot mode then, the options are how to end it.
Also, the install guide doesn’t tell you to choose an option there.

(Disclaimer: I don’t have a Fairphone 5.)

It was pointed out here … https://forum.fairphone.com/t/fp5-bricked-nach-e-os-installation/102088 (German topic) … that the following way of presentation (I’m copying the picture) …

… may lead users to believe that relocking the bootloader is “possible without any problem”, despite the install guide pointing to the opposite with several warnings about the conditions required to successfully relock the bootloader … as users may not read the install guide or not read it completely, perhaps only looking for the way to relock the bootloader after the Easy Installer didn’t do it for reasons unknown to them.

Can it be made visible in the place shown above that conditions apply for successfully relocking the bootloader on this device (or such devices, as more than the Fairphone 5 are affected)?

Something like

Bootloader relocking support *

[…]

* Please consult available documentation or ask in the community forum about possible conditions for successful relocking!

1 Like

Hi bought an FP5 and could successfully install /e/OS-T as per instructions:

https://doc.e.foundation/devices/FP5/install

I have some enhancements to the instructions in therms when re-locking the bootloader:

Locking the Bootloader

Once you have completed the above steps and before rebooting you can lock your Bootloader.

  1. Lock critical partition with the following command
  • fastboot flashing lock_critical
  • Approve with Volume + then power
  1. Reboot your device into bootloader, and plug it to your computer
  2. Lock the device with the following command
  • fastboot flashing lock
  • Approve with Volume + then power

Once you have completed the above steps and before rebooting you can lock your Bootloader.
→ the device reboots as soon as the script is successfully applied. That means you /e/OS is booting and one need to setup the phone again, enable developer mode and then usb debbugging and then run
adb reboot bootloader
Then enter in terminal: * fastboot flashing lock_critical
Now the device reboots again, /e/OS is booting and one need to setup the phone again, enable developer mode and then usb debbugging and run

  • fastboot flashing lock

Now I have finally equipped my Fairphone 5 with /e/OS. Also with the help of https://doc.e.foundation/devices/FP5/install

A few improvements and what I have noticed. Installed from a laptop with Fedora 39 Linux.

  1. fastboot did not recognise the Fairphone at first. Only when I executed all fastboot commands with sudo, everything worked without any problems. adb also worked without sudo.

  2. for people like me who are installing a custom ROM on a smartphone for the first time, a note would be helpful that the “Locking the bootloader” process erases the Fairphone’s memory again. (I had already installed many apps before locking. But now I also know that the backup with SeedVault works reasonably well :wink: )

1 Like

1 Like