t4t5/omdrop-owl

airdrop for non-apple devices

Shell

2,664

8 commits

updated Oct 14, 2026

See the code

See what people are saying

SourceMessageScoreDate

AirDrop from an iPhone straight to a Linux laptop. no cable. omdrop-owl is 5 days old, already 2.4k stars. runs on a few Intel and MediaTek Wi-Fi cards. drop the link into Claude Code or Codex and say "install this for me" is your card supported? https://t.co/5JQD4yOpjR

1

Oct 13, 2026

F*CKING GitHub is full of free stuff almost nobody uses 10 repos trending right now, from the simplest to the most technical: stuff anyone can use omdrop-owl: AirDrop between an iPhone and a Linux laptop, even without an Apple chip (2.2K) https://t.co/fYvX4g7uLk folia-major: a https://t.co/AkV2XjWcQF https://t.co/K21ti2hmEH

54

Oct 12, 2026

离谱!iPhone 隔空投送到 Linux 电脑,真能用了 omdrop-owl,上线 4 天 2200 多星。iPhone 和 Linux 笔记本直接 AirDrop 传文件,不用数据线。 拍完照,直接甩到电脑。 把链接丢给 Claude Code / Codex / Cursor,说一句"帮我装上" 你的网卡在支持表里吗? https://t.co/GKehioIrMN

1

Oct 12, 2026

repo: https://t.co/Jm9ybrhD35

17

Oct 12, 2026

Airdrop finally leaves Apple. Omdrop Owl is an open repo that brings Airdrop-style sharing to non-Apple devices. It passed 2,000 stars in days, which shows real demand. I think it is worth watching. https://t.co/3RFCOcGXJj

2

Oct 11, 2026

Built on devourer (OpenIPC) for the user-space Realtek driver, OWL (seemoo-lab) for AWDL, and omdrop for the AirDrop receiver. https://t.co/kXvgA85M2N https://t.co/MmtqeMegbI

1

Oct 11, 2026

苹果的隔空投送也被逆向了 iPhone 和 Linux 笔记本电脑之间可以通过 AirDrop 实现数据传输,前提是它们的 Wi-Fi 芯片并非苹果的博通芯片。 牛: https://t.co/AKIUwj7Uwq https://t.co/t3nQ8pa0Bj

1

Oct 11, 2026

omdrop-owl 是一个让 iPhone 与 Linux 笔记本电脑之间实现 AirDrop 隔空投送的无线电后端项目,它基于 AWDL 协议和用户态 OWL 实现,支持 MediaTek MT7925(共享模式)和 Intel AX201/AX211(独占模式)等网卡。https://t.co/8nGHwkl1fN https://t.co/urOYSYIdeN

4

Oct 11, 2026

一款面向非苹果设备的 AirDrop 式近距离文件传输工具!🔥 💡 用途: 让安卓、Windows 等非苹果设备之间也能像 AirDrop 一样快速互传文件,无需联网或登录账号,适合同一场所内临时分享文件。 🔗 https://t.co/O83FP06kzu 😱 #开源工具 https://t.co/sNrWqv8h6i

8

Oct 11, 2026

https://t.co/UODotac61F

4

Oct 11, 2026

README

omdrop-owl

The radio half of omdrop for machines without Apple's Broadcom Wi-Fi. AWDL runs in userspace through OWL on a monitor interface, and omdrop's own receiver and sender run over it unchanged. First target: the MediaTek MT7925 (mt7925e), as in the Framework 13, where AirDrop works in both directions while Wi-Fi stays connected.

It is a sibling of omdrop-awdl, the Broadcom radio package, and plugs into omdrop the same way: helpers in /usr/lib/omdrop that the omdrop CLI and panel call. The contract is described in omdrop's docs/radio-backend.md.

How it works

The Wi-Fi station stays associated, and AWDL shares its channel:

  1. AWDL runs on the access point's own channel, which has to be 6, 44 or 149 (AWDL's channels). An iPhone spends a large share of its AWDL time slots on those channels, so the radio never has to leave the AP.
  2. A monitor interface carries the station's MAC, and OWL runs on it with -S intersect, advertising only the phone's slots on that channel.
  3. The MT7925 sends injected frames from the station's MAC regardless, and the station interface ACKs the phone's unicast to that MAC, so no "active" monitor interface is needed.
  4. OWL creates awdl0. omdrop's receiver binds to it, and omdrop-awdl's awdl-airdrop-adv.py --plain announces _airdrop._tcp on it every few seconds (--plain, because OWL adds the AWDL encapsulation itself).

