How to install custom ROMs or GSIs on Samsung Galaxy devices without TWRP
Samsung ships its “Galaxy” branded smartphones and tablets highly modified Android software builds, the latest generation of which is known as One UI. Besides all the UI/UX related differences from stock Android, there is one specific feature that makes Samsung’s Android devices very unique compared to devices from other manufacturers. The Korean OEM substitutes the regular Fastboot mechanism with its own protocol in their products. Internally named after characters from the Norse Mythology, the piece of code running on the device is known as “Loke”, while the remote-side (usually a PC) component is called “Odin”.
The lack of a Fastboot compatible interface might sound like a huge roadblock for the modding scene, but the aftermarket developer community has always managed to get their hands on leaked Odin binaries to get things done. The custom protocol itself was reverse-engineered long ago, resulting in a cross-platform open-source flashing tool called Heimdall. One can compile Heimdall from source or simply grab a patched version of Odin in order to root their Samsung Galaxy devices, install a custom recovery like TWRP, and perform many other flashing jobs.
Once you’ve got TWRP installed, you can easily replace Samsung’s version of Android with a custom Android ROM like LineageOS. Even if there are no custom ROMs available for your Samsung model, you can technically install a Generic System Image (GSI), provided the device is Project Treble compliant as well as comes with an unlockable bootloader. However, porting TWRP to recent Samsung devices running Android 10/One UI 2 out of the box (e.g. the Galaxy S20 series) is a complicated task. The unavailability of a stable custom recovery directly hinders the ability of installing custom ROMs/GSIs on such models.
XDA Junior Member kkoo has now come up with a clever idea to bypass most of these hurdles. Given the fact that Samsung’s official firmware package is nothing but a collection of LZ4 compressed archives, a similarly packed custom ROM (or GSI) can be flashed using Odin. The Verified Boot feature of the target device has to be disabled beforehand, which can be achieved by installing a null vbmeta image provided by Google.
All the instructions you need to follow have been posted in the forum thread linked below. The process described by XDA Junior Member kkoo requires executing some command-line scripts from your computer running Windows. Instructions for flashing and configuring GSIs are also linked in the same forum post.