A real Linux
distribution
for phones
and other mobile devices
A real Linux distribution for phones
and other mobile devices
For Linux enthusiasts
Latest news: v22.06 SP3

About

We are sick of not receiving updates shortly after buying new phones. Sick of the walled gardens deeply integrated into Android and iOS. That's why we are developing a sustainable, privacy and security focused free software mobile OS that is modeled after traditional Linux distributions. With privilege separation in mind. Let's keep our devices useful and safe until they physically break! Where can I download the latest release? Which devices run postmarketOS? How do I port my device?

What others say

"postmarketOS revolutionizes smartphone hacking"
Drew DeVault, FLOSS pioneer and creator of Sourcehut and Sway

"[postmarketOS] is my personal favourite. It has a true stable channel where only select tested packages get updated to make sure it’s always a solid, reliable and stable experience."
Camden Bruce, creator of DahliaOS

"With the widespread move to mobile devices, users lose control over their computing devices. PostmarketOS gives us the ability to run code that we can read and modify on these devices."
Eric Evenchick, Hackaday journalist

Architecture

We avoid Android's build system entirely. Instead of building a monolithic system image for each and every device, the whole OS is divided into small packages. These same package binaries can be installed on all devices that share the same CPU architecture. Device specific parts are kept as minimal as possible, ideally there is only one device package. In practice there is often the downstream Linux kernel too, but we are replacing those with Mainline wherever possible. In the spirit of most other Linux distributions, multiple user interfaces from independent projects are packaged for postmarketOS, such as Plasma Mobile, Phosh and Sxmo.

postmarketOS is based on Alpine Linux, which is so tiny (less than 10 MB in size) that development of pmOS can be done quickly on any Linux distribution. We install Alpine in multiple chroots to cross compile packages, build and flash postmarketOS, run it in a VM with QEMU or interactively port new hardware. All with our lightweight Python program pmbootstrap, without installing anything on the host system. Writing packages is easy, by the way: as long as you know how to write shell scripts, you are good to go. We have continuous integration in place that makes sure everything builds that gets submitted to our packages repository, among other sanity checks.

The above design decisions make it feasible to keep the system up-to-date, for all devices at once! Compared to Android, it makes development more efficient and democratic: you don't need to afford a powerful and expensive PC to rebuild the entire OS. Just build the tiny part that you are interested in modifying.
Speaking of modifying, due to the free software nature of the project, you can change pretty much everything. We don't even require running proprietary Android userspace drivers. In fact all proprietary components (even the WLAN, cellular modem and bluetooth firmware) and can be excluded if building your own image with pmbootstrap.