Layout

userspace/omdrop-discoverable   the radio helper (start, stop, status, peers, probe)
userspace/owl-profiles          per-driver settings: the supported hardware
patches/owl-*.patch             our changes to OWL, applied in name order
tools/build-owl.sh              builds OWL at a pinned commit, with the patches
tools/stage.sh                  assembles build/lib, laid out like /usr/lib/omdrop
build/lib/                      (generated) ours, OWL, and omdrop-awdl's portable tools
upstream/                       (generated) OWL and omdrop-awdl at pinned commits

From omdrop-awdl we reuse, unmodified, the tools that only talk to awdl0 or BlueZ: send-to-peer, airdrop-send.py, ble-airdrop-adv.py, awdl-airdrop-adv.py, awdl-mdns-respond.py and the modules they import. They are fetched at a pinned commit by tools/stage.sh, never committed here.

Status

  • omdrop-discoverable implements the whole contract. Checked on the MT7925: start returns in under 2 s with awdl0 usable, announcements going out and the phone listed by peers; a second start returns 5 and adjusts the window; stop tears down in about 2 s; a window expires on its own.
  • omdrop's receiver, sender, announcer and BLE wake all work over it, unmodified, in both directions.

Supported hardware

What omdrop-owl does on each Wi-Fi driver comes from userspace/owl-profiles, one line per driver:

DriverCardStatus
mt7925eMediaTek MT7925 (Framework 13)Tested: both directions, Wi-Fi stays connected

Any other card falls back to the table's * line, which only runs once you opt in with echo 1 | sudo tee /etc/omdrop/allow-untested.

Adding your card

Cards that can inject frames from a monitor interface while connected to Wi-Fi are the likely candidates. Most mac80211 drivers can, but how they behave around it varies, which is what the profile records.

  1. Find your driver: basename $(readlink /sys/class/net/<wifi>/device/driver). Put your AP on channel 6, 44 or 149.
  2. Opt in (/etc/omdrop/allow-untested), and copy the * line to /etc/omdrop/owl-profiles with your driver's name. That file is read before the packaged table, so you can change settings without rebuilding.
  3. Try it: turn omdrop on, send a photo from an iPhone, send one back, and turn it off. Then watch Wi-Fi for five minutes (ping your router): if it stops receiving after omdrop turns off, keep reconnect yes.
  4. If something fails, try the other mon_mac setting. Report what you saw either way.
  5. Open a pull request adding your line to userspace/owl-profiles, with status tested and, in notes, the card, kernel version and what you observed.

Cards that can't inject while connected need an "exclusive" mode, which takes Wi-Fi away for the window. That mode doesn't exist yet; an issue with what you found is welcome.

Install

makepkg -si

This builds OWL at the commit pinned in pins, with patches/, and installs it root-owned into /usr/lib/omdrop together with omdrop-discoverable and omdrop-awdl's portable tools, a polkit policy for the helper, and a NetworkManager rule keeping awdl0 and mon0 unmanaged. It conflicts with brcmfmac-awdl-dkms: one radio backend at a time.

Then install omdrop itself (a version with radio-backend support) and turn it on from the bar. /usr/lib/omdrop/omdrop-discoverable probe says what, if anything, is in the way.

For development without installing, tools/build-owl.sh and tools/stage.sh assemble the same files in build/lib.

Known issues

  • Deleting a monitor interface while the station is associated wedges the MT7925. A bare monitor interface, added and deleted with nothing else running, leaves the station "Connected" but receiving nothing, from seconds to a few minutes later, until mt7925e is reloaded. That makes it an mt76/firmware bug. omdrop's contract forbids the radio helper from reloading the driver, so stop forces a reconnect right after deleting the interface instead. In testing, that kept the station healthy for the four minutes watched after every teardown.
  • Sending is slower than receiving (about 490 kB/s against 1.3 MB/s). Injected frames leave at a fixed pace of about one every 2.5 ms, whatever PHY rate OWL requests (owl -R, from patches/owl-01-tx-rate.patch) and however many slots the phone offers.
  • The AP has to be on channel 6, 44 or 149. Otherwise start exits 3 and says so. Taking the card off the AP for the duration of a window would lift this, but isn't implemented.
  • iPhones randomise their AWDL address, so nothing here remembers a peer.
airdrop
awdl
omarchy
owl

t4t5/omdrop-owl

airdrop for non-apple devices

Shell

2,664

8 commits

updated Oct 14, 2026

See the code

