The Android glossary
The short version of 53 systems terms. Each one connects to a chapter.
53 terms
AOSP
Android Open Source Project: the public source code and engineering project behind the Android platform.
Read the explanationADB
Android Debug Bridge: a client/server tool for communicating with a device. An ADB shell is not automatically root.
Read the explanationAddress
A number identifying a location in an address space. A process virtual address is not automatically a physical RAM or device-bus address.
Read the explanationABI
Application Binary Interface: the contract between compiled components, such as calling conventions and symbol layouts.
Read the explanationAIDL
Android Interface Definition Language: describes an interface from which Binder communication code can be generated.
Read the explanationART
Android Runtime: runs managed application code, with interpretation, compilation, and garbage collection.
Read the explanationAVB
Android Verified Boot: verifies signed metadata and protected partitions as part of a chain of trust.
Read the explanationAVC
Access Vector Cache. An SELinux AVC denial records a policy decision about a subject, object, class, and requested permission; it does not by itself identify the correct fix.
Read the explanationBinder
Android’s inter-process communication system. A call crosses a process boundary rather than sharing an ordinary object.
Read the explanationBufferQueue
A graphics producer/consumer mechanism coordinating reusable buffers and their ownership. Queueing a buffer is not proof its producing work is complete.
Read the explanationBootloader
Early software that selects, checks, and starts a boot image. Unlocking it is not the same thing as gaining root.
Read the explanationCallback
A function supplied for another component to invoke later. Ask which thread can call it and how long the referenced objects remain alive.
Read the explanationCompiler
A program that translates source code into another form, such as machine-code object files. Building and running are separate steps.
Read the explanationCTS / VTS
Compatibility Test Suite / Vendor Test Suite. They test specified platform or vendor contracts; passing selected tests is not proof of complete device compatibility.
Read the explanationCuttlefish
A configurable virtual Android device used for platform development and testing.
Read the explanationDAC
Discretionary access control: Linux ownership and mode-based access rules, alongside other security mechanisms.
Read the explanationDEX
Dalvik Executable: a bytecode format Android Runtime can execute. Java source, DEX, native machine code, and a running process are different things.
Read the explanationDMA
Direct memory access: a device transfers data under an explicit mapping and ownership protocol. A CPU pointer is not automatically a device DMA address.
Read the explanationDTB / DTBO
Compiled device-tree data / a device-tree overlay. They describe hardware or changes to that description; they are not driver executable code.
Read the explanationEnvironment variable
A named value passed to a program, such as PATH. A variable on the host is not automatically set inside an Android device shell.
Read the explanationFBE
File-based encryption: encrypts files using different keys and availability policies, including before and after user unlock.
Read the explanationFence
A synchronization object describing completion of asynchronous work. Its acquire, release, or presentation role determines what completion means.
Read the explanationGKI
Generic Kernel Image: a common Android kernel with a defined interface for compatible vendor modules.
Read the explanationGID
Group identifier: a numeric Linux group identity used in access decisions. A process can also have supplementary groups.
Read the explanationHAL
Hardware Abstraction Layer: a defined interface between Android framework components and hardware-specific implementations.
Read the explanationinit
The first userspace process, with PID 1. Android init reads configuration, responds to events, and manages services.
Read the explanationJNI
Java Native Interface: the boundary through which managed Java code and native code communicate. Crossing it does not automatically grant privilege.
Read the explanationJIT / AOT
Just-in-time / ahead-of-time compilation. ART combines execution strategies and profile guidance rather than compiling every method the same way.
Read the explanationKMI
Kernel Module Interface: the binary interface used by kernel modules. Stability is constrained to its supported kernel line.
Read the explanationKernel
The privileged core that mediates CPU time, memory, hardware access, and system calls.
Read the explanationMagisk
A third-party root framework that modifies the boot path and provides policy-controlled privileged execution.
Read the explanationMount namespace
A process-specific view of the mount tree. It can change path resolution without changing UID or rewriting the underlying base image.
Read the explanationMutex
A mutual-exclusion lock used to coordinate access to shared state. It is not a substitute for a correct lifetime or lock-order design.
Read the explanationOTA
Over-the-air update. Android update implementations can involve inactive slots or snapshots; automatic boot fallback and cryptographic anti-rollback are distinct mechanisms.
Read the explanationPartition
A named region of storage. Android also uses logical partitions whose data lives inside a larger physical partition.
Read the explanationPATH
A host or device environment variable listing directories searched for commands. The two machines have separate paths and executables.
Read the explanationPID
Process identifier: a number identifying a running process. It is not a user identity or a permanent app identifier.
Read the explanationPointer
A typed value used to refer to an object or function in a program. Its validity depends on the address space, bounds, and object lifetime.
Read the explanationProperty
An Android configuration/state interface with shared reads, authorized writes, labels, and specialized persistence/control behavior; not a host environment variable.
Read the explanationRace
Behavior that depends on the order of concurrent events. A data race is a specific unsafe form of unsynchronized conflicting memory access.
Read the explanationRoot
Conventionally Linux user ID 0. Root does not automatically override SELinux, encryption, or every other Android security boundary.
Read the explanationSaved UID
A retained set-user-ID identity involved in permitted effective-identity transitions. An ordinary app cannot acquire UID 0 merely by requesting it.
Read the explanationSELinux
Security-Enhanced Linux: mandatory access control based on labels, domains, and policy—even for processes with UID 0.
Read the explanationSoong
Android’s build system that reads Android.bp module definitions and generates build actions.
Read the explanationStandard streams
Standard input, output, and error: conventional program I/O channels. A shell can redirect or connect them using files or pipes.
Read the explanationsystem_server
The process hosting many core Java Android system services, launched as part of framework startup.
Read the explanationTreble
Android’s separation of the framework and vendor implementations through defined, versioned interfaces.
Read the explanationTCB
Trusted computing base: the components a security claim depends on. Adding a root framework changes what must be trusted.
Read the explanationUID
User identifier: a numeric Linux identity used in ownership and access decisions. Android assigns app identities using UIDs.
Read the explanationuserdebug
A platform build variant with development/debugging features, distinct from a production user build.
Read the explanationVFS
Virtual Filesystem: the Linux abstraction that dispatches generic file operations to filesystem or device implementations.
Read the explanationVINTF
Vendor Interface object: manifests and compatibility matrices describe provided interfaces and required supported contracts. A match is not a physical hardware test.
Read the explanationZygote
An Android process that initializes runtime state and forks processes that run applications or system_server.
Read the explanation