What are GSIs and how to install them?

How to Guides

To recap, a custom ROM is a modified version of Android that you install as your main firmware on your smartphone. iodéOS, as a fork of LineageOS is a privacy-focused custom ROM that you can download and install for free on over 40 phones and tablets models. But supporting and maintaining each device takes a lot of work. Especially when you release security updates on a monthly basis, and that one of your core values is sustainability which means you will try to maintain each device for as possible. That’s why, in the past, iode has supported a selective list of devices. That way, we could ensure that the devices we support run smoothly for our users, without us miscalculating the resources we have to maintain a device well.

Say Hi to the GSI

On the other hand, a Generic System Image that can be installed on any Android device, the only prerequisite being that the bootloader can be unlocked.

For all non-nerds out there it’s probably not interesting at all. But even then, it’s easy to see the benefit of not being limited by certain device compatibilities, and instead being able to run your favorite software (iodéOS? 🙂 ) on any Android device you choose. You basically have more devices to choose from and you can even take your old smartphone out of your drawer and bring it back to life and use it as a small home server or music storage for your car or whatever you can think of.

So if you’ve come this far and are not interested in any more technicalities, you can stop reading now. GSI means you can use iodéOS on more devices and that’s awesome. Thanks for reading, bye.

And now, the nerdy part


If you’re into it, let’s get more into the nerdy stuff.

Recap, part two: A custom ROM is compiled from source code, customized to a certain device. The custom ROM includes a kernel, specific device blobs, a system image and more. Again, that is all device-specific and needed for the ROM to run properly. While it’s nice to take the time and build for all the device specific features, making sure it all works, it takes time and work to do so. That’s why, when you look at some of these projects, like LineageOS, you’ll find that sometimes, a device is only maintained by one developer. And while that’s nice and all, remember that these folks usually do that in their free time because they want to, they’re not getting paid and they’re doing a great job, but depending on one person to maintain your daily driver phone with the possibility of it being dropped, because the person doesn’t have the time or resources anymore can feel kind of vulnerable.

A history lesson: Android Oreo (sorry, no cookies)


Since 2017, with Android 8.1 Oreo, the Android OS framework got reworked, with “Project Treble”. The core concept is to separate the vendor implementation — the device-specific, lower-level software written in large part by the silicon manufacturers and which contains relevant drivers and components like the camera and so on — from the Android OS framework. This is achieved by the introduction of a new vendor interface between the Android OS framework and the vendor implementation.
So now, working with a lower level hardware code and a upper level Android system made things a lot easier since the two were separated. To modify the operating system, you don’t need to touch the lower level stuff. This new, modular approach led to GSIs, which obviously can run on more than just one phone model.
Today, with no formal vendor interface, a lot of code across Android needs to be updated when a device moves to a newer version of Android:

With a stable vendor interface providing access to the hardware-specific parts of Android, device makers can choose to deliver a new Android release to consumers by just updating the Android OS framework without any additional work required from the silicon manufacturers:

.

To GSI or not to GSI, that is the question


So what is better? A custom ROM or a GSI? Well, you can argue for both, really. The same argument, that a custom ROM has to be maintained specifically for a device and that’s a downside could be flipped upside down, stating that this ensures, that a custom ROM really runs smoothly on that device. With GSI, you don’t always get that one on one support for your specific device. Because, as we already mentioned, the whole purpose of GSIs is to make the image available on more phones. Now, that doesn’t need to be a bad thing, it can just mean that if a problem occurs, maybe it’s a bit more difficult to find help for your specific problem or your specific device. It could also be easy. You never really know. Then again, you also don’t know when you buy with a big company, like Tesla locking you out of your car because of an error, or Crowdstrike shutting down half of the western world, including hospitals and airports because of a failed update.

Ok stop with the explanations, i’m down! How to install GSIs?

And of course we’ll take the freshly new cooked iodéOS GSI as an example!

Disclaimer: installing a GSI may vary between devices. We are not responsible for any damages that could occur on your device as a consequence of a failed installation. For feedbacks from our community on iodéOS GSI, please read here.

Step 1: download iodéOS GSI

Step 2: Boot to fastboot mode and unlock the bootloader.

The devices supporting fastbootd also need to boot into fastbootd by:

$ fastboot reboot fastboot

Step 3: Erase and flash the GSI to the system partition:

$ fastboot erase system
$ fastboot flash system system.img

Step 4: Wipe the user data and clear the data from other necessary partitions (for example, user data and system partitions):

$ fastboot -w

Step 5: Reboot:

$ fastboot reboot

What if I don’t know how to use adb tools?

Don’t panic! We plan on adding the GSI installation to our automated installer program!

Stay tuned!

iodé white logo 367x134