Phone boots straight into Fastboot after flashing GSI

I’m trying to flash an /e/ GSI onto a Xiaomi Redmi 8A (olivelite) device.

My first attempts lead to a broken device that boots straight into fastboot every time. Flashing system.img worked without an error message.

I did skip the Remove dm verity step that is outlined in the official guide in the hope that it would work anyway, but, well, it didn’t.

My problem with this is, it says to do it either using TWRP, which does not seem to exist for that particular device model, or to do so by “extracting the kernel and reflashing it”.

However, the GSI offered on the /e/ website only contains one single system.img file, not the boot.img used in that particular command. Could this possibly refer to some boot.img file from the original MIUI ROM? If so, what is a safe way to get my hands on that file?

1 Like

So I managed to solve this, the problem was indeed the DM Verity step.

“Extracting the kernel and reflashing it” in the guide does seem to refer to the OEM ROM kernel, which I found here for olivelite.

However, it was not enough to re-flash boot.img, I also had to run this line:

sudo fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img

using the vbmeta.img from the OEM ROM package before flashing the /e/ GSI.

This finally allowed me to boot into /e/, but unfortunately the GSI does not seem to be usable on this device due to too many glitches and problems.

I’d file this as a documentation enhancement suggestion for the GSI Installation Guide to save others some trouble, but the corresponding forum category does not seem to have a topic for GSI, so maybe @Manoj could help out here?

1 Like

you’d want to make a pull request against

1 Like

Created a thread for Documentation suggestions for GSI

1 Like

Thanks for the link!

I’m really sorry I just can’t find enough free time right now to figure out the details of how to work with gitlab just yet, but I definitely want to get into making pull requests in the future.

modern forges like gitlab/github make it easy to do one-off edits in a web-based editor. See the blue button on the link, you fork, edit, and automatically make the “proposal” back to the fork upstream. All in a browser. It’s a bit of terminology but you’ll quickly get it

The Xiaomi Redmi 8A should be very well suited to run with /e/OS ‘Q’ GSI, especially if Xiaomi firmware V12.5.0 (Android 10) is installed.

The instructions in the official /e/OS installation guide do not apply to all Project Treble-compatible devices, as not all devices use an Android Dynamic Super Partition (especially those that did not originally and factory ship with Android 10, such as the Redmi 8A (olivelite)) that support fastboot via the 'fastboot reboot fastboot' (= fastboot’d’) command.

Depending on the device, the command fastboot flash --disable-verity --disable-verification boot boot.img may cause system errors. Often it is sufficient to execute only fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img to then flash the system.img.

Oh of course, if it’s just documentation and not code that has to be tested, that makes perfect sense! Thanks for the tip!

Oh that’s very interesting, thank you for the information!

What’s the best way to reverse the boot.img flashing step then? Just something simple like fastboot flash --enable-verity --disable-verification boot boot.img?

There is only one way back: Flash the stock Android 10 boot.img via fastboot flash boot boot.img

1 Like

Ah, that makes sense, thank you very much! Good to hear the effect is at least easily remedied.

Ok so in response to your solution, I get a very unpopular error that annoys me so much for about a week now.

fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img
Rewriting vbmeta struct at offset: 0
Sending ‘vbmeta’ (4 KB) OKAY [ 0.005s]
Writing ‘vbmeta’ FAILED (remote: ‘image verification error’)
fastboot: error: Command failed

Please help. System flashes normally but as the title suggests, phone boots straight into fastboot (bootloader).

Thanks!