Easy installer incorrectly reports /e/OS compatibility

If you got the phone in USA then it’s not compatible. If you got the phone in Europe or anywhere outside the USA then I’m not sure why it’s not compatible.

It’s not a USA model.

And I know /e/ OS works without any problem, as I’ve installed it manually on this phone at some point.

1 Like

Okay cool. Then it’s an easy installer issue not an /e/ installation issue.

I think that I have seen this failure mentioned before, but I cannot find the report in a quick search.

You might check what is recorded in the Easy Installer log found by methods described here Howto troubleshoot issues with the easy-installer.

It might be interesting to see whether the device is easily recognised by heimadll correction, please see Post #7 on your machine and then to compare this with an Easy Installer log.

Just a thought – is the phone running an updated Samsung ROM. This is specified in the manual instructions; Easy Installer might fail with certain custom ROMs.

1 Like

IMHO the phrase “Your XXX is not yet supported by /e/ OS” is just a little misleading and should be “Your XXX is not yet supported by the /e/ easy-installer, please check our webpage if a manual installation is possible with this device.”
Of course that depends on the decision if it’s ok to point people who might not be able to perform the manual install to exactly that :wink:

2 Likes

Hi @centaurus, correction, heimdall is not responsible for detecting the device.

As far as I can tell from this extract from a log submitted by another /e/ user, detection appears to be done by abd plus a helper which probably needs to be provided by snap in adb support, imho probably libusb but I am not certain.

List of devices attached 
2022-06-05 11:04:40,445 INFO [Thread-11] e.e.i.t.DeviceDetectionTask [null:-1]   waiting
2022-06-05 11:04:42,697 INFO [JavaFX Application Thread] e.e.i.c.s.DeviceDetectedController [null:-1] startDetection()
2022-06-05 11:04:42,699 INFO [Thread-12] e.e.i.t.DeviceDetectionTask [null:-1] runADBDevicesCmd(/snap/easy-installer/22/easy-installer-linux-x64/bin/adb/adb)
2022-06-05 11:04:42,701 DEBUG [Thread-12] e.e.i.m.Command [null:-1] getFinalCmd(), Splitted command =  /snap/easy-installer/22/easy-installer-linux-x64/bin/adb/adb devices -l
2022-06-05 11:04:42,703 INFO [Thread-12] e.e.i.m.Command [null:-1] Command's Process started
2022-06-05 11:04:42,712 DEBUG [Thread-12] e.e.i.m.Command [null:-1] 
  (debug)List of devices attached
2022-06-05 11:04:42,713 DEBUG [Thread-12] e.e.i.m.Command [null:-1] 
  (debug)23bab4b44e0c7ece       device usb:1-2.1.3 product:star2ltexx model:SM_G965F device:star2lte transport_id:5
2022-06-05 11:04:42,716 DEBUG [Thread-12] e.e.i.t.DeviceDetectionTask [null:-1]  raw shell outputs = 

List of devices attached

23bab4b44e0c7ece       device usb:1-2.1.3 product:star2ltexx model:SM_G965F device:star2lte transport_id:5 

Assuming you are using a snap version of Easy Installer you could check out whether your snap installation can be upgraded.

Having eliminated that … are you using Linux? … there may be ways to upgrade libusb or whatever “helper” snap is missing

Unfortunately, for this installation I was using the windows based easy installer.

The thing that I find strange is that the phone model easy installer detects (and decides is incompatible), is not only correct, but shows as compatible with both /e/ OS and easy installer, in the documentation - I don’t think the phone model detection is flawed. I think it’s rather a case of incorrect error message displayed.

In the case of Windows, then Snap adb support is probably lacking imho. You might review this article https://snapcraft.io/blog/snapcraft-for-windows-preview

It might be interesting to open a Windows device manager while Easy Installer is running. Any unsupported device might show up as a “:warning: Problem device”. Windows update might even provide a fix.

Your report might have common features to Howto troubleshoot issues with the easy-installer - #21 by cedricoola

Programmatically the error message seems unreliable! as mentioned by @Ingo_FP_Angel.

