/e/ OS “easy” installer: development thread about adding new devices

Just to let everyone know, I’ve started the FP2 support for the easy installer, now that the FP3 support is close to finished.

It actually was a lot easier because here the procedure is closer to the Samsung models (installation via TWRP is the same, TWRP itself needs to be flashed via fastboot instead of heimdall and the oem unlock step can be skipped as the FP2 bootloader comes unlocked by default).

There is one small obstacle: it seems that /e/ does not provide the TWRP image download like for the Samsungs and when configuring the installer to load from the official page, their naming for the checksum file is not what the installer expects.

I’ll fiddle around with making the file extension for the checksum configurable.

4 Likes

Thanks for your efforts Ingo. Will request the developer from the team to look into this issue you have raised and resolve it if possible.

3 Likes

I’ve prepared a merge request for the FP2 at https://gitlab.e.foundation/e/tools/easy-installer/-/merge_requests/68

It contains kind of a hack to circumvent the issue I raised earlier.

A binary version of the installer with a first version of FP2 can be found at https://ecloud.global/s/fn9YCWX4if9Gfzy
Just take the latest ZIP file available that starts with “fp2-” (the ones without this prefix only support the FP3).

2 Likes

It would be a good idea to maintain a list of the devices currently supported by the easy installer and the ones that will be soon. To have this information on the website, next to the supported devices would be nice.

2 Likes

The Easy-installer supported device list is there on the documentation site

3 Likes

From what I understood, only the stable branch has a “fixed” name for the download files like IMG-e-latest-FP3.zip and because the FP2 has no stable branch, it’s not likely it’ll be added to the installer officially, right, because the installer would have to be adjusted each time a new dev version comes out.

Not sure if it helps anybody, but I’ve provided new binaries (this time for linux and windows) at https://ecloud.global/s/fn9YCWX4if9Gfzy that support the FP2 with the v0.14.q dev version of 2021-01-25.
It also already contains a German translation and for linux users support for the Gigaset (the official easy-installer via snap is broken in version 0.12.0 and the older, working version 0.11.2 doesn’t support the GS as far as I know)

2 Likes

I’ve downloaded it and done the installation using Linux system. This worked perfectly. But it didn’t install v0.14.q but v0.12p. This can be updated OTA to v0.14p.

1 Like

Thanks for the feedback. :smiley:

WIll need to have a look why it didn’t contain the change to v0.14-q.

1 Like

How did you solve this problem? How is it possible to create merge requests in gitlab for additional devices as it’s not possible to fork the easy installer project?

Is it wise to add a relock step for the FP4 at the end of the easy installer steps as in case something went wrong during installation it might hard brick the FP4 ?

Might it be wise - in contrary to the steps mentioned in install instructions - to flash partitions of one slot only - so in case it fails you might still switch to other slot (although - well - in case in case of failure you can’t change slot on a locked device anyway… :roll_eyes:)?

What did you do when the images linked in the yaml are not shown in the installer?

Hi @Ingo_FP_Angel are you still not able to fork the EasyInstaller project ?

The initial post is almost 2 years old. The ability to fork has been granted “ages ago” :wink:

When I was working on the FP3 support I left out the relock step at the beginning. Once I felt rather confident the installer was working I added it. The reasoning was to get the same result after using the installer as if having bought the phone with /e/ preinstalled.

Maybe one could add a step to ask if the users want to relock their phones or not?
Seems a bit like the risk of bricking the phone after relock is somewhat higher with the FP4 than it was with the FP3.

At the beginning I’d definitely do that. Similar to add the relock step only when the procedure seems to be working well enough.

I’m not sure I understand this question correctly.
If the files can’t be downloaded the installer stops.

Mabe it was granted to you.
I get:

Yes, there’s a step anyway - and for now I’ve added the recommendation to relock later… :wink:

As far as I understand it the connection to the images is set in the files imageName_en_EN_xxxx.properties (like imageName_en_EN_0008.properties for FP3). But if I add an additional of those files for FP4 - where is it’s name linked? Fact is my custom text is diplayed, but the images are not when running the easy installer in my case.

Ah, ok, might have been an individual assignment then, don’t remember. In that case I guess you need to let @Manoj or @rhunault or @vincent.bourgmayer know your /e/ gitlab username to get access.

The connection between the device and the image names is done in the Java source code in class ecorp.easy.installer.helpers.DeviceHelper

There you need to add a new line like one of the others

private static final HashMap<String, String> map  = new HashMap<String, String>() {{
    put("hero2lte", "0001");
    put("herolte",  "0002");
    put("star2lte", "0003");
    put("starlte",  "0004");
    put("zeroflte", "0005");
    put("dream2lte", "0006");
    put("dreamlte", "0007");
    put("FP3",      "0008");
}};

That’s taken from my - potentially outdated - fork, so maybe the next free number isn’t “0009” but something higher.

1 Like

Great hint, thanks, pictures appear now! (number is currently at 0012)
(btw.: I didn’t find any hint to that information on https://doc.e.foundation/easy-installer-contribute#how-to-clone-the-project. I think it should really be added there, too…)

My gitlab username is ff2u.

EDIT: There’s a problem: I don’t know how to check if user has successfully finished “fastboot flashing unlock_critical” as there’s only a bootload variable “unlocked” but none “unlocked_critical”…

Hi, Pl send a mail with the ID to helpdesk@e.email The team should be able to help you get the required access to the Gitlab.

1 Like

Hi @Ingo_FP_Angel are there any suggestions from Fairphone on how to resolve this issue.

I have to admit I don’t really understand how the docs page generation works, otherwise I would add it myself (well, create a merge request…), but https://gitlab.e.foundation/e/documentation/user/-/blob/master/htdocs/pages/easy-installer-contribute.md seems to be the meta data of the page, not its contents (where are those?).

I don’t know either. Maybe the check can be done sort of implicitly by trying to flash one of the critical partitions and if that returns an error, assume the “unlock_critical” has failed/hasn’t been done yet?

I haven’t seen any. If I remember correctly I’ve seen two people reporting on the Fairphone forum that they ended up in a state they haven’t been able to fix yet. And other people more knowledgeable than me assume it can only be done by the company and not with tools freely available. But then, all this low-level stuff is nothing I know about.

1 Like

That’s a good idea. And I’d start with that before flashing any other (“uncritical”) partitions so system is still unchanged if it fails.

Docs pages are generated using an app called jekyl (details here). Great for generating flashy web pages, useless for writing and maintaining document content.

Better to use wiki pages, (gitlab wiki pages work quite well). Much easier for contributors, who can submit content or changes as plain text or markdown, as patches or MRs. Users can also see stuff like page history, known / outsanding / solved issues with the content.

I’m working on some docs that will be published that way. With luck, /e/ can be persuaded that wikis are a better way of doing user documentation than the current solution :slight_smile:

1 Like

Do you remember if there was any special reason why you asked the user to start “fastboot mode” manually (by turning off the phone and pressing power and vol down to start fastboot) before the unlocking precedure? You might have used adb reboot boatloader instead to start it automatically (as adb control should be enabled at that step anyway)?
Thanks.