Home > ROMs > Custom ROMs

arm64/a64/bgn/bvn/bgs/vndklite: Which GSI to Download?

In this guide, we will explain to you which one of the following [or its combination] of GSI should you download among arm64/a64/bgn/bvn/bgs/vndklite. There are still quite a few devices out there that don’t have support for custom development. And the reason for the same could be aplenty. From its underlying chipset to simply the fact that it’s not popular enough among the masses, there are many which fail to catch the attention of the developers.

This is where the role of Generic System Images comes in handy. These ROMs offer the same UI/UX and features that a custom ROM has in store but with the added advantage that they are supported across all Project Treble devices [which covers near about all Android devices]. While flashing these GSIs are a tad bit complicated but nowadays even downloading them is proving to be a tough nut to crack.

No, not because of the bandwidth availability, but just the sheer combination of GSI ROMs available at our disposal. With the likes of arm64/a64/bgn/bvn/bgs/vndklite, it really becomes quite a challenging decision to verify the compatibility and hence mold the decision as to which ROM should a user download. Well, you could now put all these doubts to rest as this guide is here to help you out. Follow along.

arm64/a64/bgn/bvn/bgs/vndklite: Which GSI to Download?

vndklite GSI

The naming convention of a GSI ROM usually follows the below pattern. Before explaining each of the below terms, we would recommend you download and install the Treble Check app from Play Store as it will act as our reference point.

{arm|a64|arm64}_{a|b}{v|g}{N|S}-{vndklite|secure|personal}

arm|a64|arm64

First off, scroll to the CPU Architecture section and check out its value. The three architectures are: arm which is ARM 32-bit (but has been deprecated since Android 12), a64: ARM 32-bit with 64-bit binder [which only a few older devices have], and arm64: ARM 64-bit [which will be present across most of the devices]. In our case, it is 64-bit ARM or arm64.

vndklite GSI

a|b

Next up, comes the a|b. So refer to the System-as-root section. If it says YES, then your device is AB, but for the sake of convenience, it will take the b keyword from the naming convention. On the other hand, if it says NO, then your device is A-only and it will pick up the ‘a’ keyword [it has been deprecated since Android 12]. In our case, it says YES next to System-as-root, so we will be going ahead with ‘b‘.

vndklite GSI

v|g

Then comes v|g. Here v stands for Vanilla, which means no GApps [Google Apps, packages, services, and framework]. Whereas G signifies that the GSI comes in-built with Google Apps. It’s a completely personal choice, I usually prefer Google Apps, so I will opt for the ‘g‘ build.

N|S

Next up, is the N|S. N signifies No SuperUser, in other words, a non-rooted stock GSI ROM whereas S signifies that the GSI comes in-built with SuprUser for root. Even though I prefer to root my GSI, however, I usually download the N version because I prefer to manually root it instead of getting hold of the built-in SuperUser. As before, it’s completely dependent on your personal preference.

vndklite|secure|personal

Finally, you’ll have to choose between vndklite|secure|personal. First off, go to the Treble Check app and check out the value next to Project Treble, it should tell you whether your device is VNDK supported or not. In technical terms, “vndklite” is for VNDKLite devices or for read-writeable systems on non-vndklite devices.

vndklite GSI

Next up is “secure”, in which the superuser has been removed and it gives you a much better chance of passing the SafetyNet Test [though you have the option of manually passing the safetynet test as well]. Finally, in “personal”, you’ll get some personal mods of developers, mostly for their reference.

In my case, I opt for a ROM in which neither of the three parameters is present. But if that is not an option, then I opt for the vndklite build [obviously verify that your device is vndk supported]. I don’t go for secure because if required, I would prefer to manually pass the SafetyNet test. And for personal, let’s leave that for the developers!

Should I Download vndklite or Non vndklite GSI ROM?

This is perhaps the most widely asked query, so let’s put it to rest right away. All you need to do is download and install the Treble Info app from the Play Store. Then launch it, go to the Details tab, and check out the value under Linker Namespace Isolation. If it says that VNDK is not in light mode, then you will have to download the Non-VNDKLite GSI ROM. On the other hand, if it states that VNDK is in light mode, then download the VNDKLite version of GSI ROM.

vndklite gsi rom

Diagrammatic Explanation

The below diagram courtesy of the popular developer Andy Yan should help you understand the entire naming convention in a much easier and simplified manner.

{arm|a64|arm64}_{a|b}{v|g}{N|S}-{vndklite|secure|personal}
|               |    |    |     |
|               |    |    |     vndklite: For VNDKLite devices,
|               |    |    |               or for read-writeable /system on regular devices
|               |    |    |     secure: Superuser removed and system props spoofed,
|               |    |    |             for better chances of passing SafetyNet
|               |    |    |     personal: With personal mods, for reference
|               |    |    |
|               |    |    N: No Superuser
|               |    |    S: *Built* with PHH Superuser (app needed)
|               |    |    (Z): *Built* with eremitein's Dynamic Superuser (not offered here)
|               |    |
|               |    v: Vanilla, i.e. no GAPPS
|               |    g: With regular GAPPS
|               |    o: With Android Go GAPPS
|               |    (f): With built-in MicroG and FLOSS replacements of GAPPS (not offered here)
|               |
|               a: "A-only", i.e. system-as-system (deprecated since Android 12)
|               b: "AB", i.e. system-as-root
|
arm: ARM 32-bit (deprecated since Android 12)
a64: ARM 32-bit with 64-bit binder
arm64: ARM 64-bit

My Personal Preference

So depending on my device specification and the reasoning listed above, I choose the following GSI ROM: arm64bgN. One example of such a ROM could be lineage-20.0-20230622-UNOFFICIAL-arm64_bgN.img.xz. [Note: You’ll have to extract this xz file via 7-ZIP to get the IUMG file which could then be flashed to the system partition on your device].

vndklite GSI

So with this, we hope you would have got a perfect idea as to which GSI ROM should you download among arm64/a64/bgn/bvn/bgs/vndklite. If you have any queries concerning the aforementioned steps, do let us know in the comments. We will get back to you with a solution at the earliest.


Share:
  • Hello,gentlemen.
    I have some questions about which gsi my phone okay to flash.
    1. my phone is A-only, but it have System-as-root, so i need A-only gsi or b gsi
    2. My phone is VNDK is not in light mode, so what is the gsi name?
    Is it like”OctaviOS-v2.9-arm64_bgN-20210918-Official.img.xz
    Modified” without the “ndklite”word or the name need other word
    Thank you so much, wish you.

    • Sadique Hassan

      1. For System as Root, you’ll have to download B GSI.
      2. Download the GSI which does not have vndk in its name.
      3. OctaviOS-v2.9-arm64_bgN-20210918-Official.img.xz looks compatible for your device, based on the information provided.