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
|
|
@ -1,27 +1,27 @@
|
|||
# Audio userspace files for the Fairphone 6 that no upstream package ships
|
||||
# yet: the AudioReach topology (built from Catcrafts/audioreach-topology
|
||||
# branch fp6), the AW88261 amp config blob, and the UCM profile. Files are
|
||||
# branch fp6), the UCM profile, and pipewire config. Files are
|
||||
# byte-identical to the ones deployed and tested on the development FP6.
|
||||
# The tplg/UCM target filenames contain spaces, hence the safe source names.
|
||||
#
|
||||
# Licensing: the topology (built from BSD-3-Clause audioreach-topology
|
||||
# sources) and the UCM/pipewire configs are BSD-3-Clause. aw88261_acf.bin
|
||||
# is a verbatim proprietary Awinic amp-config blob extracted from the
|
||||
# FP6's stock vendor partition; its redistribution status is unresolved
|
||||
# (candidate for FairBlobs adoption or install-time on-device extraction
|
||||
# from the stock vendor partition, which pmOS installs leave in place).
|
||||
# The proprietary AW88261 amp config blob (aw88261_acf.bin) is NOT shipped
|
||||
# since pkgver 4: fp6-vendor-blobs extracts it from the stock vendor
|
||||
# partition on-device (manifest fragment below), so nothing proprietary is
|
||||
# distributed. Provenance/design: fp6 repo journal/blobs/.
|
||||
maintainer="Jorijn van der Graaf <jorijnvdgraaf@catcrafts.net>"
|
||||
pkgname=soc-fairphone-fp6-audio
|
||||
pkgver=3
|
||||
pkgrel=1
|
||||
pkgdesc="Fairphone 6 audio topology, amp firmware and UCM profile"
|
||||
pkgver=4
|
||||
pkgrel=0
|
||||
pkgdesc="Fairphone 6 audio topology and UCM profile"
|
||||
url="https://forgejo.catcrafts.net/Catcrafts/audioreach-topology"
|
||||
arch="noarch"
|
||||
license="BSD-3-Clause AND proprietary"
|
||||
license="BSD-3-Clause"
|
||||
depends="fp6-vendor-blobs"
|
||||
install="$pkgname.post-install $pkgname.post-upgrade"
|
||||
options="!check"
|
||||
source="
|
||||
fp6-tplg.bin
|
||||
aw88261_acf.bin
|
||||
aw88261-acf.manifest
|
||||
ucm-milos-fp6.conf
|
||||
HiFi.conf
|
||||
50-echo-cancel.conf
|
||||
|
|
@ -30,8 +30,8 @@ source="
|
|||
package() {
|
||||
install -Dm644 "$srcdir"/fp6-tplg.bin \
|
||||
"$pkgdir/usr/lib/firmware/qcom/milos/Fairphone (Gen. 6)-tplg.bin"
|
||||
install -Dm644 "$srcdir"/aw88261_acf.bin \
|
||||
"$pkgdir"/usr/lib/firmware/qcom/milos/fairphone/fp6/aw88261_acf.bin
|
||||
install -Dm644 "$srcdir"/aw88261-acf.manifest \
|
||||
"$pkgdir"/usr/share/fp6-vendor-blobs/manifest.d/10-aw88261-acf.manifest
|
||||
install -Dm644 "$srcdir"/ucm-milos-fp6.conf \
|
||||
"$pkgdir/usr/share/alsa/ucm2/conf.d/milos/Fairphone (Gen. 6).conf"
|
||||
install -Dm644 "$srcdir"/HiFi.conf \
|
||||
|
|
@ -47,7 +47,7 @@ package() {
|
|||
|
||||
sha512sums="
|
||||
51071c574b9f5899c78ba9fe1b6f3bbda2195e6d274014a05869ae56ed0ff18e15678bd7d78cd68846900d3c579556328e229842152cffd943186d43344ed33c fp6-tplg.bin
|
||||
a84b0595ae71b0bb594034a9f5fd77b984c9086cd917f32524c4b5172bc72a426e5d188d18dbccdb587f66d60fa15cad441fffcd48a3a1ce66335199b61e0350 aw88261_acf.bin
|
||||
bdfe413494b6815cf96843d83c6c9e8deb757b083d7577c93eab460de49d1cd00b8615c115c25d71f6488de4e65f04d5f02bca816b2c31747880a22613e547a3 aw88261-acf.manifest
|
||||
3bb268f9fcb8d1c0b42741b67da42b6361bab259e7211d9930919995ebe7dcf67826e6d4f00ff5e4fe5b52067fe90d00212158c3b4879d1bee481e87f0623206 ucm-milos-fp6.conf
|
||||
2a189c3141fedc43f8eb19f4df1e43487223d524e27da3f948556d224cca1f493f6815ada191953fb79a19d5c5abadb21de7b3ece7b74b0929338c216e21e84a HiFi.conf
|
||||
ec63fa5363738a43c9eee4b1be70201e2d2076ec817031fda087e61d781e81dc67351be44faf8b056a2939875a139cd909f7c311115bb1150e17ad4493846606 50-echo-cancel.conf
|
||||
|
|
|
|||
Loading…
Reference in a new issue