PostmarketOS
Free and open-source operating system for smartphones, based on Alpine Linux From Wikipedia, the free encyclopedia
postmarketOS (abbreviated as pmOS) is an operating system primarily for smartphones, based on the Alpine Linux distribution.[3][4][5][6]
![]() | |
![]() postmarketOS running Phosh | |
Developer | postmarketOS open-source community |
---|---|
OS family | Linux (Unix-like) |
Working state | Active |
Source model | Open source |
Initial release | 26 May 2017 |
Latest release | 24.12 (The One With Androids & Cameras, But It's Mainline Linux)[1] / 23 December 2024 |
Repository | |
Marketing target | Operating system replacement for Android and other mobile devices |
Available in | English, Czech, German, French, Italian, Spanish, etc. |
Update method | apk-tools (package manager) |
Package manager | apk-tools (from Alpine Linux) |
Platforms | ARM, ARM64, x86, x86-64 |
Kernel type | Monolithic (Linux) |
Default user interface | GNOME, Phosh, Sway, Sxmo[2] |
Official website | postmarketos |
postmarketOS was launched on 26 May 2017[4][7] with the source code available on GitHub before migrating to GitLab in 2018.[8] It is capable of running different X and Wayland based user interfaces, such as Plasma Mobile,[9][10] MATE, GNOME, and XFCE;[11] later updates added support for Unity8 and Phosh.[12] It is also capable of running Docker, if the device specific kernel has cgroups and relevant configs enabled.[13] The project aims to provide a ten-year lifecycle for smartphones.[14]
History
Oliver Smith started developing postmarketOS in 2016.[15]
Architecture
Unlike many other projects porting conventional Linux distributions to Android phones, postmarketOS does not use the Android build system or userspace.[16] Each phone has only one unique package, and flashable installation images are generated using the pmbootstrap
tool.[4] The project intends to support the mainline Linux kernel on all phones in the future, instead of the often outdated Android-specific fork, to reduce the potential for security exploits.[4] A few devices can boot into the mainline kernel already.[17][18] The project aims to support Android apps, originally through the use of Anbox, which was replaced by Waydroid since postmarketOS v21.12.[19][20]
Alpine Linux was chosen as the base distribution due to its low storage requirements, making it more suitable for older devices. Excluding the kernel, a base installation takes up approximately 6 MB.[21][4][22] In March 2024, the maintainers announced that postmarketOS would migrate from OpenRC to systemd as its init system for select user interfaces.[23]
State of development
Summarize
Perspective
As of 2025, it is work-in-progress software intended for power users.[24]
Features
Different tools have been published by the project, including:
pmbootstrap
,[25][26] a utility to help the process of development with cross compilation;osk-sdl
,[27][28] a virtual keyboard to allow decryption of a password during startup (on a device with full disk encryption);charging-sdl
,[29] an application contained in the initramfs to display an animation when the phone is charging while off.
Device support
As of May 2020, over two hundred devices are able to boot the operating system, including 92 with WiFi support.[30][31] This includes many smartphones and tablets that originally ran Android,[32][33] as well as some Linux-based Nokia smartphones, such as the N900[34] and N9.[35][17] After Corellium's Project Sandcastle ported the Linux kernel to some iPhone versions, postmarketOS was also seen to boot on it, although no persistent flashing is supported at the moment.[36] As of May 2021, support for wearable devices (including Google Glass and smartwatches like the LG G Watch) has been improved through integration with the AsteroidOS user interface and work on mainline kernel for the LG G Watch R.[37]
In 2018, no devices were yet able to make phone calls with postmarketOS,[38] although significant efforts were being made in this regard. By 2020, a number of devices were fully or mostly supported, including for phone calls, SMS messages and mobile data. These included the BQ Aquaris X5, Librem 5, Nokia N900, Motorola Moto G4 Play, Samsung Galaxy A3 (2015), Samsung Galaxy A5 (2015), and Wileyfox Swift.[39]
Furthermore, the PinePhone launched in 2020, with postmarketOS Community Edition as a first-party operating system.[40]
Porting to a new device
The development process to make a new device compatible with the operating system consists of creating a phone-specific package using the pmbootstrap
tool. For that, the use of the Linux kernel from the device's original manufacturer is often necessary. The source code of the original kernel is often made available by compliance with the requirements of the GPLv2 license, but some drivers necessary for the operation of the device may not be available, and must, therefore, be recreated.[41][25] Examples include GPU drivers such as Lima, which has a proprietary equivalent in userspace on Android that is not subject to the GPLv2 requirements.
Camera support
Only the PinePhone[42] and few others devices seems to have the camera working. It's in WIP for the Fairphone.
Voice Over LTE (VoLTE) and Voice over Wifi (Vowifi) support
Gallery
- Phosh running on the Asus ZenFone Max
- Plasma Mobile on the Nexus 5
- Hildon on the Nexus 7 (2013)
- LuneOS UI running on a generic x86 tablet
- Sxmo on the BQ Aquaris X5
- Plasma Mobile on the Xiaomi POCO X3 NFC
Supported Device List
Summarize
Perspective
postmarketOS is supported by various Devices. [44]
Code | Meaning |
---|---|
Y | Yes, fully implemented |
P | Partially implemented |
N | Not working yet |
Untested | |
- | Not applicable -- device does not have feature |
Device | Codename | Architecture | Release year | Category | Chipset | CPU | GPU | Type | USB Net | Flashing | Touch | Screen | WiFi | FDE | Battery | 3D | IMU | Audio | Bluetooth | Camera | GPS | Mobile Data | SMS | Calls | USB-OTG | NFC |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
QEMU amd64 | qemu-amd64 | x86_64 | 2003 | Main | QEMU Standard PC | QEMU Virtual | Virgil 3D | Emulator | Y | Y | - | Y | - | - | - | - | - | - | - | - | - | |||||
QEMU aarch64 | qemu-aarch64 | aarch64 | 2003 | Main | QEMU ARM Virtual Machine | QEMU ARM Cortex-A57 | Virgil 3D | Emulator | Y | Y | - | Y | - | - | - | - | - | - | - | - | - | |||||
QEMU ppc64le | qemu-ppc64le | ppc64le | 2003 | Main | QEMU PPC64 Virtual Machine | QEMU POWER10 | Virgil 3D | Emulator | Y | Y | - | Y | - | - | - | - | - | - | - | - | - | |||||
QEMU riscv64 | qemu-riscv64 | riscv64 | 2003 | Main | QEMU RISCV64 Virtual Machine | QEMU | Virgil 3D | Emulator | Y | Y | - | Y | - | - | - | - | - | - | - | - | - | |||||
Xiaomi Redmi Note 4 / 4X | xiaomi-mido | aarch64 | 2017 | Community | Qualcomm MSM8953 Snapdragon 625 (14 nm) | Octa-core 2.0 GHz Cortex-A53 | Adreno 506 | Smartphone | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | P | P | P | Y | Y | Y | - |
Xiaomi Redmi S2 / Redmi Y2 | xiaomi-ysl | aarch64 | 2018 | Community | Qualcomm MSM8953 Snapdragon 625 (14 nm) | Octa-core 2.0 GHz Cortex-A53 | Adreno 506 | Smartphone | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | P | P | P | Y | Y | Y | - |
Xiaomi Redmi 5 Plus | xiaomi-vince | aarch64 | 2017 | Community | Qualcomm MSM8953 Snapdragon 625 (14 nm) | Octa-core 2.0 GHz Cortex-A53 | Adreno 506 | Smartphone | Y | Y | Y | Y | Y | Y | Y | Y | Y | P | Y | P | P | P | Y | P | Y | - |
Xiaomi Redmi 4 Prime | xiaomi-markw | aarch64 | 2016 | Community | Qualcomm MSM8953 Snapdragon 625 (14 nm) | Octa-core 2.0 GHz Cortex-A53 | Adreno 506 | Smartphone | Y | Y | Y | Y | Y | Y | Y | Y | Y | P | Y | P | P | P | Y | Y | Y | - |
Xiaomi Redmi 2 | xiaomi-wt88047 | aarch64 | 2015 | Community | Qualcomm MSM8916 Snapdragon 410 (28 nm) | Quad-core 1.2 GHz Cortex-A53 | Adreno 306 | Smartphone | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | N | Y | Y | Y | Y | Y | - |
Xiaomi Pocophone F1 / POCO F1 | xiaomi-beryllium | aarch64 | 2018 | Community | Qualcomm SDM845 Snapdragon 845 (10 nm) | Octa-core (4x2.8 GHz Kryo 385 Gold & 4x1.8 GHz Kryo 385 Silver) | Adreno 630 | Smartphone | Y | Y | Y | Y | P | Y | P | Y | Y | Y | Y | P | P | P | P | P | N | - |
Xiaomi POCO X3 NFC | xiaomi-surya | aarch64 | 2020 | Community | Qualcomm SM7150-AC Snapdragon 732G (8 nm) | Octa-core (2x2.3 GHz Kryo 470 Gold & 6x1.8 GHz Kryo 470 Silver) | Adreno 618 | Smartphone | Y | Y | Y | Y | Y | Y | P | Y | Y | P | Y | N | N | Y | Y | Y | Y | Y |
Xiaomi Mi Note 2 | xiaomi-scorpio | aarch64 | 2016 | Community | Qualcomm MSM8996 Snapdragon 821 (14 nm) | Quad-core (2x2.35 GHz Kryo & 2x1.6 GHz Kryo) | Adreno 530 | Smartphone | Y | Y | Y | Y | Y | P | P | Y | N | P | Y | P | N | N | P | N | Y | Y |
Xiaomi Mi A2 Lite | xiaomi-daisy | aarch64 | 2018 | Community | Qualcomm MSM8953 Snapdragon 625 (14 nm) | Octa-core 2.0 GHz Cortex-A53 | Adreno 506 | Smartphone | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | P | P | P | Y | P | Y | - |
Xiaomi Mi A1 | xiaomi-tissot | aarch64 | 2017 | Community | Qualcomm MSM8953 Snapdragon 625 (14 nm) | Octa-core 2.0 GHz Cortex-A53 | Adreno 506 | Smartphone | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | N | P | P | Y | P | Y | - |
Xiaomi Mi 9T / Redmi K20 | xiaomi-davinci | aarch64 | 2019 | Community | Qualcomm SDM730 Snapdragon 730 (8 nm) | Octa-core (2x2.2 GHz Kryo 470 Gold & 6x1.8 GHz Kryo 470 Silver) | Adreno 618 | Smartphone | Y | Y | Y | Y | Y | Y | P | Y | Y | P | Y | P | P | Y | Y | Y | Y | P |
Wileyfox Swift | wileyfox-crackling | aarch64 | 2015 | Community | Qualcomm Snapdragon 410 (MSM8916) | Quad-core Cortex-A53 1.2 GHz | Adreno 306 | Smartphone | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | N | Y | Y | Y | Y | P | - |
SHIFT SHIFT6mq | shift-axolotl | aarch64 | 2020 | Community | Qualcomm Snapdragon 845 (SDM845) | Octa-core (4x 2.8 GHz Kryo 385 Gold
4x 1.7 GHz Kryo 385 Silver) |
Adreno 630 | Smartphone | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | N | N | Y | Y | Y | N | N |
Samsung Galaxy S4 Mini Value Edition | samsung-serranove | armv7 | 2015 | Community | Qualcomm Snapdragon 410 (MSM8916) | 4x 1.2 GHz Cortex-A53 | Adreno 306 | Smartphone | Y | Y | Y | Y | Y | Y | Y | P | - | Y | Y | N | Y | Y | Y | Y | - | - |
Samsung Galaxy S III | samsung-m0 | armv7 | 2012 | Community | Samsung Exynos 4412 Quad | Quad-core 1.4 GHz Cortex-A9 | Mali 400 MP4 | Smartphone | P | Y | Y | Y | Y | Y | Y | Y | Y | P | P | P | N | N | N | N | Y | - |
Samsung Galaxy Grand Max | samsung-grandmax | armv7 | 2015 | Community | Qualcomm Snapdragon 410 (MSM8916) | 4x 1.2 GHz Cortex-A53 | Adreno 306 | Smartphone | Y | Y | Y | Y | Y | Y | Y | Y | P | Y | Y | N | Y | Y | Y | Y | - | |
Samsung Galaxy E7 | samsung-e7 | armv7 | 2015 | Community | Qualcomm Snapdragon 410 (MSM8916) | 4x 1.2 GHz Cortex-A53 | Adreno 306 | Smartphone | Y | Y | Y | P | Y | Y | Y | Y | P | Y | Y | N | Y | Y | Y | Y | Y | |
Samsung Galaxy Core Prime VE LTE | samsung-coreprimevelte | aarch64 | 2014 | Community | Marvell PXA1908 | 4x 1.2 GHz Cortex-A53 | Vivante GC7000UL | Smartphone | Y | Y | Y | P | P | Y | N | N | N | N | P | N | N | N | N | N | N | N |
Samsung Galaxy A5 | samsung-a5 | aarch64 | 2014 | Community | Qualcomm Snapdragon 410 (MSM8916) | 4x 1.2 GHz Cortex-A53 | Adreno 306 | Smartphone | Y | Y | Y | P | Y | Y | Y | Y | Y | Y | Y | N | Y | Y | Y | Y | Y | Y |
Samsung Galaxy A3 (2015) | samsung-a3 | aarch64 | 2014 | Community | Qualcomm Snapdragon 410 (MSM8916) | 1.2 GHz Quad ARM Cortex-A53 | Adreno A306 | Smartphone | Y | Y | Y | P | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | |
Purism Librem 5 | purism-librem5 | aarch64 | 2020 | Community | NXP i.MX8MQ | 4x 1.5 GHz Cortex-A53 | Vivante GC7000Lite | Smartphone | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | P | Y | Y | Y | Y | Y | - |
PINE64 PinePhone Pro | pine64-pinephonepro | aarch64 | 2021 | Community | Rockchip RK3399S | 4x 1.5 GHz Cortex-A53
2x 2Ghz Cortex-A72 |
Mali-T860 MP4 | Smartphone | Y | - | Y | Y | Y | Y | P | Y | Y | Y | Y | P | Y | Y | P | P | N | - |
PINE64 PinePhone | pine64-pinephone | aarch64 | 2020 | Community | Allwinner A64 | 4x 1152 MHz Cortex-A53 | Mali-400 MP2 | Smartphone | Y | - | Y | Y | Y | Y | Y | Y | Y | Y | Y | P | Y | Y | Y | Y | Y | - |
OnePlus 6T | oneplus-fajita | aarch64 | 2018 | Community | Qualcomm Snapdragon 845 (SDM845) | Octa-core (4x 2.8 GHz Kryo 385 Gold
4x 1.7 GHz Kryo 385 Silver) |
Adreno 630 | Smartphone | Y | Y | Y | Y | Y | Y | Y | Y | Y | P | Y | P | P | Y | Y | P | P | P |
OnePlus 6 | oneplus-enchilada | aarch64 | 2018 | Community | Qualcomm Snapdragon 845 (SDM845) | Octa-core (4x 2.8 GHz Kryo 385 Gold
4x 1.7 GHz Kryo 385 Silver) |
Adreno 630 | Smartphone | Y | Y | Y | Y | P | Y | Y | Y | Y | Y | Y | P | P | P | P | P | P | P |
Motorola Moto G4 Play | motorola-harpia | aarch64 | 2016 | Community | Qualcomm Snapdragon 410 (MSM8916) | Quad-core 1.21 GHz Cortex-A53 | Adreno 306 | Smartphone | Y | Y | Y | Y | Y | Y | P | Y | Y | Y | Y | N | Y | Y | Y | Y | P | |
LG Optimus Vu | lg-p895 | armv7 | 2012 | Community | Nvidia Tegra 3 (AP33) | Quad-core 1.5 GHz Cortex-A9 | NVIDIA ULP GeForce GPU 12 cores | Smartphone | Y | Y | Y | Y | Y | Y | Y | P | Y | Y | Y | P | Y | |||||
Lenovo A6010 | lenovo-a6010 | aarch64 | 2015 | Community | Qualcomm Snapdragon 410 (MSM8916) | Quad-core 1.2 GHz Cortex-A53 | Adreno 306 | Smartphone | Y | Y | Y | Y | Y | Y | P | Y | Y | Y | Y | Y | Y | Y | P | - | ||
Lenovo A6000 | lenovo-a6000 | aarch64 | 2015 | Community | Qualcomm Snapdragon 410 (MSM8916) | Quad-core 1.2 GHz Cortex-A53 | Adreno 306 | Smartphone | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | - | - | ||
Google Pixel 3a | google-sargo | aarch64 | 2019 | Community | Qualcomm Snapdragon 670 (SDM670) | Octa-core (2x2.0 GHz 360 Gold
6x1.7 GHz Kryo 360 Silver) |
Adreno 615 | Smartphone | Y | Y | Y | Y | P | Y | P | Y | Y | P | Y | P | P | Y | Y | P | N | P |
Fairphone 4 | fairphone-fp4 | aarch64 | 2021 | Community | Qualcomm Snapdragon 750G (SM7225) | Octa-core Kryo 570 | Adreno 619 | Smartphone | Y | Y | Y | Y | Y | Y | N | Y | Y | N | Y | N | N | Y | Y | P | Y | N |
BQ Aquaris X5 | bq-paella | aarch64 | 2015 | Community | Qualcomm Snapdragon 412 (MSM8916v2) | Quad-core 1.4 GHz Cortex-A53 | Adreno 306 | Smartphone | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | - |
See also
References
External links
Wikiwand - on
Seamless Wikipedia browsing. On steroids.