FindMy
FindMy copied to clipboard
Implement Google Find My
Google just activated their own Find My network on Android this weekend. Details are still scarce, so let's collect all technical info needed to send the BLE advertisement and subsequently query this network here. The BLE part can then be implemented here: https://github.com/biemster/st17h66_RF (and I will also finally put the Apple FindMy advertisement there then as well, so the chip can do both)
For anybody working on this the specification seems to be here (https://developers.google.com/nearby/fast-pair/specifications/extensions/fmdn)
This is very interesting.
- Are there any indications that Google will release an API or documentation for this, or will a similar investigation like Haystack be needed?
- Is there documentation on how the hardware is supposed to function and can it in that case be usefull for us?
Note: Some interesting blogpost: https://security.googleblog.com/2024/04/find-my-device-network-security-privacy-protections.html
not sure yet. From that page, device manufacturers at least have to do a google NDA to ship a find my device compatible device, but that's pretty normal right?
My question is if Google / Android phones are now reporting Apple's FindMy devices to their (or even Apple's) server as well. If Google isn't releasing info on how to request the data from their server, it probably needs to be hacked like it was done with Apple before. If Android now sends location reports to Apple's server it would enlarge the FindMy network instantly without the need to make any changes for Apple and us.
Yea I'm fairly certain that's not happening. The google Find my Device network is separate. There are some architectural changes too.
I think the only crossover between the networks is individual devices detecting unwanted trackers.
This new standard has some details on the protocol https://datatracker.ietf.org/doc/draft-detecting-unwanted-location-trackers/01/
also there is a spec https://developers.google.com/nearby/fast-pair/specifications/extensions/fmdn there are a lot more GATT services/characteristics required like Get_Accessory_Category_Response
flipper guys also planning it https://github.com/MatthewKuKanich/FindMyFlipper/issues/43
not sure if fast pair is relevant
.. _Fast Pair
: https://developers.google.com/nearby/fast-pair/specifications/introduction
.. _Fast Pair roles
: https://developers.google.com/nearby/fast-pair/specifications/configuration#roles
.. _Fast Pair Model Registration
: https://developers.google.com/nearby/fast-pair/specifications/service/modelregistration
.. _Fast Pair TX power
: https://developers.google.com/nearby/fast-pair/specifications/configuration#transmit_power
.. _Fast Pair Advertising
: https://developers.google.com/nearby/fast-pair/specifications/service/provider
.. _Fast Pair GATT Characteristics
: https://developers.google.com/nearby/fast-pair/specifications/characteristics
.. _Fast Pair Procedure
: https://developers.google.com/nearby/fast-pair/specifications/service/gatt
.. _Verifying Fast Pair
: https://developers.google.com/nearby/fast-pair/help#verifying_fast_pair
.. _Fast Pair Personalized Name extension
: https://developers.google.com/nearby/fast-pair/specifications/extensions/personalizedname
.. _Fast Pair Certification Guidelines for Personalized Name
: https://developers.google.com/nearby/fast-pair/certification-guideline#2_personalized_name
.. _Fast Pair Battery Notification extension
: https://developers.google.com/nearby/fast-pair/specifications/extensions/batterynotification
.. _Fast Pair Find My Device Network extension
: https://developers.google.com/nearby/fast-pair/specifications/extensions/fmdn
.. _Fast Pair FMDN advertising
: https://developers.google.com/nearby/fast-pair/specifications/extensions/fmdn#advertised-frames
.. _Fast Pair Locator Tag Specific Guidelines
: https://developers.google.com/nearby/fast-pair/specifications/extensions/fmdn#locator-tag
.. _Fast Pair Unwanted Tracking Prevention Guidelines
: https://developers.google.com/nearby/fast-pair/specifications/extensions/fmdn#unwanted-tracking-prevention
More info that people have started collecting here: https://github.com/seemoo-lab/openhaystack/discussions/210
Maybe helpful: from Nordic Semiconductor (manufacturer of nRF52840 - Multiprotocol Bluetooth 5.4 SoC supporting Bluetooth Low Energy, Bluetooth mesh, NFC, Thread and Zigbee) Bluetooth Fast Pair: Locator tag (doc) https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/samples/bluetooth/fast_pair/locator_tag/README.html Bluetooth: Fast Pair locator tag (zephyr source code) https://github.com/NordicBuilder/sdk-nrf/tree/0e99b70bcb259379b2faa87f9e2abcaf5de1e7a0/samples/bluetooth/fast_pair/locator_tag Fast Pair Validator (exclusively for manufacturers of bluetooth devices) https://play.google.com/store/apps/details?id=com.google.location.nearby.apps.fastpair.validator
I added an esp32 micropython script that sends the FMDN advertisement as detailed in https://developers.google.com/nearby/fast-pair/specifications/extensions/fmdn#advertised-frames table 8. I have no clue yet how to compute the ephemeral id or how to retrieve the reports through the google api's yet, but it's a start!
nRF Connect reports this as an Eddystone, with the ephemeral id as the data field.
I added an esp32 micropython script that sends the FMDN advertisement as detailed in https://developers.google.com/nearby/fast-pair/specifications/extensions/fmdn#advertised-frames table 8. I have no clue yet how to compute the ephemeral id or how to retrieve the reports through the google api's yet, but it's a start!
nRF Connect reports this as an Eddystone, with the ephemeral id as the data field.
I just got some Chipolo tags, if you need me to scrape some data that might help, happy to do so.
I just got some Chipolo tags, if you need me to scrape some data that might help, happy to do so.
That would be great! Are you able to mitm proxy an android with the account your chipolos are registered on? (and confirming they advertise as an eddystone with a 20 byte data field would already be of huge help)
chipolo review, https://youtu.be/3EAu08m5Lbc?feature=shared&t=285 currently worse than Samsung's, which is closer to Apple's, but hopefully will change with time.