Edit:

Indeed, the flaw looks more like the “detection” not being a match with Easy Installer’s internal list of “supported devices”.

The Windows version of the easy-installer does not use snap. That’s a wasted effort IMHO.

I don’t see how this will help, the installer was able to detect the phone (otherwise there would have been no “SM_G935F” in the “Your SM_G935F is not yet supported by /e/ OS” message) which wouldn’t be the case in the situation you describe.

Out of curiosity, @centaurus, if you run

adb devices -l

with USB Debugging enabled (normal System or Recovery mode IIRC), what is the output?

Edit: looking at https://doc.e.foundation/devices/hero2lte, where SM-G935F is explicitly mentioned as being supported, I would assume that the output should contain device:hero2lte. And if it doesn’t, that would be the explanation.

1 Like

DevMgr doesn’t show any devices with problems. I see the SAMSUNG Android Phone with a sub-branch of “SAMSUNG Android ADB Interface” which reports as working properly in DevMgr.

adb devices -l command produces the following one line:
( long SID ) device product:hero2ltexx model:SM_H935F device:hero2ltexx transport_id:3

So as far as I can see, everything looks fine:

  • phone has the right drivers and can talk to the PC
  • it gets detected correctly by both the PC and adb
  • even easy installer reports its model correctly
  • moreover, it’s currently installed with /e/OS v1.1 (I’m trying to reinstall it because I was testing the easy installer, as this is my test phone for /e/ OS).

I can draw only one conclusion - the error message must be erroneous - there is a completely different issue.

Is there any way to enable debug level or verbose logging - maybe that will produce some relevant information.

Easy Installer will have kept a log, see Post #5 it is set at debug.

Well, there you have it: “hero2ltexx”. The installer checks the detected device name against a list of devices it knows how to handle. That list only contains “herolte” and “hero2lte”.

BTW, in your initial post you wrote that you have a SM-G935F, but adb shows it’s a SM-H935F.

1 Like

I think the “xx” is a generic denomination for the whole series (there is no such thing as a SM-G935XX model). Moreover, even easy installer reports it as SM-G935F

I cannot find any log file anywhere within the easy installer installation folder.

Easiest way to get the logs is to open an explorer (the file manager, not the old internet explorer browser) and paste %LOCALAPPDATA%\easy-installer into the location bar). There should be one log file for each time you started the installer.

What I find confusing is that the installer detects the phone by running adb devices -l and I don’t understand how that command returns the model “SM_H935F” when you run it manually but “SM-G935F” when the installer calls it internally.
I have the source code of the installer before me and it’s clearly the model from the adb command that gets displayed if the installer does not support a device.

1 Like

If the Easy Installer uses its own adb.exe (at least there’s one in the Easy-installer-setup.exe) … could different ADB versions give different results?

The result you see in my post above was from the adb located in the easy installer folder (that’s where I ran it from)

2 Likes

Thanks Ingo_FP_Angel - found the logs - the device seems to be detected fine and I cannot see any error messages in the log:

2022-07-08 10:01:28,823 INFO [JavaFX Application Thread] e.e.i.c.s.DeviceDetectedController [null:-1] startDetection()
2022-07-08 10:01:28,826 INFO [Thread-4] e.e.i.t.DeviceDetectionTask [null:-1] runADBDevicesCmd(C:\Program Files\easy-installer\bin\adb\adb)
2022-07-08 10:01:28,832 DEBUG [Thread-4] e.e.i.m.Command [null:-1] command: [cmd.exe, /c, ““C:\Program Files\easy-installer\bin\adb\adb”, “devices”, “-l””]
2022-07-08 10:01:28,842 INFO [Thread-4] e.e.i.m.Command [null:-1] Command’s Process started
2022-07-08 10:01:30,617 DEBUG [Thread-4] e.e.i.m.Command [null:-1]
(debug)List of devices attached
2022-07-08 10:01:30,617 DEBUG [Thread-4] e.e.i.m.Command [null:-1]
(debug)ad051602290bc6cb64 device product:hero2ltexx model:SM_G935F device:hero2ltexx transport_id:3
2022-07-08 10:01:30,618 DEBUG [Thread-4] e.e.i.m.Command [null:-1]
(debug)
2022-07-08 10:01:30,621 DEBUG [Thread-4] e.e.i.t.DeviceDetectionTask [null:-1] raw shell outputs =

