[Redmi Note 10] MPK99:
Why should I use a GSI ? Mojito already have custom ROMs ¯\_(ツ)_/¯​

Yes. But this thread exists due to the following reasons:

You don't wanna fear about devs stop shipping updates.​

You don't wanna re-flash your custom recovery / kernel after each update.​

Unlike some ROMs, no clean flashes necessary after you update.​

You don't wanna be a flashoholic / beta tester of a ROM maintainer.​

GSIs are like Linux Distros. Flexible, hasslefree & minimal.​

All GSIs support signature spoofing out of the box.​

Differences between GSIs & ROMs:

ROM updates modify all the partitions (boot, recovery, kernel, system, vendor, etc). A GSI update is just a system partition that updates "only" the system, that runs upon stock firmware.​

You can't flash gapps on vanilla GSIs, as you do on vanilla ROMs. You must use bgS/bgN GSI variants.​

For now, GSIs have to be installed via fastbootd, as recoveries still yet to support logical partitions. So you need computer available when you update or change them.​

AOSP GSI project is being alive for almost many years now. I've been daily driving his project on this device since I made the overlay. Everyone claim GSIs are buggy & not daily drivable, which is a complete false claim. There are no compromises with GSIs when compared to ROMs.

PREREQUISITES​

USB Drivers (guide to install)​

Platform Tools (guide to setup)​

Stock ROM (fastboot)​

vbmeta.img (from google)​

TWRP (thanks to Nebrassy)​

Recommended GSIs :

AOSP (thanks to ponces)​

Pixel Experience (thanks to ponces)​

LineageOS (thanks to AndyYan)​

More to test from here

INSTALLATION​

NOTE: I'm assuming you've already unlocked bootloader, backed up your data & know all the technical consequences of flashing & modding.

Download / extract all prerequisites in one place.​

From stock firmware, edit flash_all_except_data_storage.bat/sh & modify last line to fastboot reboot fastboot​

Enter fastboot mode {vol_down+power}, connect to PC & flash firmware using above edited script. When device enters fastbootd, from terminal/cmd execute :​

fastboot erase userdata​

fastboot flash vbmeta vbmeta.img​

fastboot flash system <gsi-file.img> (ignore INVALID SPARSE warning)​

fastboot reboot & make sure your GSI boots up. Power off & return to fastboot again.​

fastboot boot <twrp-file.img>, head to Advanced & run flash current TWRP to make recovery persistent across reboots.​

UPDATE / DIRTY FLASH HOW ?​

fastboot reboot fastboot

fastboot flash system <new-gsi.img> & reboot twice

All phh based GSIs are dirty flashable (unless you switch between vanilla & gapps).

POST CONFIGURATION​

Enable the following Settings > Phh Treble Settings:​

Misc features / Disable audio effects​

IMS features / Install IMS Apk for Qualcomm vendor from notification panel.​

MAGISK NOT WORKING ?​

In this case, the GSI you selected isn't securized (comes with su bydefault). Through TWRP, do

mount -o rw /dev/block/mapper/system_a /system_root from terminal

rm /system_root/system/xbin/su
rm /system_root/system/bin/phh-su
rm /system_root/system/etc/init/su.rc

Or instead, you can use recovery's file manager to delete the above files. Then reboot.

EXTRAS​

My Recommendations for great experience:

SPKM to set GPU > GPU Governor > Performance (fixes UI lags)​

Lineage Dialer for built-in call recording (push into /product/priv-app/Dialer/Dialer.apk).​

ANXCam for MIUI camera's post processing.​

GCam for google camera's post processing.​

Aurora Store / Droid for microg users.​

Migrate to backup / restore user apps & data, incase you lose your setup.​

Thanks for reading all the way through here.