- Shell 84.7%
- Python 15.3%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
The fingerprint matcher is a proprietary OEM-signed trustlet, and it is not shipped as one file: QTEE images live in the modem partition's image/ as an ELF header+hashes file plus one payload per program header, and the loader wants each payload written back at its segment's p_offset. So the existing file directive cannot reach it. An mbn directive does, with the same guarantees file has: the sha256 is of the reassembled image, a mismatch tries the next partition, and an unverified image is never installed. Reassembly is not a concatenation -- segments are page aligned but not contiguous, gaps stay zero, and two pairs of focal64's nine segments share an offset, so they are written in index order and the later one wins, exactly as the bring-up repo's reassemble.py does. Verified on the dev phone against the hash QTEE has actually accepted since August: 3600472 bytes, sha256 1930c490..., reassembled from the phone's own modem_a. The retry path was verified too, with a deliberately wrong first partition -- which is how the variable clobber got caught: POSIX sh has no locals, and reassemble() taking rdir= rewrote its caller's copy to the mount path, so the second partition would have been searched at $MNT/$MNT/... The fast path needed teaching as well: mbn's dest is the fifth field, and a first boot would otherwise have exited early and extracted nothing. Not pushed. The consumer fragment lives in the fingerprintd package. |
||
| .forgejo/workflows | ||
| aports | ||
| .gitignore | ||
| apk-resign.py | ||
| 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.
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.