Skip to content

← All documentation

Post-install setup · Y2Reborn

Bluetooth codec audit: evidence, tests and qualification contract

Documentation published by SchulzCode/Y2Reborn.

Instructions published by the project, shown here word for word.

Bluetooth codec audit: evidence, tests and qualification contract

> **Historical record.** The dates, candidate identity, "current" claims, > next steps and permissions below belong to this recorded boundary. See > [current state](../../CURRENT_REBORN_STATE.md) for the latest physically observed result.

Date: 2026-09-22. Read together with the architecture and Auto design.

This file records what was inspected/executed and separately specifies future tests. A table of expected outcomes is not a passing test suite. No new codec framework, runtime policy tests, cross-build, firmware image, installation, radio activation, pairing or physical measurement was performed.

1. Source and artifact identities

Repository / artifactIdentity and scope
Y2Linux HEADbe7e64c5dd5c6bdfe39c35e8fbd70e6b4b2c4717; initially clean
Y2Reborn HEAD011884b7ef13187171225f252c213afeeb6da851; pre-existing untracked docs/audit/ from the completed system review retained
Retained platform output inspectedY2Linux/out/y2linux-reborn-audio-final/buildroot/; an existing local build, not a build produced or installed by this audit
BlueALSA source/configbuild/bluez-alsa-4.3.1, generated config.h, src/bluealsa-iface.xml, src/bluealsa-dbus.c, src/a2dp*.c, src/codec-*.c, version-specific manuals
BlueZ source/configbuild/bluez5_utils-5.79, generated config.h, profiles/audio/a2dp.c, MediaEndpoint/MediaTransport documentation
Target executable/configtarget/usr/bin/bluealsa; target/etc/alsa/conf.d/20-bluealsa.conf
Pinned Buildroot package sourceY2Linux/.cache/sources/buildroot-2025.02.17/package/
Running deviceNot accessed in this audit. Current installed commit and connected headphone are UNKNOWN

Relevant history inspected, not treated as validation:

No root README.md exists in either checkout; architecture, knowledge, version-specific upstream manuals, validation evidence and actual source were used. Missing guessed filenames during discovery were corrected by file listing; they were not counted as product defects or test failures.

Production-source anchors

QuestionAuthoritative source
Image package selectiondefconfig, input lock
Actual Bluetooth serviceconnectivity service: both launch/restart use /usr/bin/bluealsa -p a2dp-source --loglevel=warning
Connection retry ownerreconnect.c: trusted preferred AudioSink, intentional-disconnect handling, 45-s call timeout, rate-limited recurring retries
Controller identity/quirk and data pathhci.c: setup, controller_quirks, send, y2_hci_receive; STP, BTIF
Firmware and private calibrationfirmware.c, factory.c, inventory
Current app observationbluetooth.rs: Status::playback_rate, status, tests; no GetCodecs/SelectCodec/typed codec policy
Current Bluetooth PCM formatnative.rs: output_name, AlsaSink::plan_named; S16 preference for Bluetooth
Shared media precisionmedia.c: canonical_swr, output_swr, graph and crossfade paths
Playback lifecyclemain.rs: Runtime::load, output_rate; playback.rs: load/stop, generation/cancellation and sink tests
UI codec string / disconnected statemain.rs PCM codec binding; core Event::BluetoothDisconnected
Actual command grammarctl.rs: Bluetooth commands currently on/off/scan, not bluetooth status

2. Sanitized hardware evidence

These are selected non-identifying fields read from retained own-Y2 logs. The original source is local/private; no full captures are copied, and no link keys, peer addresses, pairing passkeys or calibration payloads were inspected.

Source: Y2Linux/evidence-private/20260917-m5-protocol/connectivity08-hci-baseline.txt.

LinesResponseSelected fields
39–84Read Local Supported Features, status successbf 3e 8d fe db ff 5b 87; EDR ACL 2/3 Mbps, 3-/5-slot EDR ACL, AFH central/peripheral, LE controller, simultaneous LE/BR-EDR, SSP
89–94Read Local Version Information, status successHCI 4.0 0x06, revision 0; LMP 4.0 0x06, subversion 0; MediaTek manufacturer 70
266–269Read Buffer Size, status successACL MTU 1021, ACL packets 4; SCO MTU 184, SCO packets 1

