aports: extract aw88261_acf.bin on-device instead of shipping it
All checks were successful
image / image (push) Successful in 2h24m43s
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
This commit is contained in:
parent
970a44f93d
commit
1e673ca1c4
9 changed files with 290 additions and 15 deletions
10
aports/device/soc-fairphone-fp6-audio/aw88261-acf.manifest
Normal file
10
aports/device/soc-fairphone-fp6-audio/aw88261-acf.manifest
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
# AW88261 smart-amp config blob (proprietary, Awinic) - extracted from the
|
||||
# stock vendor partition on-device instead of being shipped (fp6 repo
|
||||
# journal/blobs/, 2026-08-24). Slot A first, slot B as fallback; the copy
|
||||
# must hash-match the blob the audio stack was tested with.
|
||||
file vendor_a,vendor_b firmware/aw882xx_acf.bin /usr/lib/firmware/qcom/milos/fairphone/fp6/aw88261_acf.bin af723973655ba5901948d4a22212323e39ce53ff0156021185720af4af6ab0b3
|
||||
# the amps bind on i2c probe but request the ACF only at card init, which
|
||||
# races the extractor on first boot and is never retried on failure - a
|
||||
# forced fresh probe of both amps makes audio work that same boot either way
|
||||
rebind i2c 6-0034
|
||||
rebind i2c 6-0035
|
||||
Loading…
Reference in a new issue