List of devices attached

ad051602290bc6cb64 device product:hero2ltexx model:SM_G935F device:hero2ltexx transport_id:3

2022-07-08 10:01:30,621 DEBUG [Thread-4] e.e.i.t.DeviceDetectionTask [null:-1] checkAdbDevicesResult(ad051602290bc6cb64 device product:hero2ltexx model:SM_G935F device:hero2ltexx transport_id:3)
2022-07-08 10:01:30,621 INFO [Thread-4] e.e.i.t.DeviceDetectionTask [null:-1] Device has been found
2022-07-08 10:01:30,621 DEBUG [Thread-4] e.e.i.t.DeviceDetectionTask [null:-1] Current subString : ad051602290bc6cb64
2022-07-08 10:01:30,621 DEBUG [Thread-4] e.e.i.t.DeviceDetectionTask [null:-1] Current subString : device
2022-07-08 10:01:30,621 DEBUG [Thread-4] e.e.i.t.DeviceDetectionTask [null:-1] Current subString : product:hero2ltexx
2022-07-08 10:01:30,621 DEBUG [Thread-4] e.e.i.t.DeviceDetectionTask [null:-1] “product” keyword has been found
2022-07-08 10:01:30,622 DEBUG [Thread-4] e.e.i.t.DeviceDetectionTask [null:-1] Current subString : model:SM_G935F
2022-07-08 10:01:30,622 DEBUG [Thread-4] e.e.i.t.DeviceDetectionTask [null:-1] “model” keyword has been found
2022-07-08 10:01:30,622 DEBUG [Thread-4] e.e.i.t.DeviceDetectionTask [null:-1] Current subString : device:hero2ltexx
2022-07-08 10:01:30,622 DEBUG [Thread-4] e.e.i.t.DeviceDetectionTask [null:-1] “device” keyword has been found
2022-07-08 10:01:30,622 DEBUG [Thread-4] e.e.i.t.DeviceDetectionTask [null:-1] Current subString : transport_id:3
2022-07-08 10:01:30,622 DEBUG [Thread-4] e.e.i.t.DeviceDetectionTask [null:-1] call(), result: Device found

Ok, the device is “hero2ltexx” just like in the manual adb run.
So the explanation for the unexpected behaviour is confirmed (there just is no file for that device in https://gitlab.e.foundation/e/devices/easy-installer/-/tree/master/src/main/resources/yaml).

It’s probably a little misleading that the output in the installer window prints the “model” when in fact the “device” is checked against the install steps available in the easy installer.

Not sure what should be done with that knowledge. If “hero2ltexx” and “hero2lte” are effectively the same, an easy hack would be to internally use “hero2lte” when in fact “hero2ltexx” was identified. But I have no idea about the Samsung subtleties and if a device with the one code name can be treated exactly like the one with the slightly different code name.

4 Likes

Just on that point alone. I struggled with this anomaly when I first started work with my a3xeltexx. Having successfully installed LineageOS and bookmarked the /e/ a3xeltexx page, the /e/ page disappeared – it had been replaced with a3xelte.

LineageOS includes reference to heroltexx in the device tree, for instance here https://github.com/LineageOS/android_device_samsung_herolte/commit/866616b68fed284aff192aa8c582f0d2e3d5470b

Just to confirm - I just re-installed /e/-OS on the phone (e 1.2 stable), using the manual method (command line, from a linux PC). The installation works perfectly and the OS works as expected - no incompatibilities reported or errors of any kind.

Just a quick note (as an FYI) - the installation instructions on the website are inaccurate (probably outdated) when it comes the menus in the Custom recovery image: in the current image, the “format Data” submenu is under “Restore to Factory settings” menu, and the ADB sideload is again, under a different menu (I completely forgot to take a screenshot during the installation)

3 Likes