See what people are saying

SourceMessageScoreDate

AirDrop from an iPhone straight to a Linux laptop. no cable. omdrop-owl is 5 days old, already 2.4k stars. runs on a few Intel and MediaTek Wi-Fi cards. drop the link into Claude Code or Codex and say "install this for me" is your card supported? https://t.co/5JQD4yOpjR

1

Oct 13, 2026

F*CKING GitHub is full of free stuff almost nobody uses 10 repos trending right now, from the simplest to the most technical: stuff anyone can use omdrop-owl: AirDrop between an iPhone and a Linux laptop, even without an Apple chip (2.2K) https://t.co/fYvX4g7uLk folia-major: a https://t.co/AkV2XjWcQF https://t.co/K21ti2hmEH

54

Oct 12, 2026

离谱!iPhone 隔空投送到 Linux 电脑,真能用了 omdrop-owl,上线 4 天 2200 多星。iPhone 和 Linux 笔记本直接 AirDrop 传文件,不用数据线。 拍完照,直接甩到电脑。 把链接丢给 Claude Code / Codex / Cursor,说一句"帮我装上" 你的网卡在支持表里吗? https://t.co/GKehioIrMN

1

Oct 12, 2026

repo: https://t.co/Jm9ybrhD35

17

Oct 12, 2026

Airdrop finally leaves Apple. Omdrop Owl is an open repo that brings Airdrop-style sharing to non-Apple devices. It passed 2,000 stars in days, which shows real demand. I think it is worth watching. https://t.co/3RFCOcGXJj

2

Oct 11, 2026

Built on devourer (OpenIPC) for the user-space Realtek driver, OWL (seemoo-lab) for AWDL, and omdrop for the AirDrop receiver. https://t.co/kXvgA85M2N https://t.co/MmtqeMegbI

1

Oct 11, 2026

苹果的隔空投送也被逆向了 iPhone 和 Linux 笔记本电脑之间可以通过 AirDrop 实现数据传输,前提是它们的 Wi-Fi 芯片并非苹果的博通芯片。 牛: https://t.co/AKIUwj7Uwq https://t.co/t3nQ8pa0Bj

1

Oct 11, 2026

omdrop-owl 是一个让 iPhone 与 Linux 笔记本电脑之间实现 AirDrop 隔空投送的无线电后端项目,它基于 AWDL 协议和用户态 OWL 实现,支持 MediaTek MT7925(共享模式)和 Intel AX201/AX211(独占模式)等网卡。https://t.co/8nGHwkl1fN https://t.co/urOYSYIdeN

4

Oct 11, 2026

一款面向非苹果设备的 AirDrop 式近距离文件传输工具!🔥 💡 用途: 让安卓、Windows 等非苹果设备之间也能像 AirDrop 一样快速互传文件,无需联网或登录账号,适合同一场所内临时分享文件。 🔗 https://t.co/O83FP06kzu 😱 #开源工具 https://t.co/sNrWqv8h6i

8

Oct 11, 2026

https://t.co/UODotac61F

4

Oct 11, 2026

README

omdrop-owl

The radio half of omdrop for machines without Apple's Broadcom Wi-Fi. AWDL runs in userspace through OWL on a monitor interface, and omdrop's own receiver and sender run over it unchanged. First target: the MediaTek MT7925 (mt7925e), as in the Framework 13, where AirDrop works in both directions while Wi-Fi stays connected.

It is a sibling of omdrop-awdl, the Broadcom radio package, and plugs into omdrop the same way: helpers in /usr/lib/omdrop that the omdrop CLI and panel call. The contract is described in omdrop's docs/radio-backend.md.

How it works

The Wi-Fi station stays associated, and AWDL shares its channel:

  1. AWDL runs on the access point's own channel, which has to be 6, 44 or 149 (AWDL's channels). An iPhone spends a large share of its AWDL time slots on those channels, so the radio never has to leave the AP.
  2. A monitor interface carries the station's MAC, and OWL runs on it with -S intersect, advertising only the phone's slots on that channel.
  3. The MT7925 sends injected frames from the station's MAC regardless, and the station interface ACKs the phone's unicast to that MAC, so no "active" monitor interface is needed.
  4. OWL creates awdl0. omdrop's receiver binds to it, and omdrop-awdl's awdl-airdrop-adv.py --plain announces _airdrop._tcp on it every few seconds (--plain, because OWL adds the AWDL encapsulation itself).

Layout

