Make a consistent plan for postmarketOS installer(s) and recovery UI
Idea: Make a consistent plan for postmarketOS installer(s) and recovery UI
Summary
We have had various postmarketOS installer/TWRP-like recovery UI approaches and ideas over the years. We should reconsider them and come up with a consistent plan and figure out how we can implement it. A goal for most of these was to make it not tied to postmarketOS, but coming up with something that could work for other distros like Mobian too if they would like to use it.
Currently @craftyguy, @JustSoup321 and @caleb seem to be invested in this, maybe you could collaborate on coming up with a consistent PMCR for this?
Prior art
on device installers / recover UI
-
postmarketos-ui-os-installer (pmaports!6320): boots a live gnome image with os-installer, which runs pmbootstrap under the hood to make a very nice looking installer for graphical desktops. Needs an internet connection and not sure how well it works on mobile. Looks like a nice, practical solution we can use for now but it would be great to figure out the larger story as well where we want this to go.
-
ondev1: calamares based offline installer that allowed to e.g. set up an encrypted installation, set user passwords, choose the filesystem and to install from SD to eMMC for the PinePhone. It had various problems, such as having many installation paths that could not be automatically tested while at the same only supporting very few devices, calamares being rather heavy, the image build process via pmbootstrap was complicated, and too many choices during the installer that only make sense for very technical users (such as choosing the filesystem). ondev1 is not used in pmOS anymore since v23.06. (screenshots)
-
ondev2: unl0kr based offline installer that addressed some of the ondev1 issues, having the choice between a simple and advanced install, being a lot more lightweight (initramfs only), an interface that works for text and screen at the same time with only one input shown at a time (compared to desktop installers which have many of those) which allows scripting the install for automated testing with expect and would later allow easy text-to-speech and speech-to-text integration for accessibility. This was never finished though. There were also future ideas of making initramfs stubs that people would download, which would contain ondev2 without an image to install, the user would then connect to wifi with it and download either a pre-built image as we have it now, or an immutable image, or possibly have apk running and assemble an installation. We could provide these stubs for lots/maybe almost all (?) devices, so users could just flash them or netboot them and install to persistent storage (or even to RAM for testing?) pmOS without using pmbootstrap; possibly even through a web usb installer. (fosdem talk)
-
BuffyBox: the excellent FDE unlocking program unl0kr was moved into BuffyBox with the idea to extend its scope further while using the same code. Ideas @cherrypicker, @DylanVanAssche, @caleb and I had were making a recovery UI similar to TWRP, allowing the user to optionally encrypt their installs on first boot when using a pre-built image, and/or integrating some of the ondev2 features/planned features.
-
"Live CD" support: @JustSoup321 had the idea to provide live environments. this could be particularly useful for devices where persistent storage is not working yet (iphones) or just to try various UIs out. See also
pmbootstrap netboot
.
desktop installers
-
starting an install right from the homepage (postmarketos.org#156): some unfinished ideas for directly starting an install from the homepage, to make it as seamless as possible for users.
-
ubports installer: from the nice people at Ubuntu Touch, supports installing postmarketOS for some devices such as some Fairphones. Uses index.json from bpo and downloads pre-built images from there.
-
yotlip: desktop installer, unfinished
-
gpmbootstrap: gtk frontend proof of concept for running pmbootstrap, unfinished