When you own an Android device, you become part of an open-source community. Android’s software is open-source, which means that anyone can go in, modify the software code, repackage it, and open it up for downloads by other users. Because of this, the modding world surrounding Android is enthusiastic and creative.
Hobbyist and professional developers alike are oftentimes the ones to create patches and improvements for applications and software way before the official Android development team (such was the case with Google Pixel’s 4XL green display tint and Samsung’s DeX to Linux issues). With community forums like XDA, which is like a developer fan page for Android, it’s very easy to explore and find these homegrown improvements in the form of Custom ROMs and GSIs.
What is a Custom ROM?
Your Android smartphone is pre-installed with a stock ROM that determines performance and available features. ROM stands for Read-Only Memory and is firmware. Custom ROMs are developed by the Android open-source community and can unlock new features and improve the way the OS functions on your Android device. Most of these custom ROMs are free.
What is GSI?
GSI stands for generic system imaging. GSIs ultimately help you test out your applications on devices that do not officially support your application. They are similar enough to ROMs that you can download either a ROM or GSI that gives you a particular enhancement to your Android device, but there is a major difference.
ROM versus GSI
A ROM is developed for a specific Android device. GSI is more of a cross-device application. There is no guarantee a GSI will work without bugs across all Android software, nor are GSI developers too on top of fixing these bugs. There’s no harm in flashing a GSI over a ROM, especially if there isn’t a ROM available for your device. Just make sure that your phone is compliant with Project Treble and has an unlockable bootloader. By unlocking the bootloader (the software that is loaded every time you turn on your phone), you can conduct a factory reset.
A ROM, generally speaking, is the more stable of the two.
Install a Custom ROM
Although you may be hesitant to take this new step with your Android OS, downloading and installing, also called flashing, a custom ROM is not that difficult. Don’t be fooled, though. You can mess up your phone royally if you don’t follow the instructions. But like setting up IKEA furniture, if you follow the manual, your couch — or phone in this case — won’t break when you sit down on it.
To download a custom ROM, your phone will also need:
- Unlockable bootloader
- GApps (Google Apps)
- Custom Recovery
Back up your data! If I could repeat this command for an entire paragraph, I would. Do not sacrifice what you have for something you do not have. As mentioned before, you can mess up your phone flashing a custom ROM. Don’t take any chances, back it up.
- Download, but do not extract, the custom ROM you want to use.
- Find the Google App that corresponds to the ROM. Save both of these to your smartphone.
- Boot your smartphone in recovery mode. The buttons may vary depending on your device. Hold down volume down + power button for a few seconds.
- Once you are at the recovery screen, select Install.
- Select Install from [wherever your zip file was saved]. This is called flashing the zip.
- You will be taken through selection steps in order to retrieve the correct zip file. Lastly, you will be asked to confirm the flash.
- Once installed, go back and clear your cache.
Install a GSI
Downloading and installing a GSI is completely device-specific. However, there are some general steps for you to get an idea of how the process flows.
Your device needs:
- Treble compliance
- An unlockable bootsystem
- A method to disable verify boot
Back up your data before proceeding.
- To download a GSI, you need to make sure your device is Treble compliant. Run the following command on ADB: getprop ro.treble.enabled. If you receive a “false” then you cannot run a GSI on your phone.
- You’ll then want to see which GSI OS your phone is compatible with. In ADB, run this prompt: cat /system/etc/ld.config.version_identifier.txt \ | grep -A 20 “\[vendor\]”. If you receive a “true,” then you can run pretty much any GSI. If it’s false, then you can only run a GSI that is the same OS as your phone.
- Turn off verify boot.
- You will need to erase your system’s current specs to flash the GSI specs.
- Reboot your device.
Before installing custom ROMs or GSIs, back up all of your data, it doesn’t matter if you’re a newbie or a pro, no level of experience will make data loss easier to deal with emotionally. Unless, of course, you’re using an Android phone intended for experimentation.