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 [...] is basically the mobile OS
I'd build if I wanted to build a mobile OS."
Drew DeVault,
FLOSS pioneer and creator of Sourcehut and Sway
"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."
Hackaday,
online magazine and defenders of the original meaning of "Hacking"
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) are
optional and you are asked whether you want to include them in your
installation.