The independently retained y2-hci-quirk-capped.txt reports the same capabilities after the diagnostic feature-page correction. That does not mean its tainted diagnostic boot was production-qualified. The CONNECTIVITY-09 public summary records durable native-quirk power-on with no diagnostic module, taint 0 and zero errors/recoveries. The CONNECTIVITY-10 summary records scans with both radios powered, not A2DP data.

The raw HCI features settle advertised capability, not the controller's actual air packet type with a particular sink. No retained connection packet- type, retransmission, sustained credit-progress or headphone transport trace establishes usable EDR audio throughput. Do not convert the 1021×4 buffer report into a throughput benchmark.

Actual peer evidence

Reborn's September 18 inspection used an older deployed Reborn revision 6209f48402a00a077759df042916f0ae2c89783a. Its Bluetooth service check found no connected peer; discovery completed with zero discoverable peers. The retained BlueALSA ObjectManager response is an empty PCM array. It proves the API exists, not a working audio stream.

Therefore the current connected-headphone make/model, advertised optional codecs, accepted rate/format, negotiated codec and heard audio are UNKNOWN. A headset marketing specification cannot substitute for its actual SEP advertisement; multipoint/firmware modes may change what it offers. No peer was connected by this audit just to fill that cell.

3. Ten distinct capability levels

"Plausible" below means a portability assessment, not a build result. "Pending" legal assessment does not assert illegality. "Not observed" does not prove a codec fails.

LevelSBCAACaptX / HDLDAC
1. Upstream BlueALSA source supportYesYesYes / YesYes
2. Linux encoder/library availablelibsbcFDK-AACSeveral distinct implementationsAOSP encoder + ABR
3. ARMv7 target build evidenceYes, retained ARM imageBuildroot ARM supported; not built hereBuildroot portable recipe / alternate library plausible; not built herePortable source; no Y2 package/build
4. Enabled in reviewed imageYes, normal high settingNoNo / NoNo
5. Negotiated with real Y2 peerNot observedNot observedNot observedNot observed
6. Real-time MT6582 encoder measurementMissingMissingMissingMissing
7. Stable over actual Y2 radioUnqualifiedUnqualifiedUnqualifiedUnqualified
8. Stable with active Wi-FiUnqualifiedUnqualifiedUnqualifiedUnqualified
9. Public binary distribution clearedLibrary terms known; product/firmware obligations openPatent/FDK obligations pendingExact library/IP decision pendingNOTICE/certification/product decision pending
10. Production-ready Y2 featureNo evidence sufficientNoNoNo

The full codec matrix in the architecture document covers LHDC, LC3plus, MP3, Opus, FastStream, aptX extensions and LE Audio separately.

4. Checks actually executed in this focused audit

All commands were host-side. Existing binaries were run without recompilation; their relationship to HEAD was not independently rebuilt/proven. No result is reported as a fresh production build or physical qualification.

Focused cached tests

Working directory /home/luca/Dokumente/Code/Y2Reborn:

./target/debug/deps/reborn_platform-a0dab0805802cc10 bluetooth::tests:: --test-threads=1
./target/debug/deps/reborn_audio-610cef8b7603caee --test-threads=1
./target/debug/deps/reborn-569a8d6f5e5b2b9d --test-threads=1
Existing suiteResultWhat it actually tests
Bluetooth adapter5 passed, 0 failed, 15.15 sDiscovery deadline/order/failure; fake-D-Bus worker; exact peer/direction/stereo-rate matching; unavailable/unsupported rejection
Audio adapter2 passed, 0 failedAddress cannot inject PCM options; nonexistent PCM returns error
Playback worker6 passed, 0 failed, 2.21 sSynthetic sink/source continuity, separate crossfade behavior, bad-next skip, sink failure propagation, stop/output-switch generation handling

Total: 13 cached host tests passed. They do not test optional encoder initialization, actual SBC streaming, BlueZ/BlueALSA reconfiguration against real daemons, codec ranking, hysteresis or RF conditions. No Auto policy tests exist as an implementation yet. The playback fixture limitations and known failures identified by the previous broad audit are not dismissed by these passes; see validation audit.

A preliminary audio-test invocation used a nonexistent cached-binary suffix and returned exit 127. File discovery corrected it to the command above. This was an invocation error, not a failed codec test. The nonexistent-PCM test emits an expected ALSA error line while passing its assertion.

