librepods icon indicating copy to clipboard operation
librepods copied to clipboard

Support for Airpods Max

Open anshulahuja98 opened this issue 11 months ago • 8 comments

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

anshulahuja98 avatar Jan 13 '25 13:01 anshulahuja98

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.

kavishdevar avatar Jan 13 '25 17:01 kavishdevar

Bro does it work for fakes??

arnav-nisal avatar Jan 13 '25 17:01 arnav-nisal

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

kavishdevar avatar Jan 13 '25 20:01 kavishdevar

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...

tyrone-sudeium avatar Nov 17 '25 06:11 tyrone-sudeium

@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!

kavishdevar avatar Nov 17 '25 06:11 kavishdevar

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!

tyrone-sudeium avatar Nov 17 '25 06:11 tyrone-sudeium

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

kavishdevar avatar Nov 17 '25 07:11 kavishdevar

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!

andypiper avatar Nov 21 '25 15:11 andypiper