Hi everyone!
When selecting a GSI (Generic System Image), you may encounter several packages that look quite similar, often with long and confusing names made up of codes and abbreviations.
To help you quickly decode these names and pick the right version for your needs, I’ve prepared this simple guide.
Start by reviewing the chart below to get a clear overview of how package names are structured and what the various components mean.
Then, check out the practical examples to see how to interpret package names and understand exactly what each one offers.
Guide to Decoding Package Names
Structure of the Package Name
|-{arm|a64|arm64}_{a|b}{v|g}{N|S}-{signed|vndklite|personal}
| | | | |
| | | | signed: Signed with maintainers keys
| | | | vndklite: For VNDKLite devices,
| | | | or for writeable /system on regular devices
| | | | personal: With personal mods, for reference
| | | | (secure): Superuser removed and system props spoofed
| | | | (not offered here)
| | | |
| | | N: No Superuser
| | | S: With PHH Superuser
| | | (Z): With Dynamic Superuser (not offered here)
| | |
| | v: Vanilla, i.e. no GAPPS
| | g: With regular GAPPS
| | o: With Android Go GAPPS
| | (f): With MicroG and FLOSS replacements of GAPPS
| | (not offered here)
| |
| a: "A-only", i.e. system-as-system (deprecated)
| b: "AB", i.e. system-as-root
|
arm: ARM 32-bit (deprecated)
a64: ARM 32-bit with 64-bit binder
arm64: ARM 64-bit
The package name describes the OS version based on several key attributes:
1. Architecture Type
arm
: 32-bit (deprecated).a64
: 32-bit with 64-bit binder support.arm64
: 64-bit, commonly used in modern devices.
2. Installation Configuration
a
: “A-only” — older installation method (deprecated).b
: “AB” — modern configuration with seamless updates.
3. Version Type
v
: Vanilla — clean version without Google apps (GAPPS).g
: Includes standard Google apps (GAPPS).o
: GAPPS optimized for Android Go.
4. Root Permissions
N
: No Superuser (root access disabled).S
: Includes PHH Superuser (root access enabled).
5. Additional Attributes
signed
: Signed with developer keys for added security.vndklite
: Optimized for devices with VNDKLite or writable/system
partitions.personal
: A custom version with developer modifications.
Examples of Package Names
Example 1: arm64_bvs-signed
arm64
: 64-bit architecture, suitable for modern devices.b
: “AB” configuration with seamless updates.v
: Vanilla version — no Google apps included.s
: Includes PHH Superuser (root access enabled).signed
: Signed package, ensuring security and reliability.
Example 2: a64_avN-vndklite
a64
: 32-bit architecture with 64-bit binder support, designed for older devices.a
: “A-only” installation configuration (deprecated).v
: Vanilla version — no Google apps included.N
: No root access (Superuser disabled).vndklite
: Compatible with devices requiring VNDKLite or writable/system
.
Example 3: bgn
b
: “AB” configuration.g
: Includes standard Google apps (GAPPS).n
: No root access (Superuser disabled).
Summary
Package names are constructed from short codes that provide all the essential information about the version:
- Architecture: Determines compatibility with your device.
- Installation Method: Indicates how the system is installed.
- Features: Includes details like GAPPS presence or root permissions.
- Customizations: Notes any special optimizations or developer modifications.
Hope this explains it all!