{
  "added_at": "2026-11-03",
  "additional_evidence_urls": [
    "https://github.com/seemoo-lab/owl/blob/0ee3263f944ea721c355f826aa90d636d012a512/CMakeLists.txt",
    "https://github.com/seemoo-lab/owl/blob/0ee3263f944ea721c355f826aa90d636d012a512/.gitmodules",
    "https://github.com/seemoo-lab/owl/blob/0ee3263f944ea721c355f826aa90d636d012a512/daemon/owl.c",
    "https://github.com/seemoo-lab/owl/blob/0ee3263f944ea721c355f826aa90d636d012a512/src/frame.h",
    "https://github.com/seemoo-lab/owl/tree/0ee3263f944ea721c355f826aa90d636d012a512/tests",
    "https://github.com/seemoo-lab/owl/blob/0ee3263f944ea721c355f826aa90d636d012a512/.github/workflows/test.yml",
    "https://github.com/seemoo-lab/owl/blob/0ee3263f944ea721c355f826aa90d636d012a512/COPYING",
    "https://doi.org/10.1145/3241539.3241566"
  ],
  "category": "reconstruction-cases",
  "description_en": "Reimplements Apple Wireless Direct Link (AWDL), the proprietary Wi-Fi ad hoc protocol Apple devices use for peer-to-peer links such as AirDrop, as a user-space C daemon for Linux and macOS; the README calls it the result of reverse engineering by the Open Wireless Link project at TU Darmstadt's SEEMOO lab. OWL runs the master election, synchronises availability windows and the channel sequence, parses and crafts AWDL action and data frames, and provides an awdl0 virtual interface with a link-local IPv6 address, so unmodified IPv6 programs such as SEEMOO's OpenDrop AirDrop client can reach Apple devices. The authors describe the recovered protocol in a MobiCom 2018 paper.",
  "description_zh": "以用户态 C 守护进程在 Linux 和 macOS 上重新实现 Apple 无线直连（AWDL）——Apple 设备用于 AirDrop 等点对点连接的专有 Wi-Fi 自组网协议；README 称其为达姆施塔特工业大学 SEEMOO 实验室 Open Wireless Link 项目逆向工程的成果。OWL 执行主节点选举，同步可用窗口和信道序列，解析并构造 AWDL 动作帧与数据帧，并提供带链路本地 IPv6 地址的 awdl0 虚拟网络接口，使未经修改的 IPv6 程序（如 SEEMOO 的 AirDrop 客户端 OpenDrop）能够与 Apple 设备通信。作者在 MobiCom 2018 论文中描述了还原出的协议。",
  "entry_url": "https://awesomerea.org/resources/owl-awdl-open-implementation-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/owl-awdl-open-implementation-case/",
  "evidence_url": "https://github.com/seemoo-lab/owl/blob/0ee3263f944ea721c355f826aa90d636d012a512/README.md",
  "group": "cases",
  "id": "owl-awdl-open-implementation-case",
  "json_url": "https://awesomerea.org/resources/owl-awdl-open-implementation-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/owl-awdl-open-implementation-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/owl-awdl-open-implementation-case/index.md",
  "name": "OWL: an open Apple Wireless Direct Link implementation",
  "name_zh": "OWL：开源的 Apple 无线直连（AWDL）实现",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirements": [
    "Archived; the README calls OWL experimental and no longer maintained, says it does not support all AWDL features and may be incompatible with later AWDL versions, and states no affiliation with or endorsement by Apple. The last code change is a January 2022 buffer-overread fix; the 2026-08-17 and 2026-10-12 commits only replaced links to the former owlink website, which the README says is no longer associated with the project. There are no tags or releases.",
    "Needs a Wi-Fi card with active monitor mode and frame injection, used directly: the authors developed and tested with an Atheros AR9280, and virtual machines without USB or PCIe passthrough and WSL are not supported. OWL runs with sudo on one wireless interface, which it then uses only for AWDL, so no access-point connection can run alongside it; channels 6, 44 and 149 are available subject to the local regulatory domain, and OWL can only monitor when it cannot use the chosen channel.",
    "Builds with CMake 3.5+ and a C compiler against libpcap, libev and, on Linux, libnl; on macOS it uses CoreWLAN and needs a tun/tap driver such as tuntaposx. googletest and the radiotap library are git submodules. The workflow on ubuntu-latest and macos-latest builds the code and runs the googletest suite for frame-buffer parsing, election, peers and synchronisation; interoperation with Apple devices is the authors' report.",
    "Nothing from Apple is needed to build it, and the repository holds only source code, tests, build files and an architecture diagram; using it requires nearby Apple devices with AWDL. README lists known gaps: static election metric and counter values, a channel sequence fixed at start-up because adapting it would need a better understanding of Apple's implementation, and no concurrent AP connection. It also cites the group's MobiCom 2018 protocol paper and demo and a USENIX Security 2019 security analysis of AWDL.",
    "GPL-3.0 (COPYING); AWDL and AirDrop remain Apple's proprietary technology."
  ],
  "requirements_zh": [
    "仓库已归档；README 称 OWL 是实验性软件、已不再维护，并未支持 AWDL 的全部功能，可能与之后的 AWDL 版本不兼容，同时声明与 Apple 无关联、未获其认可。最后一次代码改动是 2022 年 1 月修复缓冲区越界读取；2026-08-17 和 2026-10-12 的提交只是替换了指向原 owlink 网站的链接，README 说明该网站已与本项目无关。仓库没有标签或发布版本。",
    "需要支持主动监听模式和帧注入、且可直接访问的 Wi-Fi 网卡：作者使用 Atheros AR9280 开发和测试；不支持未做 USB 或 PCIe 直通的虚拟机，也不支持 WSL。OWL 需以 sudo 在一个无线接口上运行，运行后该接口只用于 AWDL，因此不能同时连接接入点；可用信道为 6、44 和 149，具体取决于当地的无线电管理规定，无法使用所选信道时 OWL 只能监听。",
    "使用 CMake 3.5+ 和 C 编译器构建，依赖 libpcap、libev，Linux 上还需 libnl；macOS 上使用 CoreWLAN，并需要 tuntaposx 等 tun/tap 驱动。googletest 和 radiotap 库以 git 子模块引入。ubuntu-latest 与 macos-latest 上的工作流会构建代码并运行 googletest 测试，覆盖帧缓冲区解析、选举、对端管理和同步；与 Apple 设备的互通情况来自作者报告。",
    "构建时不需要任何 Apple 文件，仓库只包含源代码、测试、构建文件和一张架构图；实际使用需要附近有启用 AWDL 的 Apple 设备。README 列出的已知不足包括：选举指标和计数器取静态值；信道序列在启动时固定，因为动态调整需要进一步了解 Apple 的实现；不能同时连接接入点。README 还引用了该团队的 MobiCom 2018 协议论文及演示，以及一篇 USENIX Security 2019 的 AWDL 安全分析论文。",
    "GPL-3.0 许可（COPYING）；AWDL 和 AirDrop 仍是 Apple 的专有技术。"
  ],
  "targets": [
    "protocol"
  ],
  "url": "https://github.com/seemoo-lab/owl",
  "verification": "source-reviewed",
  "verified_at": "2026-10-27"
}
