Skip to content

winawdl 0.1.0

Pre-release
Pre-release

Choose a tag to compare

@raph559 raph559 released this 12 Oct 00:59

The first tagged state of winawdl: Apple's AWDL radio protocol and AirDrop, receiving and sending, running natively on Windows on the built-in Realtek RTL8852CE, with a Windows app over both.

It is marked as a pre-release because it is research code that has run on one machine, with one card, against one iPhone.

There is nothing to download and run

The driver has to be built and signed on the machine that uses it: a certificate you make is trusted only where you install it, and no other signature is available to this project. So this release is the source at this commit. Get it with git, because the archives below leave the submodules out:

git clone --branch v0.1.0 https://github.com/raph559/winawdl.git
cd winawdl
git submodule update --init
git -C upstream/owl submodule update --init radiotap

Then follow Install in the README, after reading Before you run it: installing the driver takes the Wi-Fi card away from Windows until it is uninstalled, and adds a certificate made on your machine to its trusted stores.

What it holds

  • Driver. A user-mode (UMDF 2) driver that takes the card from the vendor driver and relays register accesses.
  • Radio. devourer drives the chip from an ordinary program over a new Windows PCIe backend: firmware boot, monitor-mode receive and transmit, hardware acknowledgement, block ack in both directions, 80 MHz.
  • AWDL. OWL's protocol core with a Windows I/O layer and a Wintun adapter, awdl0, that carries IPv6 to and from nearby Apple devices.
  • Receiving AirDrop. Photos, videos and Live Photos from an iPhone, at about 16 MB/s.
  • Sending AirDrop. Files into an iPhone's Photos at 9 to 14 MB/s, with the Bluetooth advertisement that wakes the receiver.
  • The app. One window over both, which also starts and stops the two daemons.

What has been tried

  • Over the air, from the terminal: the measurements above, recorded with how they were taken in DESIGN-NOTES.md.
  • Over the air, through the app: starting and stopping the radio, one 0.2 MB file sent to an iPhone and one 71 kB picture received from it. Large transfers through it have not been tried.
  • Without a radio: 79 tests of the AirDrop layer over loopback, and 45 and 58 checks of the app, the second set on its real window kept off screen. The first two run on GitHub on every push.

Not in it

Contacts Only in either direction, any card but the RTL8852CE, and a driver signed for machines other than the one that built it.