Skip to content

Device: Send extended init packet to all AirPods models#517

Merged
d4rken merged 1 commit intomainfrom
refactor/send-initext-unconditionally
Apr 15, 2026
Merged

Device: Send extended init packet to all AirPods models#517
d4rken merged 1 commit intomainfrom
refactor/send-initext-unconditionally

Conversation

@d4rken
Copy link
Copy Markdown
Member

@d4rken d4rken commented Apr 15, 2026

What changed

The extended init packet (0x4D) is now sent to all connected AirPods during the AAP handshake, instead of only to specific newer models. Older devices silently ignore the packet, so this is safe. New H2+ models will automatically get full feature support (Adaptive Transparency, Conversational Awareness during playback) without needing a per-model flag.

Technical Context

  • The needsInitExt boolean in PodModel.Features gated whether the 0x4D packet was sent during connection setup. Only 5 H2-chip models had it set to true.
  • Research into the librepods project confirmed that they send this packet unconditionally to all devices — older models simply ignore unknown command bytes.
  • The risk was asymmetric: missing the packet on a device that needs it causes silent feature degradation (no Adaptive Transparency, Conversational Awareness only works without audio). Sending it to a device that doesn't need it is a no-op.
  • Removed needsInitExt from Features entirely and changed encodeInitExt() from nullable to non-null.

Older devices silently ignore the 0x4D packet, so there is no need to gate it per model. Sending it unconditionally prevents silent feature degradation when new H2+ models are added without the flag.

Remove needsInitExt from PodModel.Features.
@d4rken d4rken added enhancement Add a new feature of improve an existing feature coms/AAP Uses Apples AirPod Protocol. Requires Android ROM with fixed L2CAP support on the Bluetooth sockets. labels Apr 15, 2026
@d4rken d4rken merged commit 6f90687 into main Apr 15, 2026
10 checks passed
@d4rken d4rken deleted the refactor/send-initext-unconditionally branch April 15, 2026 06:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

coms/AAP Uses Apples AirPod Protocol. Requires Android ROM with fixed L2CAP support on the Bluetooth sockets. enhancement Add a new feature of improve an existing feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant