Hacker News new | ask | show | jobs
by tyingq 1837 days ago
"it is unlikely that a non-Apple device has hardware support for adhoc wireless connections between devices. This makes implementation of AirDrop directly on non-Apple devices practically impossible without additional hardware. Instead we’ll implement a proxy..."

I get what they mean here, but it has been done. It does require a Wi-Fi card with support for monitor mode and frame injection. OWL did it with an Atheros AR9280.

Open drop also requires extracting keys from an Apple device if you want Apple interop.

See OWL:

https://github.com/seemoo-lab/owl

And Open drop:

https://github.com/seemoo-lab/opendrop

3 comments

Well, that’s why I said it’s unlikely :)! Without purchasing additional hardware it’s not practical to be able to run AirDrop directly on non-Apple devices.

There’s no need to extract any Apple keys to be able to receive files, but the public root key appears to be needed able to send files to an Apple device.

OWL, OpenDrop and their latest project PrivateDrop (https://github.com/seemoo-lab/privatedrop) are linked heavily throughout the series - their reverse engineering of the protocol have been absolutely invaluable in building something that works, more or less sanely on non-Apple devices! Huge kudos to them!

Ah, sure. I didn't mean it as criticism, just to say it's possible with the right wifi chipset.
> It does require a Wi-Fi card with support for monitor mode and frame injection. OWL did it with an Atheros AR9280.

I feel like Windows is in part to blame for wifi not evolving. The OS does only the most minimal, basic, simplistic wifi operations, so non-Apple laptops end up with wifi hardware supporting only the most basic, simple wifi capabilities.

I raelly want p2p connectivity to be better in this world, want our amazing digital connectivity to be distributed, not to move beyond relying on top down ISP based networking. Alas, the wifi hardware available on many laptops is just not there.

And even if it were there, it seems unlikely that Windows, Apple, and Google devices are willing to communicate with each other. Everyone has their own proprietary systems (or in Windows case, like the old days where you had to download winsock, it simply has: nothing).

Windows 10 has Miracast built in and has encouraged wifi drivers to support it. Miracast is built on top of Wifi Direct like most of these other p2p tools. Windows also has a hard to find "AirDrop"-like system, but between having no mobile devices anymore and incompatibility with Google and Apple's proprietary systems no one thinks to use it (because it's mostly just useful between Windows devices and at that point you probably have older tools like file shares that perfectly cromulent rather than worrying about physical proximity).

A lot of these things also don't get explored as much as they should be because the APIs are in the WinRT side of the fence and Project Reunion is only just now opening WinRT to a lot more classic Windows devs.

So Windows doesn't have "nothing" here, it's just trapped between rock (Apple) and hard place (Google).

Excellent point about Miracast.

It'd be interesting to see some example code that makes use of any platform SDKs windows has available for doing wifi-p2p connectivity with peers. Going from "this is a capability windows uses" to "this is a capability of the platform folks can use" is another jump in meta-level towards encouraging the virtuous hardware/software adoption cycle.

Seems the API is named almost exactly what you would expect, Windows.Devices.WifiDirect:

https://docs.microsoft.com/en-us/uwp/api/Windows.Devices.WiF...

When you turn your android phone into a wifi hotspot, it creates a lan between your phone and the client. Isn't that enought ?
Not to send an AirDrop to an Apple phone, no. That requires the adhoc p2p wifi scheme they are using, plus the keys/certs.