Catcrafts builds of the postmarketos image for the fairphone 6
  • Shell 84.8%
  • Python 15.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jorijn van der Graaf 8e4cc1d777
Some checks failed
image / image (push) Failing after 3h23m10s
Phosh image: GDM's login-screen schema, so Settings can enrol a finger
GNOME Settings 51 shows the Users page's "Fingerprint Login" row only when
GDM's org.gnome.login-screen schema exists and its
enable-fingerprint-authentication key is true. The Phosh image logs in
through greetd/phrog, so without GDM the row never appeared and no finger
could be enrolled from the GUI; Settings never asked fingerprintd.

fp6-login-screen-schema installs GDM's schema file, unchanged, from
Alpine's gdm-48.0-r8, and nothing else of GDM. It is the only key Settings
reads, and nothing else on the image looks the schema up. replaces="gdm"
keeps a single copy if GDM is ever installed as well (tested in alpine:edge
in both orders; glib-compile-schemas stays clean). Added to the Phosh
image's packages.

Tested on the dev phone: the row appears, a thumb enrolled through
Settings' dialog, and it unlocks the lock screen.
2026-09-23 19:55:40 +02:00
.forgejo/workflows Build a Phosh image next to the Plasma Mobile one 2026-09-20 16:58:49 +02:00
aports Phosh image: GDM's login-screen schema, so Settings can enrol a finger 2026-09-23 19:55:40 +02:00
.gitignore gitignore dist/; fix empty then-branch (sh syntax) in the NV verdict 2026-08-09 02:44:39 +02:00
apk-resign.py imsd: sign from a readable copy of the abuild key 2026-09-15 22:36:12 +02:00
build.sh Phosh image: GDM's login-screen schema, so Settings can enrol a finger 2026-09-23 19:55:40 +02:00
check-aports.sh fp6-vendor-blobs: the checksum the extractor change forgot, and a check that finds the next one in a second 2026-09-15 22:36:13 +02:00
install.sh debian fix 2026-09-15 22:36:12 +02:00
README.md Build a Phosh image next to the Plasma Mobile one 2026-09-20 16:58:49 +02:00
registry-fetch.py build.sh: install the newest registry imsd and fingerprintd, verified the way a phone does 2026-09-15 22:36:13 +02:00

fp6-img

Flashable postmarketOS images for the Fairphone 6/6+, built nightly from the Catcrafts milos-linux combined-stable kernel branch, with imsd (userspace VoLTE) preinstalled.

Maintained by Jorijn van der Graaf (TheMightyCat) at Catcrafts.

What works

Everything on the combined-stable branch: display, touch, wifi, cellular data, NFC (reader), speaker audio, microphone, IMU, magnetometer, barometer, ambient light/proximity, fingerprint unlock through fingerprintd, plus VoLTE calls (both directions) through imsd.

Flashing

Download fp6-img.tar.xz from the latest release and unlock the bootloader (Fairphone's official process).

Install: with the phone in fastboot mode,

tar xf fp6-img.tar.xz
cd fp6-img
./install.sh

Two images are published per release, same kernel and packages, different shell: fp6-img.tar.xz boots Plasma Mobile (calls through Plasma Dialer), fp6-img-phosh.tar.xz boots Phosh (calls through GNOME Calls, via imsd's imsd-ofono backend). Pick one; the install steps are identical.

install.sh erases dtbo, flashes the rootfs, RAM-boots the kernel, writes the boot partition from inside Linux where the bootloader's NV-wipe cannot see it, then reads the modem NV back and reports the result. The bootloader never writes boot.

Default login: user / 147147 (same as official postmarketOS images). Never re-lock the bootloader with a custom image installed.

VoLTE configuration

imsd is installed but needs your carrier's P-CSCF address:

# /etc/imsd.env
PCSCF=<your carrier's P-CSCF IPv6 address>

Find it via android adb using adb shell dumpsys telephony.registry, then systemctl restart imsd (the service is enabled at boot and waits for this file to exist). See the imsd README for the full variable reference and carrier assumptions.