Frequently Asked Questions (FAQ) - phhusson/treble_experimentations GitHub Wiki

Here are some answers to the most asked questions about GSIs and Project Treble in general:

What is Google’s Project Treble?

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.

Why is it called "treble"?

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.

How can I check if my device is treble-enabled?

Use Treble Info:

APK

Google Play

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.

What's a GSI?

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.

What does "AB" and "A-only" mean? Should I use an "AB" GSI or an "A-only" GSI?

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.

What is the difference between FLOSS, GAPPS, GO and Vanilla?

GAPPS versions include the proprietary Google apps equivalent to Open GApps nano package (see Package Comparison) and the following additional packages:

GO versions include proprietary Android (Go edition) alternatives to Google apps (see here).

FLOSS versions include the following open source alternatives to GAPPS:

Vanilla versions do not include any of the above.

Naming conventions that some GSI builder/maintainer uses

<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.

How do I flash a GSI?

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.

How to bypass certified device after first boot?

APP Method

Download and install Get ID app

ADB method

  • 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

How to build a GSI?

Follow this guide

Why do the latest GSI packages have xz file extension? How to install it?

Starting from v19 (2018-06-03), releases are now compressed with xz. Uncompress before flashing.

⚠️ **GitHub.com Fallback** ⚠️