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
15 lines
503 B
Desktop File
15 lines
503 B
Desktop File
[Unit]
|
|
Description=Extract vendor blobs from the stock Android partitions
|
|
# The dynamic-partition mappings come from the initramfs and the dests live
|
|
# on the rootfs, so local-fs ordering is enough. Deliberately not ordered
|
|
# against driver/audio bringup: the extractor re-probes consumers itself
|
|
# (manifest rebind lines), so it never has to win a race.
|
|
After=local-fs.target
|
|
|
|
[Service]
|
|
Type=oneshot
|
|
RemainAfterExit=yes
|
|
ExecStart=/usr/lib/fp6-vendor-blobs/extract
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|