b: run a device specific build (such as the unofficial ROM I just built for the device, or an official ROM when one appears).
Can anyone explain what are the advantages and disadvantages of each approach? (I have done some reading, and I think I understand what a GSI is, but I don’t have a good view of how it differs - in practical terms - from a device-specific build.)
Hi, OK I will try to bring some light in that room
I think in the meantime you will know what a GSI is. A Generic System Image. That should be a system image will will fit to all treble supported devices. This is only true for devices which where delivered from factory with treble enabled. There are some devices which are supporting treble after some hacks. For these device not all GSI are working because they need special hacks.
If you install a GSI or a ‘normal rom’ the result is the same. No difference in OS because the all using the same sources. The only difference is, that on treble devices with GSI you are nit touching the vendor partition. And that’s the benefit of GSI. No search for working vendor blobs, because you only flashing the system partition.
On my trebelized Mi5s Plus (natrium) I can switch between Android 9 and Android10 with only flashing the GSI. I don’t know if it is working this way for all devices.
You have build for some devices as far as I know and you where always searching for the right working vendor sources with GSI, you don’t need searching for
For a StartUp like e.foundation a GSI is optimal. One GSI fit’s a lot devices (not for all as I have write above) But the development resources a smaller, very smaller as developing a rom for every device.
yes. For example: I have flashed a special treblezied LOS16 ROM on my natrium device. This has created the right partition layout and the vendor files. Now I was / I am able to flash most GSI
that’s OK. Regarding the a and e and N I have no idea what it is meaning. PHHusson has created this variants and I don’t know it.
TWRP you can forgot. You have your own working TWRP which will be OK.
Some devices do have this vbmeta partition for verified boot. If you will get an error while trying to flash, OK, forget that step.
Pls keep in mind, I can’t garantee that the GSI will work, So pls be prepared to go back to your latest version
First I tried the GSI ROM, using fastboot flash as described - long story short I ended stuck in a boot loop
Eventually got back to stock ROM
Tried installing my Unofficial /e/ ROM from TWRP vai adb sideload. After rebooting, the ‘e’ startup animation appeared but after a while (15 seconds) device rebooted back into recovery.
Tried the same with an unoffical LineageOS fro microG ROM that I built just after the /e/ ROM. Same story - but with the Lineage startup animation before device reboots to recovery.
Tried again with my unofficial /e/ rom - same problem of rebooting into TWRP
So for now, I have a device running Lineage 17.1 with Pico OpenGApps for Android 10. This isn’t where I want to be, but will do for now, until I can get hold of a working /e/ ROM.
After a lot of time and swearing, I now have a working stock ROM, with no recovery, which is currently charging for the next phase.
When it is fully charged, I’m going to try again with the GSI. Before I do, I want to confirm the exact steps to follow, based on the instructions in the ‘HOWTO’ post, but I want to be absolutely sure, as I clearly did something wrong last time
I have the following files
3: Backup stock ROM System and Data partitions (just in case)
4: Wipe | Format data
In bootloader
5: fastboot erase system
6: fastboot flash system e-pie-20200613-JoJo-treble_arm64_aeN.img (in the XDA article you linked to they said to use the -u option in this command. Is this necessary?)
Short story: it worked \o/ - I have a working XZ1 Compact running /e/.
I will write up details later today in case anyone else wants to try.
Thanks again for your help and patience.