Build/configuration inspection

Working directory /home/luca/Dokumente/Code/Y2Linux:

rg -n 'VERSION|ENABLE_.*(AAC|APTX|LDAC|MPEG|MP3|SBC|LC3|OPUS|FAST)' out/y2linux-reborn-audio-final/buildroot/build/bluez-alsa-4.3.1/config.h
rg -n '^#define (VERSION|PACKAGE_VERSION)' out/y2linux-reborn-audio-final/buildroot/build/bluez5_utils-5.79/config.h
readelf -d out/y2linux-reborn-audio-final/buildroot/target/usr/bin/bluealsa

Observed BlueALSA version v4.3.1, BlueZ 5.79; optional codec macros undefined. ELF NEEDED list: libasound, libbluetooth, libgio, libgobject, libglib, libsbc, libm, libc, ARM hard-float loader. No FDK/aptX/LDAC/Opus dependency. Generated configuration and source checks complement the ELF result: the absence of a shared dependency alone would not rule out a static encoder.

Additional read-only inspection: Git status/revisions and focused history; Buildroot recipes/config; HCI/BTIF/STP/firmware/reconnect code; BlueZ SEP source; BlueALSA D-Bus/XML/codec source/manuals; Reborn media/PCM/UI/ctl paths; sanitized retained HCI fields. Upstream primary-source browsing checked current codec support, official encoder source and licensing notices. For AOSP pages that the browser could not fetch, read-only curl ...?format=TEXT | base64 -d was used; no dependencies were downloaded into or installed in either repository.

Explicitly not executed

No cargo build/test compilation, Buildroot/kernel build, target codec benchmark, SSH/device access, scan, pair, connect, transport reconfiguration, suspend, flash, partition access or calibration change. No legal clearance was obtained. No new candidate artifact or commit was produced. Documentation links/structure and final worktree scope are checked separately before handoff.

5. Deterministic policy tests to implement — NOT EXECUTED

Tests must call the future production policy/state machine, not an independent lookalike implementation embedded in the test. Use fake monotonic time and a fake backend with recorded calls; no sleeps, network, HCI or real headphone needed. Freeze policy revision and build/qualification allowlists in each case.

IDInput / event sequenceRequired assertion
P01Local/remote SBC only, production allowlist SBCChoose conformant SBC High; actual remains unknown until PCM observation
P02Remote SBC/AAC/LDAC, local same, all gates pass, baseline-known peer, quiet context, quality extension presentCapped Adaptive Standard LDAC selected; not 990, not automatically 96 kHz
P03Same codecs, first unknown deviceSBC baseline this session; no high-codec exploration without lab profile
P04Remote LDAC, local SBC/AAC onlyLDAC never a candidate; remote list still honestly records it
P05Local compiled LDAC but runtime Manager1 disables itLDAC absent from usable candidates; UI cannot request it as available
P06LDAC legal or context-qualification gate falseExclude LDAC even when library/remote support exists
P07SBC/AAC/LDAC, LDAC already suppressed, AAC allowedAAC then SBC High/Conservative; no LDAC retry this session
P08Manual AAC, both sides and gates support itAttempt AAC first; preference separate from observed active codec
P09Manual LDAC but peer lacks itReject newly requested setting without interrupting working audio; retained old preference marked unavailable, explicit fallback status
P10Preference LDAC, SelectCodec returns success, observed codec SBCReport actual SBC, reason negotiated-different; never display LDAC active
P11Remote SEP inventory missing, currently observed working SBCCapabilities Unknown, not fabricated singleton; keep actual SBC
P12Device has two equal codec IDs with disjoint ratesNo invented union configuration; use supported API-representable endpoint or skip candidate
P13Unknown vendor ID / too short / oversized / wrong-type capability blobBounded rejection or diagnostic Unknown; no panic or selectable arbitrary string
P14Only remote HFP PCM or wrong device/direction presentNever open it as A2DP playback
P15LDAC PCM S32 observedSinkSpec S32; no S16 intermediate; rate from actual PCM
P16aptX HD PCM 0x8418Signed 24-in-4-byte packing, not S24_3LE/S32 alias; unsupported adapter fails candidate
P17Actual PCM format/channel/rate is unsupportedExplicit failure, no silent ALSA plug conversion represented as native support
P1824/96 source, LDAC peer allows 48 and 96, only 48 qualifiedChoose 48 sink; single final resampling; no source precision narrowing before final conversion
P19Queue moves 44.1→48→96 sources during stable 48-kHz sessionBluetooth codec/rate unchanged; no avoidable gapless renegotiation
P20One Wi-Fi scan and no audio failuresNo codec reconnect or persistent penalty
P21Active-traffic classifier crosses threshold then briefly fallsCongested context held 60 s; no context flapping or live codec promotion
P22Active Wi-Fi, no coex-qualified high codecAAC → aptX → SBC candidate ordering after gates
P23Measured CPU budget excludes AAC/LDAC/HDCandidate set constrained; no claim that aptX is cheaper without measured evidence
P24Stock 4.3.1 API without quality extensionNo capped-adaptive candidate; fixed experimental LDAC only if explicitly configured; bitrate unknown
P25SBC XQ requested but peer/config unsupportedNormal SBC preserved; no NonConformant call or global fallback restriction
P26Compiled codec inventory disagrees with daemon/versionFail closed for optional codecs; SBC only if actually usable; actionable inventory mismatch
P27Firmware/encoder/capability fingerprint changesDevice learning marked stale; old success does not waive new gates
P28First SBC session reaches 30 stable minutes, then next connection session beginsNo upgrade during baseline session; next session may select qualified optional codec. Baseline success alone never permanently locks Auto to SBC

