Originally written by Amit Kumar, updated by Dibyajyoti Kabi. First published May 16, 2019. Updated October 24, 2026.
To install a GSI on Android, unlock the bootloader, check that your phone supports Treble with adb, download the GSI that matches your CPU, then flash it with fastboot: erase system, flash system.img, wipe data and flash vbmeta with verification disabled. Your phone must have launched with Android 9 or later.
This post first covered the Android Q GSI back in 2019. Google now publishes GSIs for every new Android release, so I’ve turned it into a general guide that works with whatever version is current.
Key points
- A GSI is a plain AOSP build of Android that runs on any phone that fully supports Project Treble.
- Google says the phone should have launched with Android 9 or higher. Phones upgraded to Android 9 may or may not work.
- You need an unlocked bootloader, and unlocking wipes the phone.
- The GSI has to match your CPU architecture, which is arm64 on almost every modern phone.
- A GSI can’t be rolled back by itself. Keep your phone’s stock firmware ready before you start.
What is a GSI on Android?
A generic system image, or GSI, is a system partition built straight from the Android Open Source Project. It runs on top of your phone’s own vendor partition thanks to Project Treble, which Google added in Android 8.0. That lets you try a new Android version on a phone whose maker hasn’t released it yet.
Google keeps the official details on its GSI page for developers. The GSI is meant for testing apps and builds, so expect missing features like a working camera app, Samsung or Xiaomi extras, or VoLTE on some phones.
Can my phone run a GSI?
Your phone can run a GSI if Treble is enabled, the bootloader can be unlocked and it launched with Android 9 or newer. You can check Treble and the CPU type with two adb commands. If the Treble check returns false, stop here, because a GSI won’t boot.
- Turn on USB debugging. My guide on enabling Developer options and USB debugging shows you how.
- Install ADB and Fastboot on your PC. You can use Minimal ADB and Fastboot or Google’s Platform Tools.
- Connect the phone and run this to check Treble:
adb shell getprop ro.treble.enabled
- Run this to check the CPU architecture:
adb shell getprop ro.product.cpu.abi
If the first command prints true and the second prints arm64-v8a, you need the arm64 GSI.
Where do I download the official GSI?
Download the GSI from Google’s GSI release page. It lists builds for arm64 and x86_64, with and without Google apps. Older Android 10 to 13 GSIs without Google apps are on the Android CI site. Unzip the file and you’ll get system.img and usually vbmeta.img.
| What you see from the adb check | GSI to download |
|---|---|
| arm64-v8a | arm64 |
| x86_64 | x86_64 |
| ro.treble.enabled is false | None, your phone can’t run a GSI |
If your download has no vbmeta.img, Google links a separate one on the GSI page.
What do I need before I flash a GSI?
You need an unlocked bootloader, a full backup, the stock firmware for your phone and a PC with fastboot. Flashing a GSI wipes all your data, and the only way back is to reflash the stock firmware with your phone maker’s tools.
- Back up your data. My guide on backing up Android without root covers it.
- Download your phone’s stock firmware so you can go back later.
- Unlock the bootloader with your phone maker’s steps.
- Charge the phone to at least 50 percent.
- Keep the GSI’s system.img and vbmeta.img in the same folder as fastboot.
How do I flash a GSI with fastboot?
Reboot into fastbootd, erase the system partition, flash system.img, wipe data, go back to the bootloader, flash vbmeta with verification off and reboot. These are the general steps from the Android source GSI page. Check your phone maker’s steps too, because some phones differ.
- Connect the phone and reboot it to the bootloader:
adb reboot bootloader
- Switch to fastbootd, the userspace fastboot that newer phones use for system partitions:
fastboot reboot fastboot
- Erase the system partition:
fastboot erase system
- Flash the GSI:
fastboot flash system system.img
- Wipe user data:
fastboot -w
- Go back to the bootloader:
fastboot reboot-bootloader
- Flash vbmeta with verification disabled:
fastboot --disable-verification flash vbmeta vbmeta.img
- Reboot the phone:
fastboot reboot
The first boot can take several minutes. Leave the phone alone until you see the setup screen.
What if flashing the GSI fails with a size error?
On Android 10 and later, the system partition is dynamic and may be too small for the GSI. Google suggests deleting the product partition to make room, then flashing the system image again. On phones with A/B slots, use the slot name your phone reports.
fastboot delete-logical-partition product_a
Can I try a GSI without wiping my phone?
Yes, on phones running Android 10 or later that support Dynamic System Updates. DSU boots the GSI from a temporary image while your normal system stays untouched. You still need an unlocked bootloader. Pixel 3 and newer support it. Google explains it on its Dynamic System Updates page.
Frequently asked questions
Is a GSI the same as a custom ROM?
No. A GSI is plain Android from Google, built to test Treble support. Custom ROMs add features and fixes for specific phones. Some community GSIs, like phhusson’s builds, sit in between.
Will a GSI keep my phone’s camera features?
Usually not. Camera tweaks, Samsung or Xiaomi apps and some hardware features come from the maker’s system software, which a GSI replaces.
How do I go back to stock?
Flash your phone’s full stock firmware with the official tool, like Odin for Samsung or Mi Flash for Xiaomi. A GSI can’t be rolled back on its own.
Related guides
- How to enable Developer options, USB debugging and OEM unlock
- Download Minimal ADB and Fastboot
- How to back up your Android phone without root
That’s it. A GSI is a great way to try the newest Android on a phone that will never get it officially, as long as you have a way back.
If the adb checks gave you something odd or your phone won’t boot after flashing, leave a comment with your phone model and the Android version it launched with, and I’ll help you out.



