Skip to content

[Linux/rust] Implemented high-res microphone support#655

Open
LuanAdemi wants to merge 3 commits into
librepods-org:linux/rustfrom
LuanAdemi:linux/rust
Open

[Linux/rust] Implemented high-res microphone support#655
LuanAdemi wants to merge 3 commits into
librepods-org:linux/rustfrom
LuanAdemi:linux/rust

Conversation

@LuanAdemi

@LuanAdemi LuanAdemi commented Jun 26, 2026

Copy link
Copy Markdown

Added support for Apple’s proprietary high-resolution microphone stream

image

A huge thank you to everyone in the reverse-engineering Discord channel who helped make this possible. Special thanks to @kavishdevar for the initial discovery, Bluetooth packet captures, and for figuring out the correct AACP command sequence.

How it works

AirPods are capable of transmitting a high-resolution mono microphone stream using Apple’s AACP protocol, while simultaneously maintaining high-quality audio playback over A2DP.

This pull request adds support for:

  • Required AACP control commands
  • Audio packet framing for the uplink stream
  • AAC-ELD decoding via FFmpeg’s libavcodec (LGPL-licensed)
  • PipeWire integration using a virtual input device

TODO

  • additional testing across different hardware and software configurations
  • Check license compatibility (especially if we need a patent license)

Adds AAC-ELD decoding using ffmpegs libavcodec and pipes the decoded
0x58 AACP stream into a virtual PipeWire input.
@LuanAdemi LuanAdemi mentioned this pull request Jun 26, 2026
26 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant