chijure
ES EN

Glossary

Technical terms used in the articles: Android, kernel, USB, memory and boot. Each article links to this glossary the first time it uses a term.

78 terms

A

ADB

Android Debug Bridge: a command-line tool to talk to a phone over USB or the network. It copies files, opens a shell and installs apps.

See also: adb sideload, Recovery

adb sideload

Installing a zip by sending it from the PC to the recovery over adb, without copying it to the phone first.

See also: ADB, FUSE, TWRP

AMSS

The modem firmware of Qualcomm MSM chips. It runs on its own processor and, if Android sends it something wrong, resets the whole chip without leaving any log.

See also: ONCRPC, Watchdog

APX

Low-level recovery mode on NVIDIA Tegra processors (including the Tegra 4i). Entered by holding the volume keys while plugging in USB; the chip boots with no firmware of its own and waits for a tool like nvflash to upload one over USB.

See also: nvflash, BCT

ATAG

List of parameters (memory, command line, boot mode, logo address…) that the bootloader hands to the kernel at boot on ARM processors.

See also: Bootloader, LK (Little Kernel)

B

BCB

Boot Control Block: an area of the misc partition where Android and the recovery leave each other commands, such as “boot into recovery next time”.

See also: Recovery

BCT

Boot Configuration Table: a binary block that tells the Tegra how its RAM is wired and where each partition sits. nvflash needs it to talk to the chip, and re-signs it every time it writes something.

See also: APX, nvflash, RBL

Boot partition

Flash partition that holds the kernel and ramdisk Android boots with. It is separate from the recovery partition.

See also: Ramdisk, Recovery, Kernel

Bootloader

The first program that runs when the phone is switched on: it sets up the basics, loads the kernel and hands over to it.

See also: LK (Little Kernel), Preloader, ATAG

bpp (bits per pixel)

Colour depth of an image. 16 bpp uses 2 bytes per pixel (RGB565); 32 bpp uses 4 (8 bits per channel plus alpha).

See also: Framebuffer, VRAM

C

CCCI

Interface between the application processor and the modem on MediaTek chips. On Android it is loaded as kernel modules.

See also: MT6572, Kernel

CyanogenMod (CM)

Community ROM built from Android’s open source code, now discontinued (LineageOS continues it). CM7 is Android 2.3 and CM10 is Android 4.1/4.2.

See also: ROM, Gingerbread (Android 2.3)

D

debugfs

Virtual kernel filesystem (at /sys/kernel/debug) that exposes debugging settings and data. For OTG it is used to force host mode.

See also: Kernel, USB host mode

Device tree

In the ROM world, the folder holding one model’s configuration: partitions, init.rc, boot files. It is not the kernel’s binary device tree (DTB).

See also: Donor tree, ROM

dmesg

Command that prints the kernel message log. It is the first tool for diagnosing hardware or boot failures.

See also: Kernel, last_kmsg

Donor tree

Kernel or source tree of another model with the same processor, used as a base when the source for your own model is not available.

See also: Kernel, Stock, GPL

DSI and DBI

Two interfaces the processor uses to send the image to the panel. DSI is serial and fast; DBI is parallel and simpler. The TE (tearing effect) signal says when it is safe to refresh without tearing.

See also: ESD recovery, Framebuffer

E

EBT

NVIDIA Tegra’s Early Boot Loader: the bootloader partition that holds the signature check a custom recovery has to get past.

See also: RBL, APX

EHCI

Enhanced Host Controller Interface: the USB 2.0 host controller standard. The kernel implements it as a driver.

See also: USB host mode, USB OTG, PHY

eMMC

Flash memory with a built-in controller that shows up as a disk (mmcblk). It is not the same as raw NAND, which the kernel itself manages.

See also: NAND, MTD

ESD recovery

Display driver routine that re-initialises the panel if it detects it locked up after an electrostatic discharge.

See also: DSI and DBI

F

fastboot

Bootloader mode that lets you write partitions from a PC. Not every phone exposes it: the Y220, for example, does not.

See also: Bootloader, SP Flash Tool

Framebuffer

Region of video memory whose contents are shown on screen. The kernel exposes it as /dev/graphics/fb0.

See also: VRAM, bpp (bits per pixel), Overlay (display layer)

FunctionFS

Kernel mechanism that lets a user-space program implement a USB function (such as adb or MTP). Modern Android uses it and old kernels lack it.

See also: ADB, MTP

FUSE

