Four fixes, each a root cause verified on hardware (AX211 + Bose QC Ultra):
1. Link Key Request Reply TRUNCATED: the pending-command queue's params
buffer was 16 bytes; the reply is 22 (addr 6 + key 16). The controller
got 10 key bytes -> every stored-key reconnection failed authentication
(status 5) since 2026-06-03 (c119a70). Fresh pairings never touch this
path, which kept the bug perfectly disguised as a headset quirk.
2. Secure Connections host support (0x0C7A) now enabled: bonds are minted
as P-256 (Type=7), interoperable with BlueZ's, and SC-bonded peers can
actually authenticate us.
3. Never write the BD_ADDR override (0xFC31) with the factory address:
it desyncs the firmware's crypto address from the on-air one and ALL
SSP pairing fails with status 5. (The spoofing feature itself was
already known-cosmetic: the baseband answers pages on the factory
address regardless.) import-bluez-bond.sh now removes the override.
4. A2DP channel setup: wait for Encryption Change before dialing L2CAP
(post-SSP sinks ignore unencrypted CONN_REQ), and LISTEN 2.5s first --
on reconnection the sink dials AVDTP itself and ignores our dials while
doing so. Ends the historical connRsp=FFFF retry-then-give-up failures.
Plus: queued security replies now log delivery + controller status.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- On Authentication Failure (Auth Complete status!=0 -- previously swallowed
silently -- or disconnect reason 0x05), drop the stale local link key so
the next connect falls back to fresh SSP pairing instead of failing
identically forever (BlueZ behavior). Log the link-key exchange.
- scripts/import-bluez-bond.sh: copy a BlueZ link key into the MontaukOS
key store on the installed root. Root cause: the AX211 BD_ADDR override
(0xFC31) is cosmetic -- the baseband answers pages on the FACTORY address,
so peers see Linux and MontaukOS as ONE device with ONE key slot, and each
OS's pairing clobbers the other's key. Sharing identity + key ends the
fight: both OSes reconnect (incl. autoconnect) without re-pairing.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>