GSI or Device-specific build?

I have a new (to me) Xperia XZ1 Compact (lilac) on which I would like to run /e/. This device is Treble-enabled.As I understand it I can either

a: run a GSI (such as @harvey186’s recent build for not yet supported phones) or

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


1 Like

Hi, OK I will try to bring some light in that room :wink:
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 :slight_smile:
For a StartUp like 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.


if for instance I flash a normal build, and then a GSI, the phone will have vendors from the normal build and not from the stock ROM, right ?

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

1 Like

Thank you - that’s really useful. GSI sounds like the way to go.
According to, the XZ1 C is ARM64, A
I don’t want root, and I don’t particularly want encryption, so which of your GSI builds should I use?

I think you can use the last one.

you can go this way [HOWTO] install eOS GSI on a Treble device - new GSI added June 14th

arm64_aeN.img = arm64 a-only

Oh when I said “last one” I wanted to say “the last set of updates you can find at the following link”.

OK. I thought the aeN meant A, Encrypted :slight_smile:

And are these still the correct links:

By the way, what is vbmeta?

Sorry for the dumb questions, but I like to understand what I’m doing before I do it. Reduces the chances of bricking my new toy :slight_smile:

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

So, exciting times

  • 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 a Lineage OS 17.1 ROM from This worked and booted into Lineage 17.1
  • 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.

Thanks again for all your help

This normally happens when not formatted data before starting the GSI process.

And what’s about the vbmeta.img ? Do you have flashed it with the right command ? Or does your device have no vbmeta partition ?

EDIT: And you should best first flash stock rom pie (or oreo).

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 :slight_smile:
I have the following files

  • e-pie-20200613-JoJo-treble_arm64_aeN.img
  • twrp_v323-4_nitrogen_nijel8-MOD.img
  • vbmeta.img

In bootloader

1: fastboot oem ignore_anti

2: fastboot flash recovery twrp_v323-4_nitrogen_nijel8-MOD.img


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

7: fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img

8: fastboot reboot

Have I missed anything or got anything wrong?
Wish me luck!

You have to use YOUR TWRP, not mine for MiMax3 nitrogen !!! That won’t work.

Safe it outside your device, because point 4 will erase it !!!

Never heart this -u option. But you can tried it

and … GOOD LUCK !!!

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.

1 Like

cooool . happy to hear that. Congrats