| postmarketOS | |
|---|---|
postmarketOS runningPhosh | |
| Developer | postmarketOS open-source community |
| OS family | Linux (Unix-like) |
| Working state | Active |
| Source model | Open source |
| Initial release | 26 May 2017; 8 years ago (2017-05-26) |
| Latest release | 25.06(the one with systemd)[1] |
| Repository | |
| Marketing target | Operating system replacement forAndroid and other mobile devices |
| Available in | English, Czech, German, French, Italian, Spanish, etc. |
| Update method | apk-tools (package manager) |
| Package manager | apk-tools (fromAlpine Linux) |
| Supported platforms | ARM, ARM64,x86,x86-64 |
| Kernel type | Monolithic (Linux) |
| Default user interface | GNOME,Phosh,Sway,Sxmo[2] |
| Official website | postmarketos |
postmarketOS (abbreviated aspmOS) is anoperating system primarily forsmartphones, based on theAlpine Linux distribution.[3][4][5][6] Developed since 2016,[7] it was launched in 2017,[8] and continues to be a work in progress.[9]
It is capable of running differentX andWayland based user interfaces, such asPlasma Mobile,[10][11]MATE,GNOME, andXFCE;[12] later updates added support forUnity8 andPhosh.[13] It is also capable of runningDocker, if the device specific kernel hascgroups and relevant configs enabled.[14] The project aims to provide a ten-year lifecycle for smartphones.[15]
Oliver Smith started developing postmarketOS in 2016.[7] The operating system was launched on 26 May 2017,[4][8] with thesource code available onGitHub before migrating toGitLab in 2018.[16]
Unlike many other projects porting conventional Linux distributions toAndroid phones, postmarketOS does not use the Android build system oruserspace.[17] Each phone has only one unique package, and flashable installation images are generated using thepmbootstrap tool.[4] The project intends to support the mainlineLinux kernel on all phones in the future, instead of the often outdatedAndroid-specific fork, to reduce the potential forsecurity exploits.[4] A few devices can boot into the mainline kernel already.[18][19] The project aims to support Android apps, originally through the use ofAnbox, which was replaced byWaydroid since postmarketOS v21.12.[20][21]
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.[22][4][23] In March 2024, the maintainers announced that postmarketOS would migrate fromOpenRC tosystemd as itsinit system for select user interfaces.[24]
As of 2025, it is work-in-progress software intended forpower users.[9]
Different tools have been published by the project, including:
pmbootstrap,[25][26] a utility to help the process of development withcross compilation;osk-sdl,[27][28] avirtual keyboard to allow decryption of a password during startup (on a device with full disk encryption);charging-sdl,[29] an application contained in theinitramfs to display an animation when the phone is charging while off.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 theN900[34] andN9.[35][18] 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 (includingGoogle Glass andsmartwatches like theLG G Watch) has been improved through integration with theAsteroidOS user interface and work on mainline kernel for theLG 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 theBQ Aquaris X5,Librem 5,Nokia N900, MotorolaMoto G4 Play,Samsung Galaxy A3 (2015),Samsung Galaxy A5 (2015), andWileyfox Swift.[39]
Furthermore, thePinePhone launched in 2020, with postmarketOS Community Edition as a first-party operating system.[40]
The development process to make a new device compatible with the operating system consists of creating a phone-specific package using thepmbootstrap tool. For that, the use of theLinuxkernel 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 theGPLv2 license, but some drivers necessary for the operation of the device may not be available, and must, therefore, be recreated.[41][25] Examples includeGPU drivers such asLima, which has a proprietary equivalent in userspace onAndroid that is not subject to theGPLv2 requirements.
Only thePinePhone[42] and few others devices seems to have the camera working. It's inWIP for theFairphone.
OnePlus6 isWIP forVolte support.[43]
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 | Yes | Yes | - | Yes | - | - | - | - | - | - | - | - | - | |||||
| QEMU aarch64 | qemu-aarch64 | aarch64 | 2003 | Main | QEMU ARM Virtual Machine | QEMU ARM Cortex-A57 | Virgil 3D | Emulator | Yes | Yes | - | Yes | - | - | - | - | - | - | - | - | - | |||||
| QEMU ppc64le | qemu-ppc64le | ppc64le | 2003 | Main | QEMU PPC64 Virtual Machine | QEMU POWER10 | Virgil 3D | Emulator | Yes | Yes | - | Yes | - | - | - | - | - | - | - | - | - | |||||
| QEMU riscv64 | qemu-riscv64 | riscv64 | 2003 | Main | QEMU RISCV64 Virtual Machine | QEMU | Virgil 3D | Emulator | Yes | Yes | - | Yes | - | - | - | - | - | - | - | - | - | |||||
| 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 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Partial | Partial | Partial | Yes | Yes | Yes | - |
| 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 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Partial | Partial | Partial | Yes | Yes | Yes | - |
| 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 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Partial | Yes | Partial | Partial | Partial | Yes | Partial | Yes | - |
| 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 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Partial | Yes | Partial | Partial | Partial | Yes | Yes | Yes | - |
| Xiaomi Redmi 2 | xiaomi-wt88047 | aarch64 | 2015 | Community | Qualcomm MSM8916 Snapdragon 410 (28 nm) | Quad-core 1.2 GHz Cortex-A53 | Adreno 306 | Smartphone | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | - |
| 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 | Yes | Yes | Yes | Yes | Partial | Yes | Partial | Yes | Yes | Yes | Yes | Partial | Partial | Partial | Partial | Partial | No | - |
| 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 | Yes | Yes | Yes | Yes | Yes | Yes | Partial | Yes | Yes | Partial | Yes | No | No | Yes | Yes | Yes | Yes | Yes |
| 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 | Yes | Yes | Yes | Yes | Yes | Partial | Partial | Yes | No | Partial | Yes | Partial | No | No | Partial | No | Yes | Yes |
| 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 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Partial | Partial | Partial | Yes | Partial | Yes | - |
| Xiaomi Mi A1 | xiaomi-tissot | aarch64 | 2017 | Community | Qualcomm MSM8953 Snapdragon 625 (14 nm) | Octa-core 2.0 GHz Cortex-A53 | Adreno 506 | Smartphone | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Partial | Partial | Yes | Partial | Yes | - |
| 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 | Yes | Yes | Yes | Yes | Yes | Yes | Partial | Yes | Yes | Partial | Yes | Partial | Partial | Yes | Yes | Yes | Yes | Partial |
| Wileyfox Swift | wileyfox-crackling | aarch64 | 2015 | Community | Qualcomm Snapdragon 410 (MSM8916) | Quad-core Cortex-A53 1.2 GHz | Adreno 306 | Smartphone | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Partial | - |
| 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 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | No | No |
| Samsung Galaxy S4 Mini Value Edition | samsung-serranove | armv7 | 2015 | Community | Qualcomm Snapdragon 410 (MSM8916) | 4x 1.2 GHz Cortex-A53 | Adreno 306 | Smartphone | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Partial | - | Yes | Yes | No | Yes | Yes | Yes | Yes | - | - |
| Samsung Galaxy S III | samsung-m0 | armv7 | 2012 | Community | Samsung Exynos 4412 Quad | Quad-core 1.4 GHz Cortex-A9 | Mali 400 MP4 | Smartphone | Partial | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Partial | Partial | Partial | No | No | No | No | Yes | - |
| Samsung Galaxy Grand Max | samsung-grandmax | armv7 | 2015 | Community | Qualcomm Snapdragon 410 (MSM8916) | 4x 1.2 GHz Cortex-A53 | Adreno 306 | Smartphone | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Partial | Yes | Yes | No | Yes | Yes | Yes | Yes | - | |
| Samsung Galaxy E7 | samsung-e7 | armv7 | 2015 | Community | Qualcomm Snapdragon 410 (MSM8916) | 4x 1.2 GHz Cortex-A53 | Adreno 306 | Smartphone | Yes | Yes | Yes | Partial | Yes | Yes | Yes | Yes | Partial | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | |
| Samsung Galaxy Core Prime VE LTE | samsung-coreprimevelte | aarch64 | 2014 | Community | Marvell PXA1908 | 4x 1.2 GHz Cortex-A53 | Vivante GC7000UL | Smartphone | Yes | Yes | Yes | Partial | Partial | Yes | No | No | No | No | Partial | No | No | No | No | No | No | No |
| Samsung Galaxy A5 | samsung-a5 | aarch64 | 2014 | Community | Qualcomm Snapdragon 410 (MSM8916) | 4x 1.2 GHz Cortex-A53 | Adreno 306 | Smartphone | Yes | Yes | Yes | Partial | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes |
| Samsung Galaxy A3 (2015) | samsung-a3 | aarch64 | 2014 | Community | Qualcomm Snapdragon 410 (MSM8916) | 1.2 GHz Quad ARM Cortex-A53 | Adreno A306 | Smartphone | Yes | Yes | Yes | Partial | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
| PurismLibrem 5 | Purism-librem5 | aarch64 | 2020 | Community | NXP i.MX8MQ | 4x 1.5 GHz Cortex-A53 | Vivante GC7000Lite | Smartphone | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Partial | Yes | Yes | Yes | Yes | Yes | - |
| PINE64 PinePhone Pro | Pine64-pinephonepro | aarch64 | 2021 | Community | Rockchip RK3399S | 4x 1.5 GHz Cortex-A53 2x 2Ghz Cortex-A72 | Mali-T860 MP4 | Smartphone | Yes | - | Yes | Yes | Yes | Yes | Partial | Yes | Yes | Yes | Yes | Partial | Yes | Yes | Partial | Partial | No | - |
| PINE64 PinePhone | Pine64-pinephone | aarch64 | 2020 | Community | Allwinner A64 | 4x 1152 MHz Cortex-A53 | Mali-400 MP2 | Smartphone | Yes | - | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Partial | Yes | Yes | Yes | Yes | Yes | - |
| 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 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Partial | Yes | Partial | Partial | Yes | Yes | Partial | Partial | Partial |
| 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 | Yes | Yes | Yes | Yes | Partial | Yes | Yes | Yes | Yes | Yes | Yes | Partial | Partial | Partial | Partial | Partial | Partial | Partial |
| Motorola Moto G4 Play | motorola-harpia | aarch64 | 2016 | Community | Qualcomm Snapdragon 410 (MSM8916) | Quad-core 1.21 GHz Cortex-A53 | Adreno 306 | Smartphone | Yes | Yes | Yes | Yes | Yes | Yes | Partial | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Partial | |
| 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 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Partial | Yes | Yes | Yes | Partial | Yes | |||||
| Lenovo A6010 | lenovo-a6010 | aarch64 | 2015 | Community | Qualcomm Snapdragon 410 (MSM8916) | Quad-core 1.2 GHz Cortex-A53 | Adreno 306 | Smartphone | Yes | Yes | Yes | Yes | Yes | Yes | Partial | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Partial | - | ||
| Lenovo A6000 | lenovo-a6000 | aarch64 | 2015 | Community | Qualcomm Snapdragon 410 (MSM8916) | Quad-core 1.2 GHz Cortex-A53 | Adreno 306 | Smartphone | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - | - | ||
| GooglePixel 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 | Yes | Yes | Yes | Yes | Partial | Yes | Partial | Yes | Yes | Partial | Yes | Partial | Partial | Yes | Yes | Partial | No | Partial |
| Fairphone 4 | fairphone-fp4 | aarch64 | 2021 | Community | Qualcomm Snapdragon 750G (SM7225) | Octa-core Kryo 570 | Adreno 619 | Smartphone | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | No | Yes | No | No | Yes | Yes | Partial | Yes | No |
| BQ Aquaris X5 | bq-paella | aarch64 | 2015 | Community | Qualcomm Snapdragon 412 (MSM8916v2) | Quad-core 1.4 GHz Cortex-A53 | Adreno 306 | Smartphone | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - | |
| Xiaomi Redmi Note 8 | xiaomi-ginkgo | aarch64 | 2019 | Testing | Qualcomm SDM665 Snapdragon 665 (11 nm) | Octa-core (4x2.0 GHz Kryo 260 Gold & 4x1.8 GHz Kryo 260 Silver) | Adreno 610 | Smartphone | Partial | Yes | No | Yes | No | Yes | No | No | No | No | Yes | - | ||||||
| Lenovo IdeaPad Duet 5 | google-homestar | aarch64 | 2021 | Testing | Qualcomm Snapdragon 7c Gen 2 (SC7180P) | 2x Kryo 468 Gold 6x Kryo 468 Silver | Adreno 618 | Tablet | Yes | Yes | Yes | Yes | No | Partial | No | Partial |