- Shell 84.7%
- Python 15.3%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
All checks were successful
image / image (push) Successful in 2h24m43s
New package fp6-vendor-blobs: a manifest-driven systemd oneshot that copies proprietary blobs out of the stock Android partitions on first boot. pmOS installs flash only boot+userdata, so every installed unit still carries the stock vendor/dsp partitions - the device duplicates a file it already contains, for its own operation, and nothing proprietary is distributed by us. Partitions are mounted read-only (ext4 additionally with noload - not even a journal replay touches the stock data), every copy is sha256-pinned and a miss fails loudly, and the consuming devices are unbound and re-probed afterwards so the feature works the same boot. The rebind is unconditional by design: aw88261 binds on a bare i2c chip-id probe and requests the ACF only at ASoC card init (~21 s, after SoundWire enumeration), so a bound device can still be one that lost the firmware race - and that failed request is never retried. soc-fairphone-fp6-audio (pkgver 4) stops shipping the blob, installs the manifest fragment instead, and re-runs the extractor from post-install/post-upgrade so upgrades restore the file immediately (the old package version removed it on upgrade). License drops back to plain BSD-3-Clause - nothing proprietary left in the package. Verified on the dev phone (fp6 repo journal/blobs/captures/ 2026-08-24-first-boot-extractor-verification.txt): first-boot extraction + same-boot audio, mid-session post-upgrade recovery, and the everyday fast-path no-op; committed files byte-identical to the tested deployment. Assisted-by: Claude:claude-fable-5 |
||
| .forgejo/workflows | ||
| aports | ||
| .gitignore | ||
| build.sh | ||
| install.sh | ||
| README.md | ||
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 — plus VoLTE calls (both directions) through imsd.
Verified on exactly one device / one carrier (KPN NL). Reports from other carriers are very welcome.
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
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 —
change it). 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 in a stock-firmware capture or your carrier's IMS documentation, 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.
How it builds
build.sh drives pmbootstrap
with the aports/ overlay in this repository:
device/linux-postmarketos-qcom-milos— the pmaports kernel aport, repointed atcombined-stablewith the exact kernel config the development FP6 runs.modem/imsd— imsd, packaged from source. Itsprovides=81voltdkeeps the conflicting modem-firmware IMS helper off the image (two IMS stacks cannot share one PDN).main/postmarketos-config-nftables— adds the-imsdsubpackage accepting imsd's IPsec-protected SIP ports on the IMS PDN (auto-installed alongside imsd).device/catcrafts-fp6-repo— subscribes the installed system to the Catcrafts apk registry (signing key +/etc/apk/repositoriesentry). CI publishes every built package there, soapk upgradedelivers kernel/imsd/GNSS updates between image releases.