-
Notifications
You must be signed in to change notification settings - Fork 660
Frequently Asked Questions (FAQ)
Here are some answers to the most asked questions about GSIs and Project Treble in general:
A good overview of Project Treble is provided in this XDA article by M. Rahman.
For a more technical discussion of Treble, you can listen to Episode 75 of the Android Developers Backstage podcast.
It might be a play on the Meghan Trainor song All About That Bass. That's because Project Treble is all about standardizing the base of Android; i.e. it's about standardizing the APIs that allow the Android framework to communicate with hardware components.
Use Treble Info:
Note that in order to be certified by Google, any device that launched with Android Oreo or higher must be treble-enabled. However, not all devices work properly.
You can find an updated list with supported devices here: Home.
GSI stands for Generic System Image. It's a file-system image that you flash to your device's system partition. It's generic because it accesses hardware using the new standardized hardware APIs (so it should work on any treble-enabled device).
You can find an updated list for available GSIs here: Generic System Image (GSI) list.
phh has provided "AB" and "A-only" GSIs. The terms "AB" and "A-only" (or just "A") refer to the partition style used by a device.
The AB partition style was introduced in Android N to support seamless OTA updates.
A-only, A, or non-AB refers to the legacy partition style.
If you have an AB device, then you must flash it with an AB GSI. Note that if an AB GSI works it does not mean that your phone supports seamless upgrades, and likewise, if your phone does not support seamless upgrades, it might still use AB. However, if it supports seamless upgrades, it definitely uses AB. You can check for sure using this app. The "System-as-Root" section represents A/B support.
GAPPS versions include the proprietary Google apps equivalent to Open GApps nano package (see Package Comparison) and the following additional packages:
- Google Chrome because we need a browser
- Google Messages because it implements RCS
- Google Phone because smartphones still need to be phones
GO versions include proprietary Android (Go edition) alternatives to Google apps (see here).
FLOSS versions include the following open source alternatives to GAPPS:
- phh's Superuser
- NewPipe
- Silence
- OsmAnd~
- Bromite
- Etar
- Transportr
- MuPDF viewer
- AnySoftKeyboard
- Yalp Store
- K-9 Mail
- Element
- DAVdroid
- Nextcloud
- F-Droid
Vanilla versions do not include any of the above.
<ARCH>_xyZ{-lite}
<ARCH> can either be arm, a64 or arm64
x can either be a or b
y can either be v, o, g or f
Z can be N, S, or Z
-
b = a/b
-
a = a-only
-
g = gapps
-
o = gapps-go
-
v = vanilla (no gapps included)
-
f = floss (free & open source apps instead gapps)
-
N = no superuser
-
S = superuser included
-
Z = enhanced dynamic superuzer
-
-lite = Android11 for vndklite vendors
So the most common example, "arm64_bvN" is ARM64 A/B vanilla with no superuser.
First, you must unlock your bootloader (this is a capability your device manufacturer may or may not offer to end-users).
To flash a GSI, you can use fastboot fastboot flash system <gsiname.img>
or TWRP Install > System Image
.
If you need a more detailed guide, read this article by M. Rahman.
Download and install Get ID app
- Open the app and Copy Google Service Framework Key
- Go to https://www.google.com/android/uncertified/
- Sign In and paste the copied value to it and register
- Reboot
- Reboot to recovery
adb root
adb shell 'sqlite3 /data/data/com.google.android.gsf/databases/gservices.db \
select * from main where name = \"android_id\"';
- Then register here and reboot
Follow this guide
Starting from v19 (2018-06-03), releases are now compressed with xz. Uncompress before flashing.