Filesystem in Userspace: lets a user-space program provide a filesystem. TWRP needs it for adb sideload.

See also: adb sideload, TWRP

G

Gingerbread (Android 2.3)

Android version 2.3, from 2010–2011. Its kernels and tools are old, which is why many modern solutions do not apply.

See also: CyanogenMod (CM), Kernel

GPIO

General-purpose pin that software can read or write: keys, LEDs, reset lines.

See also: I2C

GPL

The Linux licence. Anyone who distributes a binary containing the kernel must offer the source to whoever receives it, although not every vendor publishes it.

See also: Kernel, Donor tree

gralloc

Android module that allocates the graphics buffers shared between display, camera and GPU.

See also: Framebuffer, Mali and UMP

H

HAL (hardware abstraction layer)

The piece of Android that translates between the system’s generic API and a phone’s actual hardware (camera, sensors, radio). Each vendor or port writes its own.

See also: Kernel, Donor tree

hostapd

Program that turns the phone’s Wi-Fi into an access point, the basis of the Wi-Fi hotspot.

See also: Tethering, wpa_supplicant, nl80211 and cfg80211

I

I2C

Two-wire serial bus used to talk to sensors and controllers: touch, accelerometer, camera.

See also: GPIO

ID pin

Pin 4 of the micro-USB. An OTG cable grounds it to tell the phone it should act as a host.

See also: USB OTG, USB host mode, VBUS

ION

The Linux kernel’s allocator for shared memory used at once by the CPU, GPU, camera and video codec. On older Qualcomm phones it replaced PMEM.

See also: PMEM, gralloc

IPv6

Version 6 of the IP protocol. Android 4.2 expects /proc/net/if_inet6 and fails if the kernel has it turned off.

See also: Netfilter, NAT

ISP

Image signal processor: turns the camera sensor output into a photo (JPEG) or a preview.

See also: YUV, UYVY and YUYV, Overlay (display layer)

K

Kernel

The core of the operating system (Linux on Android): it manages hardware, memory and processes.

See also: Boot partition, GPL

Kernel panic

Unrecoverable kernel error: the kernel stops and the device reboots. Its message is kept in last_kmsg.

See also: last_kmsg, Watchdog

L

last_kmsg

Copy of the kernel log from before the last abrupt reboot or panic, available at /proc/last_kmsg. Essential for understanding a hang.

See also: dmesg, Kernel panic

LK (Little Kernel)

Bootloader used by MediaTek and Qualcomm on Android. It runs after the first-stage loader (on MediaTek, the preloader), brings up the display, draws the logo and loads the kernel.

See also: Bootloader, ATAG, Preloader

M

M4U

MediaTek memory management unit for multimedia peripherals (display, camera). The addresses it assigns are called MVAs.

See also: Overlay (display layer), Framebuffer

Mali and UMP

Mali is ARM’s GPU family; UMP is the module that manages the memory it shares with the rest of the system.

See also: gralloc, Framebuffer

MT6572

Dual-core Cortex-A7 MediaTek processor used in low-end phones such as the Huawei Y220.

See also: NAND, CCCI

MTD

Memory Technology Device: the Linux layer for raw flash memory. Each partition shows up as /dev/mtd/mtdN.

See also: NAND, UBIFS

MTP

Media Transfer Protocol: the mode in which a phone presents itself to a PC to copy files, without exposing storage as a disk.

See also: USB mass storage (UMS), FunctionFS

N

NAND

Flash storage memory without its own controller: the kernel handles bad blocks and wear levelling.

See also: MTD, UBIFS, eMMC

NAT

Network address translation: lets several devices share the phone’s connection when tethering.

See also: Netfilter, Tethering

Netfilter

Kernel framework for filtering and translating packets. iptables and NAT depend on it.

See also: NAT, IPv6, Tethering

nvflash

NVIDIA’s official tool to write partitions on a Tegra over USB in APX mode. Unlike writing the sectors by hand, it also updates the BCT’s and the bootloader’s integrity metadata.

See also: APX, BCT

NVRAM

On MediaTek, a partition with each device’s unique data, such as the IMEI and radio calibration.

See also: MT6572, MTD

O

ONCRPC

Remote procedure calls an application processor and the modem of a Qualcomm MSM chip use to ask each other for things (time, audio, GPS, carrier data). Each service is a program number.

See also: AMSS, Kernel

Overlay (display layer)

Hardware layer of the display that shows an image (camera preview, video) without going through the GPU.

