An /e/OS Generic System Image (GSI) has been a long standing request from /e/OS users. In this article, we’ll share details about the official /e/OS GSI, which will be released soon.
We assume that the reader has an average knowledge of technical terms, as there are some peppered across this blog post. It would not be possible to explain all the terms and definitions, though we have attempted to keep the narrative as simple as possible.
Before we jump headlong into sharing details on the /e/OS GSI, let us first understand what a GSI or Generic System Image is.
The official definition for a GSI defines it as:
… a system image with adjusted configurations for Android devices. It’s considered a pure Android implementation with unmodified Android Open Source Project (AOSP) code that any Android device running Android 8.1 or higher can run successfully.
In layman terms, it means that a GSI is a slightly modified system image. It is made from the base Android source code. That being said there are considerable differences between a stock ROM and a GSI. Lets look at some of these.
Regarding /e/, a GSI is an easy way for users or developers to test /e/OS on potentially any recent Android smartphone with an unlockable bootloader.
(Note: These differences are specific to the /e/OS GSI. There might be exceptions on other GSI but that is not in the scope of this article.)
One term that crops up when the subject of GSI is mentioned is Project Treble. Previously whenever a new Android Operating System came along, phone manufacturers had to wait for the chipset vendors like Qualcomm to update the code for the internal hardware. This could take months or even years. By then a new Android Operating System could be available.
To address this problem Google came out with an innovative idea: separate the Operating System code from the device hardware code. This, in a sentence, is the idea behind Project Treble. Now every time an OS update comes along, the device manufacturers do not have to wait for the hardware component code to be upgraded. They are free to push the new Operating System to the end user.
In general we consider devices which came after 2018 and with Oreo or higher as the initial Operating System, are Project Treble- compatible. There could be exceptions to this rule. Let us see what more requirements need to be met.
To be able to install a GSI a device should meet certain requirements.
- should be Project Treble- compatible
- should have an unlockable bootloader
- should have been launched with Oreo or a newer OS version
- was upgraded to Oreo and modified to be Project Treble compatible
- does not have Xposed framework, SuperSu or Magisk
- has the stock ROM working on it
The list and variables goes on as technical minds modify and tweak older devices to make them compatible, but we will not go into those details here.
Now lets talk about the subject of this article, the /e/OS GSI. To say that we are introducing the /e/OS GSI would be factually incorrect. The /e/ development team had done some preliminary work on this way back in 2019. You may have read this post on the forum. After some initial work on an /e/ GSI we had to stop. The reason behind the pausing of the development, was lack of dedicated resources for the task.
At this point we would again want to remind the readers of the following points:
- The GSI is not to be used on a daily driver device
- Not all hardware components would work on it. For example the bluetooth or camera may not work with the GSI on a particular device
- Do not expect all software applications to work
- There will be no OTA updates for the /e/OS GSI at present
- Use it only for testing purpose …to get a feel of how /e/OS works
- Check if your device bootloader can be unlocked
- Check if your device is Project Treble ready
- You can check this by installing a third party app called “Treble Info”
- The app should tell you if your device is Treble compatible. If your device is not treble compatible, then you won’t be able to install a GSI
- Under the section “Required Image” please note the image name to download
- Under “Dynamic Partitions” check if you require fastboot
We have added the following resources on our documentation site to help you:
As always we look forward to your constructive comments and suggestions. You can comment in this thread or share them with us at email@example.com.
For issues and bugs please raise them in the gitlab
For more updates on the project, follow us on Mastodon!