Star on GitHubStar1.1k stars

Case study

OpenDrop: an open reimplementation of Apple AirDrop

Python command-line reimplementation of Apple's AirDrop protocol from SEEMOO Lab's reverse-engineering research. It finds receivers via _airdrop._tcp DNS-SD, sends binary-plist /Discover and /Ask requests over HTTPS and uploads gzip-compressed CPIO archives to exchange files with iOS and macOS. It is not affiliated with Apple.

Targets
Protocol
Category
Independent reconstruction cases
Relationship
Independent reconstruction project
Sources reviewed

Requirements & limits

  • README calls OpenDrop experimental output of the Open Wireless Link reverse-engineering effort that lacks some AirDrop features and may break with future AirDrop versions, and says Apple neither affiliates with nor endorses it. The latest release is 0.13.0 (PyPI, 2021-04-29); the reviewed master commit of 2026-08-17 adds only a citation file and link edits since.
  • AirDrop runs only over Apple Wireless Direct Link, so OpenDrop is supported on macOS or on Linux with an open AWDL implementation such as SEEMOO's OWL; the default interface is awdl0. It needs Python 3.6+ (classifiers list 3.6–3.9), a current libarchive (Homebrew's on macOS), the openssl command and the packages in setup.py, including zeroconf and libarchive-c.
  • By default it creates its own self-signed key and certificate. Receivers in the default contacts-only mode need AirDrop keys, a certificate and an Apple ID validation record from the user's own Mac, which README says come from a separate SEEMOO extractor; the repository ships only Apple's public root CA certificate.
  • README lists known gaps: no Bluetooth Low Energy trigger, so Apple receivers may stay undiscovered; no peer authentication (neither TLS certificate chains nor validation records are checked) and automatic acceptance of every incoming file; and one file per transfer, with links sent but not received. CI runs black, flake8 and pytest on Python 3.6–3.9; its two tests only start the browser and server on loopback.
  • GPL-3.0. README points to the authors' USENIX Security 2019 AWDL paper and 2021 PrivateDrop paper for protocol details; AirDrop and AWDL remain Apple's protocols.

About this entry

The description was reviewed against primary sources.

Report an outdated entry Suggest a translation fix

Primary sources

  1. README.md GitHub · seemoo-lab/opendrop · Revision 11fe7ba
  2. setup.py GitHub · seemoo-lab/opendrop · Revision 11fe7ba
  3. opendrop/config.py GitHub · seemoo-lab/opendrop · Revision 11fe7ba
  4. opendrop/client.py GitHub · seemoo-lab/opendrop · Revision 11fe7ba
  5. opendrop/server.py GitHub · seemoo-lab/opendrop · Revision 11fe7ba
  6. .github/workflows/testpackage.yml GitHub · seemoo-lab/opendrop · Revision 11fe7ba
  7. tests/test_server.py GitHub · seemoo-lab/opendrop · Revision 11fe7ba
  8. CITATION.cff GitHub · seemoo-lab/opendrop · Revision 11fe7ba
  9. LICENSE GitHub · seemoo-lab/opendrop · Revision 11fe7ba
  10. https://pypi.org/project/opendrop/0.13.0/
  11. https://www.usenix.org/conference/usenixsecurity19/presentation/stute

More in Protocols

All 140 entries in ProtocolsProtocols case studies (91)

↑↓ move↵ open⌘↵ new tab