Fallback and no-flapping tests — NOT EXECUTED

IDInjected sequenceRequired outcome
F01SelectCodec explicit unsupportedOne failed attempt, then next candidate; bounded reason
F02Encoder startup errorImmediate candidate failure; no false Running or invented detailed encoder code
F03Select accepted but PCM never appearsStartup deadline fires, total 45-s budget respected
F04First candidate fails; final SBC opens and advancesPlayback resumes same logical track/settings; preferred/actual remain distinct
F05One recoverable XRUNLocal recovery only, no downgrade
F06Three independently attributed stalls at 0/20/40 sOne downgrade, not three; symptoms within 2 s count once
F07Source queue empty from SD removal / corrupt decodePause/source error; zero codec penalties
F08BlueALSA loses bus owner then returnsOld callbacks invalid; inventory refreshed; at most one same-candidate retry
F09PCM path reused after reconfigurationNew owner/connection/sink epoch required; old Format cannot leak into new open
F10Disconnect while selection pending, then user StopNo open/resume after Stop even if late SelectCodec succeeds
F11User pauses during fallbackRestored sink remains paused
F12Manual radio Off / ForgetAll timers cancel; no retry, re-pair or stale cache resurrection
F13Two near-start unexplained disconnects in 120 sSuppress suspect candidate across rapid reconnect; do not create competing Connect loop
F14Headphone intentionally switched offNo codec failure penalty based on known intentional reason; audio pauses safely
F15Every candidate fails≤6 distinct candidates, ≤7 total attempts including restart retry; ≤45 s startup; one exhausted event and no automatic restart loop
F16Fatal write failure during cooldownMay move to untried candidate immediately; cannot retry a visited one
F17Working but suspect stream before 60-s reconfigure limitNo early codec switch; available in-encoder quality reduction may proceed
F18For 600 simulated seconds, oscillate scan/traffic/CPU flags after LDAC→AAC→SBC failuresNo return to LDAC/AAC; no background upgrade; candidate attempts and call count bounded
F19Reconnect repeatedly less than five minutes apartSame session visited set persists; reconnect cannot defeat F18
F20Reboot after two recorded failuresSuppression/session counter retained; not a fresh high-mode experiment
F21User explicitly Retry preferredExactly one new bounded attempt set; serialized with existing work
F22Platform helper reconnects after codec ExhaustedLink may reconnect, but no automatic codec-audio restart; exhausted state persists
F23Bluetooth fallback would select wired outputNo unexpected audible speaker/wired playback; pause intent and volume safety preserved
F24Rapid queue edit/skip/output switch during reconfigurationLatest authoritative queue/intent wins; stale PCM discarded; no deadlock or orphan writer
F25LDAC ABR tries above qualified ceilingEncoder-side cap enforced; if enforcement unavailable, mode cannot be advertised as capped
F26ABR mode feedback absentUI/JSON bitrate null; no 660-kbps claim from requested preference
F27Optional codec timeouts consume first 30 sReserve final 15 s for SBC; no optional attempt consumes the mandatory fallback window
F28Timed-out remote SelectCodec completes lateNo concurrent selection race; reconcile or exhaust within budget; stale completion never replaces active truth
F29Codec fails after hours of successful playbackNew recovery deadline is 45 s from that failure, not the expired startup deadline; session visited/attempt budgets are retained
F30Successful SBC/optional codec reconnects within five minutes without codec failureReopen validated current PCM once in the new epoch, no new SelectCodec or forced downgrade merely because it was previously visited; preserve pause intent
F31Unexpected link loss and both automatic profile reconnect requests time outConnection owner stops within its 25-s budget; no overlapping remote calls, recurring minute timer or reset of codec failures

