On December 5, 2021, I tried postmarketOS for the first time.
postmarketOS is based on Alpine Linux. It puts a real Linux system on an Android phone, similar to Ubuntu Touch. It is not chroot, not proot, and not Android. Just plain Linux.
- Apps that opened during testing: GIMP, LibreOffice, Firefox.
- Things that did not work: Wifi, audio, Bluetooth, 3D acceleration, screen rotation
This phone is not on the official recommended list. Its status is testing, which basically means it is half-dead on arrival. Just fixing hardware drivers is already enough work.
The installation flow is to build a flashable package on the computer, then flash it on the phone with TWRP.
1. Required Tools#
- Phone: Redmi Note 5 (whyred), bootloader unlocked, Recovery is TWRP 3.5.2, all partitions wiped.
- Computer: Ubuntu 20.04 with Python 3.7, Git, and Openssl installed.
2. Build the Flashable Package#
- Install pmbootstrap on Linux:
pip3 install --user pmbootstrap
source ~/.profile- Install shell completion:
sudo apt install python3-argcomplete- Add the following to the bash shell config file
~/.bashrc:
eval "$(register-python-argcomplete3 pmbootstrap)"- During installation, pmbootstrap downloads the latest version from Gitlab, including configuration files for many devices. Initialize pmbootstrap:
pmbootstrap init
Work path: Enter #Use the default work directory (/home/user/.local/var/pmbootstrap)
Channel: edge
Vendor: xiaomi
pmbootstrap install --android-recovery-zip
Device codename: whyred
Username: User
User Interface: xfce4- Build the flashable package. By default it installs to the phone’s system partition. If there is not enough space, you can use parameters to install to another partition; check the Wiki. During the build, it asks you to create a user password. Enter it twice, then press Enter.
pmbootstrap install --android-recovery-zip
#Shut down pmbootstrap
pmbootstrap shutdown- Connect the phone to the computer, boot into TWRP, and find the generated pmos-*.zip package in the work directory. Mine was here:
~/.local/var/pmbootstrap/chroot\_buildroot\_aarch64/var/lib/postmarketos-android-recovery-installerCopy it to the phone, mount the system partition, and install it directly.
If the system partition cannot be mounted, format it as ext4 to repair the filesystem, then try again.
After installation, TWRP may show a “cannot mount system: resources are busy” warning. You can ignore it.
Reboot the phone.
3. Install Software#
The default buttons look tiny on the phone. Tap the top-left corner and go to Appearance -> Settings -> Window Scaling, then set the scale to the maximum.
When you tap an input field, the on-screen keyboard opens automatically. It feels a bit like using Termux.
At boot, WIFI cannot load the driver… so no WIFI. I followed the WIKI and shared the computer’s fiber connection to the phone over USB: https://wiki.postmarketos.org/wiki/USB_Internet
At least that gets it online.
postmarketOS uses apk as its package manager (unrelated to Android APK files). If the software you want is not available, you can only grab a deb file yourself and install it.
apk add firefox libreoffice gimpThe tested apps all opened… but hardware driver problems need to be solved before software problems are even worth discussing. Not practical yet.