See also: Framebuffer, M4U, YUV, UYVY and YUYV

P

PHY

Physical-layer circuit of an interface: in USB, the one that handles the D+ and D− electrical signals. Many OTG faults are measured here.

See also: USB OTG, Pull-up and pull-down, SE0, EHCI

PMEM

Contiguous memory pool that older Qualcomm kernels (2.6.x) gave to display, camera and audio. HALs from that era expect its /dev/pmem* devices.

See also: ION, HAL (hardware abstraction layer)

PMIC

Power management chip: regulators, battery charging, the power button.

See also: GPIO

Preloader

The first MediaTek code to run at power-on, before the LK. It is also how SP Flash Tool writes to a device.

See also: LK (Little Kernel), Bootloader, SP Flash Tool

Pull-up and pull-down

Resistors that set the level of a line. A USB device puts a pull-up on D+ (or D−) to announce itself; the host has pull-downs on both.

See also: SE0, PHY, USB OTG

R

Ramdisk

Small filesystem loaded into RAM at boot that contains init and the minimum needed to mount the system.

See also: Boot partition, Kernel

RBL

NVIDIA Tegra’s Recovery Boot Loader: the fallback stage the chip falls back to if the EBT fails to boot. It is usually left untouched when patching the EBT, to keep that safety net.

See also: EBT, APX

Recovery

A separate boot mode, with its own partition, for maintenance: installing zip files, backups and wiping data.

See also: TWRP, Boot partition, BCB

ROM

A complete Android system built from source, usually by the community, to replace the stock one.

See also: CyanogenMod (CM), Stock, Device tree

S

SE0

USB line state in which D+ and D− are both low. It is what the port sees when no device is connected.

See also: Pull-up and pull-down, PHY

SLUB

The kernel memory allocator. With SLUB_DEBUG_ON it enables costly checks on every cache.

See also: Kernel, zram

SP Flash Tool

MediaTek tool for writing firmware through the preloader. It is the way out when a phone no longer boots.

See also: Preloader, fastboot

Stock

The factory firmware: the one the phone ships with. It is the reference for comparing the behaviour of your own ROM.

See also: ROM, Donor tree

T

Tethering

Sharing the phone’s mobile connection with other devices over USB, Wi-Fi or Bluetooth.

See also: NAT, Netfilter, hostapd

TWRP

Team Win Recovery Project: a touch-driven recovery that installs zips, makes backups and restores partitions.

See also: Recovery, adb sideload, BCB

U

UBIFS

Filesystem for raw NAND flash, running on top of UBI, a volume management layer. The Y220’s system, data and cache use it.

See also: NAND, MTD

USB host mode

The phone acts as the “PC”: it drives and powers whatever is connected (flash drive, mouse). The opposite is peripheral mode, the usual one when plugged into a PC.

See also: USB OTG, ID pin, VBUS, EHCI

USB mass storage (UMS)

Mode in which the phone shows up on a PC as a disk, exposing the microSD. The alternative is MTP.

See also: MTP

USB OTG

On-The-Go: lets a phone act as a USB host to connect flash drives, mice and keyboards, using a special adapter.

See also: USB host mode, ID pin, VBUS, PHY

V

VBUS

The 5 V line of USB. In host mode someone has to power it: the phone or an external supply.

See also: USB OTG, USB host mode, ID pin

vermagic and MODVERSIONS

Mechanisms the kernel uses to check that a module was built for it. Without MODVERSIONS, a module from another build with the same vermagic still loads and can cause a panic.

See also: Kernel, Kernel panic

VRAM

Memory reserved for the framebuffer. Its size depends on the resolution and the bits per pixel.

See also: Framebuffer, bpp (bits per pixel)

W

Watchdog

A timer that reboots the device if the system stops “feeding” it, a sign that it hung.

See also: Kernel panic

wpa_supplicant, nl80211 and cfg80211

wpa_supplicant authenticates to Wi-Fi networks. It talks to the driver over WEXT (the old interface) or over nl80211 on top of cfg80211 (the modern one). Each version expects one of them.

See also: hostapd, Tethering

Y

YUV, UYVY and YUYV

Image formats that separate brightness (Y) from colour (U and V). UYVY and YUYV carry the same data in a different byte order, and mixing them up tints images green and magenta.

See also: ISP, Overlay (display layer)

Z

zram

A compressed virtual disk in RAM used as swap: it gives more usable memory on devices with little RAM.

See also: SLUB, Kernel