RobotX
RobotX

Reputation: 246

How does Airdrop use Bluetooth LE

I know apple never published the details of how does Airdrop works, but there are many research explained the basic logic for Airdrop: BLE + peer to peer wifi.

References:

https://blog.cryptographyengineering.com/2024/01/11/attack-of-the-week-airdrop-tracing/ https://www.linkedin.com/pulse/how-does-apple-airdrop-works-when-you-connected-same-wifi-kulatunga-khvuc/

Based on the articles above, the BLE (nearby device discovery) flow looks like this:

  1. File sender start broasting an ID, e.g "Hey, I'm [email protected], I'd like to send files"
  2. File receiver receives it, checks if this sender ID and its privacy setting, if allows the sender to send (either setting is Everyone, or the sender is within receiver's contacts), build BLE connection and respond back its name
  3. File sender gets the names for all receivers nearby from step2, and show these users on the Airdrop page
  4. Once user taps on a user, sender starts the peer-peer wifi and send necessary wifi setting info to that receiver
  5. Receiver gets the wifi info, build peer-peer wifi connection
  6. Start file transferring

Based on this flow, and my understanding for BLE, the file sender will be the Peripheral (because it will start with broadcasting) and the file receiver will be the Central. If so, then that means the Peripheral will be connected to multiple Centrals when there are multiple receivers appearing on the sender screen.

But based on my research, peripheral CANNOT connect to multiple centrals. So that will lead to another result, which means the file sender can only be the central.

So my question is:

If the file sender is the Central, how can the sender starts with broadcasting its ID so receiver can use it to check if its within contacts? And what's the process above should look like?

Thanks in advance.

Upvotes: -1

Views: 94

Answers (1)

Emil
Emil

Reputation: 18472

The restriction that a peripheral can only be connected to one central at a time was lifted in Bluetooth 4.1 (released back in 2013). See section 1.1.1 of the Link Layer Specification.

Upvotes: 1

Related Questions