userspace/omdrop-discoverable   the radio helper (start, stop, status, peers, probe)
userspace/owl-profiles          per-driver settings: the supported hardware
patches/owl-*.patch             our changes to OWL, applied in name order
tools/build-owl.sh              builds OWL at a pinned commit, with the patches
tools/stage.sh                  assembles build/lib, laid out like /usr/lib/omdrop
build/lib/                      (generated) ours, OWL, and omdrop-awdl's portable tools
upstream/                       (generated) OWL and omdrop-awdl at pinned commits

From omdrop-awdl we reuse, unmodified, the tools that only talk to awdl0 or BlueZ: send-to-peer, airdrop-send.py, ble-airdrop-adv.py, awdl-airdrop-adv.py, awdl-mdns-respond.py and the modules they import. They are fetched at a pinned commit by tools/stage.sh, never committed here.

Status

  • omdrop-discoverable implements the whole contract. Checked on the MT7925: start returns in under 2 s with awdl0 usable, announcements going out and the phone listed by peers; a second start returns 5 and adjusts the window; stop tears down in about 2 s; a window expires on its own.
  • omdrop's receiver, sender, announcer and BLE wake all work over it, unmodified, in both directions.

Supported hardware

What omdrop-owl does on each Wi-Fi driver comes from userspace/owl-profiles, one line per driver:

DriverCardStatus
mt7925eMediaTek MT7925 (Framework 13)Tested: both directions, Wi-Fi stays connected

Any other card falls back to the table's * line, which only runs once you opt in with echo 1 | sudo tee /etc/omdrop/allow-untested.

Adding your card

Cards that can inject frames from a monitor interface while connected to Wi-Fi are the likely candidates. Most mac80211 drivers can, but how they behave around it varies, which is what the profile records.

  1. Find your driver: basename $(readlink /sys/class/net/<wifi>/device/driver). Put your AP on channel 6, 44 or 149.
  2. Opt in (/etc/omdrop/allow-untested), and copy the * line to /etc/omdrop/owl-profiles with your driver's name. That file is read before the packaged table, so you can change settings without rebuilding.
  3. Try it: turn omdrop on, send a photo from an iPhone, send one back, and turn it off. Then watch Wi-Fi for five minutes (ping your router): if it stops receiving after omdrop turns off, keep reconnect yes.
  4. If something fails, try the other mon_mac setting. Report what you saw either way.
  5. Open a pull request adding your line to userspace/owl-profiles, with status tested and, in notes, the card, kernel version and what you observed.

Cards that can't inject while connected need an "exclusive" mode, which takes Wi-Fi away for the window. That mode doesn't exist yet; an issue with what you found is welcome.

Install

makepkg -si

This builds OWL at the commit pinned in pins, with patches/, and installs it root-owned into /usr/lib/omdrop together with omdrop-discoverable and omdrop-awdl's portable tools, a polkit policy for the helper, and a NetworkManager rule keeping awdl0 and mon0 unmanaged. It conflicts with brcmfmac-awdl-dkms: one radio backend at a time.

Then install omdrop itself (a version with radio-backend support) and turn it on from the bar. /usr/lib/omdrop/omdrop-discoverable probe says what, if anything, is in the way.

For development without installing, tools/build-owl.sh and tools/stage.sh assemble the same files in build/lib.

Known issues

  • Deleting a monitor interface while the station is associated wedges the MT7925. A bare monitor interface, added and deleted with nothing else running, leaves the station "Connected" but receiving nothing, from seconds to a few minutes later, until mt7925e is reloaded. That makes it an mt76/firmware bug. omdrop's contract forbids the radio helper from reloading the driver, so stop forces a reconnect right after deleting the interface instead. In testing, that kept the station healthy for the four minutes watched after every teardown.
  • Sending is slower than receiving (about 490 kB/s against 1.3 MB/s). Injected frames leave at a fixed pace of about one every 2.5 ms, whatever PHY rate OWL requests (owl -R, from patches/owl-01-tx-rate.patch) and however many slots the phone offers.
  • The AP has to be on channel 6, 44 or 149. Otherwise start exits 3 and says so. Taking the card off the AP for the duration of a window would lift this, but isn't implemented.
  • iPhones randomise their AWDL address, so nothing here remembers a peer.
airdrop
awdl
omarchy
owl

Significant stargazers

Justin Garrison

1,115 followers · starred Oct 2026

Chen

1,497 followers · starred Oct 2026

Wei Zhu

1,709 followers · starred Oct 2026

Juan Luis Cano Rodríguez

1,434 followers · starred Oct 2026