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

This topic is intended to gather information how to actually add a new device to the installer and to maybe coordinate efforts of those people working on the same devices.

I’m actually interested to add the Fairphone 3 to the supported devices of the easy installer.
How to I go on about it?

I’ve read https://gitlab.e.foundation/e/tools/easy-installer/-/wikis/Support-new-device and I think I know what to do, but at the moment my blocker is that I can’t fork the repo (I’m not allowed to).

P.S.: for more general discussion about the installer, please post at The /e/OS Installer arrives!

9 Likes

Hi Ingo, for now you can work locally with a git clone from here. An /e/ Gitlab ID should be enough for this.

We are working on setting up a process as to how users can push it back .
Most probably the instructions should be available by next week and will be shared with all.

2 Likes

First issue i see is that for the first steps the UI is hardcoded. For example 3-enableADB.fxml . This file is loaded from MainWindowController.java. So if i wanted to customise that for Leeco, i must change 3-enableADB.fxml. But i can’t because it’s a shared resource. Whats the idea here? The images don’t match my Leeco S2 based on android 6. The user would be confused.

1 Like

You can start raising issues needing fixes from /e/ dev team on gitlab.

hereby a request for the Samsung Galaxy A3 (2016) A3xelte

and for the Lenovo Yoga Tab 3 Plus LTE YTX703L

I find it hard to start doing the actual work.

I’ve started to create the two necessary files for the FP3. But I’m already somewhat stuck at the first step :wink:

In the flash-scripts repo I see that there were recent changes with message “Add FP3 scripts” (does that mean someone at /e/ is already working at FP3 support and my efforts are wasted?).
So I copied those over to the installer repo.

Looking at the existing samsung files, they first wait for download mode, so I assume I’d have to start with wait for fastboot mode. But I don’t understand what the DEVICE_LOCKED_PATH device lock file (typically ${DEVICES_LOCKED_PATH}/${DEVICE}) parameter is supposed to mean.

I could do with a little more guidance than reverse-engineering from devices I don’t have and that use a quite different way of flashing than my FP3.

Thanks for sharing this issue Ingo. Passed it to the dev team. Since it is the weekend expecting a slightly delayed response.

And one more question: how do I set up my IDE to run the installer with a debugger?

I’m using IntelliJ and if I debug the run gradle task, everything works fine until the first adb command gets executed.

In the console the full command is

Splitted command: /usr/lib64/jvm/java-11-openjdk-11/bin/adb/adb devices -l

This only works when the installer is packaged, i.e. when the bin folder contains everything, even the JRE.

At startup I see

OS name: Linux
Java Home: /usr/lib64/jvm/java-11-openjdk-11
Current working dir: /x01/user/ingo/FP3/eelo/easy-installer
ADB folder path: /usr/lib64/jvm/java-11-openjdk-11/bin/adb/

Any idea how to best set the ADB folder path when running in an IDE?

I don’t use an IDE jet, but i think this is better :stuck_out_tongue_winking_eye: Now i created a script which just runs the tool and watch the script output. But that a little too time consuming. IntelliJ from jetbrains?

Yes, IntelliJ is a Jetbrains product. I use it at work, too, so I think that makes most sense for me.

Ingo are you checking this location for the scripts ?

@Manoj Yes, when I recursively check out the easy-installer, the submodule flash-scripts points to the branch “folder_per_platform”

Pl can you raise this as an issue on gitlab. I will add an easy-installer label to it. Do not want to loose all such error reports in the posts that come in the thread.

I installed IntelliJ but have this issue (also in Android Studio, on the command line i could fix it this way: ./gradlew wrapper --gradle-version 4.10.2 build)
org/openjfx/gradle/JavaFXPlugin has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0

Do you know how to fix this?

Sorry, haven’t seen this error yet. Looks like an issue with an old version of Java. I have Java 11 and IIRC that’s also listed in the requirements.

From what I understood the installer is supposed to do the unlocking (IMHO it wouldn’t make sense to provide a graphical installer but still require fastboot on the command line for unlocking). So I started with just USB debugging enabled.

Yes the idea is to unlock using a script called by easy-installer.

That’s actually something I wouldn’t worry about at the moment. I’d rather get the first steps going than already thinking about the last.

@Mystic are you also trying to add FP3 support to the installer (or a different device)?

P.S.: my gut feeling about the bootloader is to lock it at the end. That way, buying it preinstalled or using the installer gives a consistent result for those who are not tech-savvy/confident enough to use the manual command line installation. People more knowledgeable can still do it the fastboot way and then opt to not lock the phone again.
P.P.S.: I could imagine in a future version of the installer one could add a way to skip the locking step; but again, right now I want to concentrate on how to add a new device (and later how to support Windows), not feature enhancements

4 Likes

Now my issues are there:
https://gitlab.e.foundation/e/backlog/-/issues/1277
https://gitlab.e.foundation/e/backlog/-/issues/1276
https://gitlab.e.foundation/e/backlog/-/issues/1275