[GH-ISSUE #30] Support for Airpods Max #17

Open
opened 2026-03-02 12:02:40 +03:00 by kerem · 8 comments
Owner

Originally created by @anshulahuja98 on GitHub (Jan 13, 2025).
Original GitHub issue: https://github.com/kavishdevar/librepods/issues/30

Is your feature request related to a problem? Please describe.
Need support for Airpods max

Describe the solution you'd like

Describe alternatives you've considered

Additional context

Originally created by @anshulahuja98 on GitHub (Jan 13, 2025). Original GitHub issue: https://github.com/kavishdevar/librepods/issues/30 **Is your feature request related to a problem? Please describe.** Need support for Airpods max **Describe the solution you'd like** **Describe alternatives you've considered** **Additional context**
Author
Owner

@kavishdevar commented on GitHub (Jan 13, 2025):

it technically would already work, like head detection and battery. Just that the UI would be the same as Pro 2. I would need to obviously look at the packets that are sent to implement AirPods Max-only features, if any. My current focus is developing an easier way to patch. Once that's done, I'll work on this.

Added to #20.

<!-- gh-comment-id:2587746979 --> @kavishdevar commented on GitHub (Jan 13, 2025): it technically would already work, like head detection and battery. Just that the UI would be the same as Pro 2. I would need to obviously look at the packets that are sent to implement AirPods Max-only features, if any. My current focus is developing an easier way to patch. Once that's done, I'll work on this. Added to #20.
Author
Owner

@arnav-nisal commented on GitHub (Jan 13, 2025):

Bro does it work for fakes??

<!-- gh-comment-id:2587757884 --> @arnav-nisal commented on GitHub (Jan 13, 2025): Bro does it work for fakes??
Author
Owner

@kavishdevar commented on GitHub (Jan 13, 2025):

I do not know. Depends on what you've got. You will have to test it out for yourself.

<!-- gh-comment-id:2588117821 --> @kavishdevar commented on GitHub (Jan 13, 2025): I do not know. Depends on what you've got. You will have to test it out for yourself.
Author
Owner

@tyrone-sudeium commented on GitHub (Nov 17, 2025):

For what it's worth on Linux most features work, except for battery status. I suspect the data format is different since AirPods Max are the only model in the range that aren't broken up into Case+L+R batteries, it has just one battery for the entire unit. I would love to help by providing a trace of the data but not sure how to capture this...

<!-- gh-comment-id:3540190142 --> @tyrone-sudeium commented on GitHub (Nov 17, 2025): For what it's worth on Linux most features work, _except_ for battery status. I suspect the data format is different since AirPods Max are the only model in the range that aren't broken up into Case+L+R batteries, it has just one battery for the entire unit. I would love to help by providing a trace of the data but not sure how to capture this...
Author
Owner

@kavishdevar commented on GitHub (Nov 17, 2025):

@tyrone-sudeium are you using the new app (release linux-v0.1.0 tag) or the old one?
Either way, I would like to see what the packet starting with 0400040004 looks like. Run the binary with --debug to get the complete packet.

Thanks!

<!-- gh-comment-id:3540203286 --> @kavishdevar commented on GitHub (Nov 17, 2025): @tyrone-sudeium are you using the new app (release linux-v0.1.0 tag) or the old one? Either way, I would like to see what the packet starting with `0400040004` looks like. Run the binary with `--debug` to get the complete packet. Thanks!
Author
Owner

@tyrone-sudeium commented on GitHub (Nov 17, 2025):

I'm running release-nightly aka d9469c2. As for packets starting with 0400040004 I do see:

librepods:  Received:  "040004000400010101640201" 
librepods:  Unrecognized packet format:  "040004000400010101640201" 

EDIT: I've built the latest main from source and it does show the battery status, but somewhat erroneously as the "right" pod, but better than not reporting anything at all!

<!-- gh-comment-id:3540231232 --> @tyrone-sudeium commented on GitHub (Nov 17, 2025): I'm running `release-nightly` aka d9469c2. As for packets starting with `0400040004` I do see: ``` librepods: Received: "040004000400010101640201" librepods: Unrecognized packet format: "040004000400010101640201" ``` EDIT: I've built the latest `main` from source and it does show the battery status, but somewhat erroneously as the "right" pod, but better than not reporting anything at all!
Author
Owner

@kavishdevar commented on GitHub (Nov 17, 2025):

Alright, thanks! I'll add that soon in the new app too.

<!-- gh-comment-id:3540352967 --> @kavishdevar commented on GitHub (Nov 17, 2025): Alright, thanks! I'll add that soon in the new app too.
Author
Owner

@andypiper commented on GitHub (Nov 21, 2025):

For the sake of hopefully some more logging -> better support, I attached a debug log of starting up librepods and connecting to my AirPods Max in this gist

I go on to then toggle the various settings in the linux-rust app window. Of these, Noise Cancellation and Transparency do have an effect on the device, the others have no audible change to the way the AirPods respond. The battery level shows 0 across both "buds" and case.

Unlike with the AirPods Pro, the top bar icon remains grey (not green) when the Max are connected (GNOME does show a battery level for the Max, though).

Let me know if I can help with any other debug info!

<!-- gh-comment-id:3563634508 --> @andypiper commented on GitHub (Nov 21, 2025): For the sake of hopefully some more logging -> better support, I attached a debug log of starting up librepods and connecting to my AirPods Max in [this gist](https://gist.github.com/andypiper/e5d8426d86720e429d1adc21b8ba7a59) I go on to then toggle the various settings in the linux-rust app window. Of these, Noise Cancellation and Transparency do have an effect on the device, the others have no audible change to the way the AirPods respond. The battery level shows 0 across both "buds" and case. Unlike with the AirPods Pro, the top bar icon remains grey (not green) when the Max are connected (GNOME does show a battery level for the Max, though). Let me know if I can help with any other debug info!
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/librepods#17
No description provided.