No-flapping property: automatic visited sets are monotone for a fallback session; next candidate is always unvisited; finite budget implies termination. Property- based event sequences must check that invariant, finite queues, preserved Stop, and at most one live sink writer. Test late/reordered/duplicate D-Bus events, clock jumps, device changes and service restarts—not only happy-path ranking.

Persistence and real-format integration tests — NOT EXECUTED

6. Physical qualification plan — NOT EXECUTED

Entry gates and test identity

Follow Y2Linux's standing milestone audit rule before expanding codec/production scope. Use owner-authorized installation and radio actions. An outstanding power/thermal/suspend safety gate is not waived by this plan. Do not conduct unbounded heat/battery stress on an unqualified charging/thermal platform, and do not invent safe temperature thresholds from the currently unqualified sensor readings.

Record board/controller identity, kernel/rootfs/Reborn commits, manifest and artifact hashes, BlueZ/BlueALSA/encoder versions/options, headphone model and firmware, distance/orientation, negotiated SEP/PCM/rate/codec, AP/channel/RSSI and traffic description. Use private peer IDs; anonymize public evidence. Use boot/session IDs and monotonic time—retained Y2 wall time is unreliable.

Start with a fresh SBC-only or SBC-capable bond and a second independent peer; then use real AAC, aptX/HD and LDAC peers as available. For each codec report which exact peers were tested, not "all Bluetooth headphones". If no matching peer exists, mark that codec BLOCKED/UNKNOWN, not passed with a mock.

Cross-product matrix

Each enabled production codec/mode runs every applicable lifecycle row in all four Wi-Fi conditions. This is a matrix, not four separate unrelated milestones.

Wi-Fi stateControlled conditionAdditional acceptance evidence
OffWi-Fi off, BT audio activeBaseline radio/encoder budget
Connected idleReal WPA2 association/DHCP complete, no intentional transferConfirm background traffic and negotiated network state, not scanning alone
Active trafficControlled bidirectional LAN transfer with measured rates; record AP channelAudio remains usable; measure Wi-Fi throughput degradation, not just audio
Repeated scansBounded repeated scans at recorded cadence, e.g. every 15 s for 10 minAudio/credit progress during scans; no global-radio reset or codec flapping
Lifecycle / faultMinimum proposed exercisePass evidence
Fresh pair/bondClear only owner-approved test peer bond, pair normally, verify trust choicePairing confirmation, private persistence, A2DP capability/codec observed
Initial connect / reconnect10 cycles each per representative peerNo manual daemon restart, false active state or competing retry owner
Y2 reboot5 cycles with existing bondCorrect preference, actual codec and history; no key leakage
Headphone reboot / range loss5 cycles each, user stop/off also exercisedBounded recovery; intentional off respected; no surprise wired playback
Track changesAt least 100 boundaries including 44.1/48/96 source mixtureConstant sink where intended, no queue corruption, no codec reconfigure per track
Pause/resume / seek / skip30 operations each including transition racesNo stale audio, deadlock, stuck transport or incorrectly resumed pause
Screen on/off30 cycles during sustained audioInput/render/power activity does not starve encoder; no dependency on visible UI
Output switching20 wired↔Bluetooth cycles, including remote lossSink closed before new open, correct format/volume, one writer, bounded interruption
Long playbackAt least 2 h per codec/context; 8-h SBC and selected Auto soakNo audible unexplained dropouts, transport reset, memory growth or unbounded retry
DSP loadRG Off/Track/Album, EQ, gapless and crossfade fixturesSame pre-sink processing; no codec-dependent bypass
Source lossOwner-approved SD removal/corrupt media testClassified as source failure; Bluetooth history not poisoned
Service failureControlled bluealsa/BlueZ restart in test environmentEpoch invalidation, honest status and bounded recovery
Suspend/resumeOnly where platform policy permits; otherwise assert playback vetoSame-boot resume/reconnect qualified or explicit unsupported/vetoed result

Do not force deep suspend while playback owns an active radio if the platform contract vetoes it. "Veto correctly applied" and "Bluetooth playback survives deep suspend" are different results. Headphone AVRCP controls are another currently missing application integration; codec qualification does not prove them.

LDAC matrix

Test each independently at 44.1 and 48 kHz first; add 88.2/96 only in a separate experimental high-rate pass. Repeat every Wi-Fi context above.

ModePayload familyWhat to verify
Connection Priority fixed303/330 kbpsActual encoded rate, listening/stability; not simply an option string
Standard fixed606/660 kbpsEDR/credit progress and sustained sharing
High fixed909/990 kbpsStress/error margin, distance/orientation, coexistence; never infer pass from a 30-s clip
Stock ABRCan reach high and intermediate modesQueue response, actual mode over time, oscillation, dropouts; do not call it capped
Proposed capped ABREnforced maximum Standard or device-tested lower capCap never exceeded, same-codec adaptation before fallback, actual mode telemetry and no repeated reconnects

Measure disconnects, audible dropout count/duration, ALSA XRUNs, output starvation, BlueALSA write failures, HCI credit progress, kernel transport errors/recoveries, CPU per process/thread, RSS, temperature validity, power and available battery data. Actual over-air packet loss may be unavailable; label local proxies.

MT6582 CPU/memory benchmark

No usable per-codec target measurements were found or made. Cortex-A7 has NEON and the current toolchain targets hard-float neon-vfpv4; portable C buildability does not guarantee enough single-thread deadline margin at the production CPU frequency. Do not reuse a Cortex-A53/x86 encoder result as a Y2 number.

Benchmark two things separately:

  1. Encoder-only fixed PCM input at 16/44.1, 16/48, 24-bit sink input where

    applicable, and LDAC 24/96 experimental. Pin exact encoder build/options; measure CPU-time/audio-time ratio, frame-time distribution and memory. A faster-than-real-time offline encode is necessary but not sufficient.

  2. End-to-end playback, same tracks through actual FFmpeg/RG/EQ/resampler,

    ALSA plugin, encoder, radio and headphones. Measure bluealsa threads, Reborn, kernel/IRQ cost, source scanning and UI load concurrently. Measure effective CPU frequency/throttling, not just aggregate utilization across four cores.

Compare SBC High and Conservative, AAC 220/256 with afterburner off/on as an engineering variable, aptX, aptX HD, LDAC fixed modes and ABR. Include silence, music, transient-rich and high-entropy inputs; warm up 60 s, then collect at least 10 min steady-state CPU statistics and the longer RF soak above.

Initial engineering acceptance targets, **proposed and subject to platform budget review**: encoder average ≤35% of one available core at qualified production frequency; 99th-percentile encode time ≤50% of its frame deadline; no missed deadlines, unbounded queue/RSS growth or critical playback-thread starvation under UI/scanner/Wi-Fi load. Record maximum and tail, not just mean. A mode exceeding the allocated power/CPU budget stays experimental even if it can play briefly. Do not hide a saturated single encoder thread inside a low four-core aggregate percentage.

Memory expectations are modest streaming frames for SBC/aptX; FDK/LDAC/Opus have additional encoder state; LC3plus exposes size/scratch queries. These estimates are not measured RSS. At 48 kHz stereo, 100 ms of PCM is 19.2 kB for S16 or 38.4 kB for S32; at 96 kHz S32 it is 76.8 kB. Those simple bounds show that seconds of speculative PCM and duplicate pipelines are unnecessary. Measure actual ALSA/pipe/socket buffers and allocations; library working state and thread stacks are additional. Do not allocate encoders for every candidate simultaneously.

Battery and thermal comparison

Compare codec settings against SBC on the same device/peer/source, screen off, same Wi-Fi condition, listening level, ambient temperature and measured CPU frequency. Repeat runs and report variance. Include 16/44.1 and 24/96 source decode/resampling costs separately from encoder-only cost. If battery current telemetry is not calibrated/reliable, use a qualified external power method or mark energy UNKNOWN; do not infer a battery-life percentage from CPU alone.

Record surface/validated sensor temperature and platform charging state; do not perform a prolonged connected-charger soak until the charging/thermal boundary is safe. A proposed initial quality-mode budget is ≤15% energy increase over SBC under matched conditions; this is a product decision to validate, not a measured result or safety limit. A much costlier mode should be manual/experimental or excluded rather than chosen automatically for branding.

7. Manual inspection and installation guidance

Safe current inventory, no new installation required

On an already owner-accessible Y2, these read-only commands can identify the actual current stack. They were not executed on hardware in this audit:

bluealsa --version
bluetoothd --version
bluealsa-cli status
bluealsa-cli list-pcms
rebornctl status --json
rebornctl audio --json
dbus-send --system --print-reply --dest=org.bluealsa /org/bluealsa org.freedesktop.DBus.Properties.GetAll string:org.bluealsa.Manager1

Some installations put bluetoothd outside PATH; resolve its known installed service executable first rather than claiming a missing daemon. If PCMs exist, use their actual returned path with bluealsa-cli info PCM_PATH and bluealsa-cli -v codec PCM_PATH without a CODEC argument. In 4.3.1 that is query-only. Adding a codec argument is a state-changing operation that terminates the existing PCM. Do not use --force. Keep peer identifiers/private state out of shared output.

Remote MediaEndpoint1 capability observation is via BlueZ ObjectManager on the system bus; no need to read bond files. Do not run scan on, power commands, connect, trust or pair as part of a read-only inventory. If no PCM exists, report that fact; do not invent the remote capability list.

Later owner-controlled qualification/install sequence

  1. Confirm current recovery arrangement and platform safety gates. The existing

    installation overview distinguishes first initialization from preserve-data updates and warns about historical coordinate errors. Use the chosen candidate package's verified install/recovery metadata, not historical addresses or a generic scatter/flash recipe from this codec document.

  2. Collect current readonly inventory and agree on actual test headphones.
  3. After separate implementation/legal approval, build one codec candidate at a

    time through the existing Y2Linux production workflow. Record both commits, source/encoder hashes, generated manifest, image sizes/hashes and recovery fallback. No candidate exists from this audit.

  4. The owner chooses/executes the validated userspace/root-image installation

    workflow. Codec work should not require preloader/LK, partition-table, NVRAM, protected-data or calibration updates. If it appears to, stop and re-audit the scope rather than improvise flashing commands.

  5. Owner authorizes radio activation, fresh test-device pairing/trust and quiet-

    volume playback. Capture capability and actual negotiated PCM before any benchmark. Run the relevant matrix; retain sanitized receipts, not secrets.

  6. If failures occur, stop on SBC or pause audio, preserve diagnostic evidence,

    and use the existing known-good recovery path. Do not solve RF instability by modifying calibration or hiding EDR feature bits.

There is deliberately no dd, scatter-file edit, protected-partition instruction or installation command here. The output of this task is a review/design and qualification contract, not a flashable release.

8. What to keep stable

Keep one kernel CONSYS owner, standard HCI/BlueZ interfaces, private read-only calibration provisioning, mandatory SBC, explicit-peer PCM matching, the common FFmpeg media/DSP path, generation-based playback cancellation, bounded worker channels, and the existing structured observability framework. Extend the real service boundary; do not create another decoder, another radio owner, a codec "AI" selector, or a background fleet of encoders.

9. Handoff scope

Documents created by this focused task:

The previous system connectivity audit's daemon spelling is corrected to the actual v4.3.1 name and linked to this focused review. All other previous audit material and all production files remain untouched. No commits were made; HEADs remain the identities above. No production artifact or installable package was built. The next implementation decision belongs after the documented hardware and distribution gates, not after treating this document as a passing test.

Final documentation checks: 59 relative local links resolve; 21 Markdown tables have consistent column counts; fenced blocks are closed; the illustrative JSON parses. A targeted scan found no copied Bluetooth addresses, key material or unfinished placeholders. These are documentation checks, not codec validation.

Published by the SchulzCode/Y2Reborn project [1] [3]