New blog post introducing the WIP Duranium project (immutable postmarketOS), some of its major features, and explaining why some design decisions were made.  

> Either the new image works, or the system falls back to the previous one automatically. No partially-applied state. No debugging audio when you need to make a phone call and no fussing with a broken web browser when you just want to doomscroll cat photos. It also means developers can reproduce the exact state of a user's device, making it much easier to track down and fix issues.

https://postmarketos.org/blog/2026/03/17/introducing-duranium/

#linuxmobile #postmarketos #duranium

Introducing Duranium: a more reliable postmarketOS

Aiming for a 10 year life-cycle for smartphones

postmarketOS
@postmarketOS perhaps the project logo can be a durian
@postmarketOS how does "No debugging audio when you need to make a phone call and no fussing with a broken web browser" follow from "the system boots successfully"? The system may boot successfully with a broken audio and/or a broken web browser. I'm curious and didn't find it in the blog post

@postmarketOS @YaLTeR

the idea is that faults like this can be discovered before an update is applied as it's much easier to replicate and test the images, and a partial-upgrade state (which might break something like audio) is entirely avoided as updates are effectively atomic

@alexia @postmarketOS broken audio makes me think primarily about audio being broken on particular hardware due to an unaccounted edge case. Doesn't that mean that you can test an image on some hardware or even a few different phones, but still miss it being broken on some particular other audio chip?

@YaLTeR @postmarketOS

perhaps but the aim of the project is moreso to prevent situations in which audio was working and then broke after an update without an easy recovery path.

@alexia @postmarketOS but this is still possible, as I just described?
@YaLTeR @alexia @postmarketOS The key point is "without an easy recovery path". If it's anything like Fedora Silverblue, which is also an atomic OS project, if something breaks you can just undo the upgrade and it unbreaks. Undoing upgrades is much harder on a traditional OS, and often intentionally impossible on mobile operating systems

@YaLTeR @alexia that's why we're also building automated testing which will include automated testing of audio and phone calls.

eventually we hope to have a comprehensive test suite that every update must pass on every device before it gets shipped

@YaLTeR @postmarketOS If an update breaks something such as audio, you have the option to roll back to the previous version without the issue.
@YaLTeR @postmarketOS Well the audio would have to work reliably in the first place. 😅
@YaLTeR part of it is that we have an unexpectedly high number of audio failures consequence of partially-applied state and buggy upgrades. Why it's always audio 🤷 You can still get an update with broken audio if Pipewire or ALSA broke for your device. But then it should be reproducible in all upgrades/installs, which has really not been the case so far, speeding up fixes @postmarketOS

@postmarketOS Interesting! I have a FP5 that I'm not currently daily driving and I see there's an image for it, so might need to give it a try

I'm curious if it would be possible to run Guix on it... the docs say there's nothing stopping you from running Nix on it but Guix like Nix requires a writable store dir. Going to have to dig into this some more later

@jfred @postmarketOS As long as that directory doesn't need to be on /usr, it'll work just fine.
@postmarketOS can i flush it via web flusher?
@postmarketOS @craftyguy I just got round to reading this properly and found it really interesting. I particularly like the link off to the design document which is an excellent piece of documentation. Not going to pretend I understand it all but that's on me 😀

@postmarketOS is there a guide to go from stock android fairphone 5 without unlocked bootloader to duranium? i tried to do it by combining the wiki pages of the fp5 and trying to install regular pm edge first but even while using what i assumed to be a safe way to do it using ubports, i bricked my phone in the process (apparently very easy to do on fairphone 5)

i‘d love to try again but it’s not really sustainable to send the phone to france for repair again if i brick it again, so i would benefit greatly from one install guide from start to finish