Skip to content

Device: Revise AAP protocol notes on hearing-aid message#544

Merged
d4rken merged 1 commit into
mainfrom
docs/aap-pme-hearing-aid-hypothesis
Apr 24, 2026
Merged

Device: Revise AAP protocol notes on hearing-aid message#544
d4rken merged 1 commit into
mainfrom
docs/aap-pme-hearing-aid-hypothesis

Conversation

@d4rken

@d4rken d4rken commented Apr 24, 2026

Copy link
Copy Markdown
Member

What changed

No user-facing behavior change. Internal documentation update: comments in AAP protocol code that previously called message type 0x0053 "Personal Mixing Engine?" now call it "Personal Medical Equipment" — the hearing-aid configuration for Apple's iOS 18.1+ AirPods Pro 2 hearing-aid feature.

Technical Context

  • PME almost certainly stands for Personal Medical Equipment (cf. PPE = Personal Protective Equipment), not "Personal Mixing Engine" which was an unbacked guess inherited from the Wireshark AAP dissector label.
  • The byte layout CAPod already decodes (4 × 8 Float32) fits per-ear × per-profile audiogram band gains, consistent with hearing-aid configuration.
  • All-zero payloads observed on stock firmware fit this hypothesis: the hearing-aid profile is only populated after the user runs Apple's Hearing Test.
  • Scope is deliberately comments-only — enum/class/property names stay as PME* (matches the Wireshark label; renaming on a still-hypothesis would churn call sites).
  • AapSessionEngine's comment on SET_BAND_EDGES (0x0054) loses its "real EQ" parenthetical — that guess was anchored to the "Personal Mixing Engine" reading of PME and is no longer warranted.

@d4rken d4rken added the coms/AAP Uses Apples AirPod Protocol. Requires Android ROM with fixed L2CAP support on the Bluetooth sockets. label Apr 24, 2026
@d4rken d4rken merged commit 89e8b83 into main Apr 24, 2026
10 checks passed
@d4rken d4rken deleted the docs/aap-pme-hearing-aid-hypothesis branch April 24, 2026 13:27
@pabloaul

pabloaul commented Apr 24, 2026

Copy link
Copy Markdown

The Band Edges command is also almost certainly not related to anything EQ.
It's for setting allowed radio frequency bands and the type corresponds to the band.
If you look at the FCC documentation, you'll see that the AirPods 2 Pro USB-C (and newer) are also capable of sending on 5GHz which they currently use for some proprietary lossless audio thing exclusive to the Apple Vision Pro.

The bandcode semantics are likely those here:
image

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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants