Skip to content

WIP: [Linux] BLE FindMy#103

Closed
tim-gromeyer wants to merge 2 commits intokavishdevar:mainfrom
tim-gromeyer:linux-ble-findmy
Closed

WIP: [Linux] BLE FindMy#103
tim-gromeyer wants to merge 2 commits intokavishdevar:mainfrom
tim-gromeyer:linux-ble-findmy

Conversation

@tim-gromeyer
Copy link
Copy Markdown
Contributor

WIP, bare-bones implementation of FindMy protocol parsing for the ble scanner.

Can't test, since FindMy is not set-up for my AirPods (airpods are the only apple device in my whole household)

FindMy includes battery info, but it's very vague. See https://github.com/furiousMAC/continuity/blob/master/messages/findmy.md

@j-silver
Copy link
Copy Markdown

I'd like to test it on my MacBook, but apparently the AirPods can only be added to the FindMy network from an iOS device, and I don't have any.

Can you believe it?

@tim-gromeyer
Copy link
Copy Markdown
Contributor Author

Nope that's just unbelievable. I also wanted to test it, but without any apple device I can't add it to the findmy network. I hate apple for it

@Luminoso-256
Copy link
Copy Markdown

I can give this a test real quick

@Luminoso-256
Copy link
Copy Markdown

Luminoso-256 commented Jun 28, 2025

Alright, so mixed results:
When I take an both pods out and put em in the case, I do get the case battery display:
image
However, once both of them are out, the case battery only gets picked up when the case lid is open. When the case lid is closed the app ui shows as fully disconnected and gives me no info.
In general closing the case gives me a disconnected notification/the app seems to think there's nothing more to it

@Luminoso-256
Copy link
Copy Markdown

Luminoso-256 commented Jun 28, 2025

Looking through the PR itself, doesn't look like i'm getting any of the new proximity pair messages at all in the debug output - so it seems like the above described behavior is just what main does already

@tim-gromeyer
Copy link
Copy Markdown
Contributor Author

Yeah it's just a proof of concept, and I can't test it. Have you build the librepods app (in linux folder), or the ble scanner in linux/ble? Because this pr implements it im the ble scanner

@Luminoso-256
Copy link
Copy Markdown

sorry, missed that initially.
built the BLE subtarget, couple things:

  • needed elevation to pick up anything at all (qt.bluetooth.bluez: Missing CAP_NET_ADMIN permission. Cannot determine whether a found address is of random or public type.)
  • it does pick up a device pretty regularly, which i assume to be my case, however it fails to correctly get any of the data from said device (no battery status, etc.)
    image
    The status it detects from the device does correctly update with actions though - moves from 0x62 when right is out to 0x64 when both back in case, so this is clearly the right device.

@kavishdevar
Copy link
Copy Markdown
Owner

added BLE parsing for battery and auto connect to the rust app

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.

4 participants