If you found a technical term related to this project that you had to research to understand, please add it here (alphabetically sorted).
The minimal Linux distribution which postmarketOS is based upon. Actually, pmOS only adds a few packages on top of it, and provides the installer and development environment - that is the plan, to keep following upstream as closely as possible. Alpine developers do not see their distribution as "GNU/Linux". That being said, it works a lot like a typical Desktop Linux distribution. You have your package manager, the typical shell commands, you can install typical Linux software, and so on.
The Google-modified Linux version 3.4 kernel as base for all Qualcomm devices.
One of the following:
- Android app format
- Alpine Linux package (also ends in
.apk, but totally incompatible!), which are actually gzipped tar files
- Alpine Linux package manager (apk)
Android specific format, that usually consists of the Linux kernel (in modern versions with a
dtb appended) and the
initramfs. This file gets flashed to the boot or recovery partition of the Android device.
- Some old Samsung devices:
boot.imgis just a kernel with a baked in
dtbappended (instead of appending it to the kernel, more)
The binary device tree, this is a file containing a description of the hardware in the device, since phones don't have discoverable busses like x86 platforms. These are created from dts files in the kernel repository and produce a file called
zImage-dtb for some Android kernels (older Android kernels do not generate a
dtb file at all and have hardcoded the information directly in the kernel source). In mainline kernels,
dtb files for all supported boards are created at once.
Direct Rendering Infrastructure, the modern Linux kernel API for drawing to the screen.
This is a slightly more complicated API than fbdev (and it replaces all fbdev functionality), it still provides a framebuffer but also has options to integrate hardware acceleration for 2D and 3D. All opensource fbdev drivers should be portable to a drm driver.
Full Disk Encryption, by default the rootfs created by pmbootstrap is fully encrypted with luks, preventing the phone data from being retrieved without the password if the device is turned off. This can optionally be disabled with
--no-fde for debugging purposes.
Linux framebuffer a (more or less?) deprecated API from the Linux kernel that allows drawing to the screen. Newer drivers use the DRI API instead (see above). Android devices usually have drivers for framebuffer, instead of DRI.
The proprietary software Interactive Disassembler is state of the art in the reverse engineering scene. It can be used to reverse engineer all kinds of blobs where the source code is not available, such as closed-source firmware. Disassembling is hard, and there's a high learning curve involved. It also features a decompiler, which produces (non-working) C code for better understanding.
lk (little kernel)
lk is the kernel which fastboot runs on. At least all new-ish Qualcomm devices use
lk and new-ish mediatek devices too
OpenRC is a dependency-based init for Unix-like systems. It is the default init system of Alpine Linux.
We have chosen Weston as a demo because we didn't want to use X11, as this is slowly dying. Also there's libweston, which might come in handy later (you can write your own desktop environment and inherit the hardware compatibility from weston). Weston is nice as a demo and useful at this moment of the development, but not usable as phone interface, so we'll need different desktop environments packaged sooner or later. See issue #62