Just like a physical adapter
Apps and VPN clients can't tell it apart from a USB Ethernet dongle.
- Network framework
- wiredEthernet · primary
- System Settings
- "USB Android Tethering" · DHCP
- Kernel
- Ethernet interface with MAC & ARP
Plug in your phone, turn on USB tethering, and you're online. usb-android-tethering is a free HoRNDIS alternative for macOS Sonoma, Sequoia and Tahoe on M1–M4 and Intel Macs. It turns your phone into a real Ethernet adapter, so your VPN keeps working. No kernel extension.
curl -fsSL https://raw.githubusercontent.com/frosty-universe/usb-android-tethering/main/install.sh | sh
Paste into Terminal. It verifies the SHA-256 checksum, then asks for your password once.
~ ❯ curl -fsSL …/install.sh | sh ==> Downloading usb-android-tethering (latest)… ==> Verifying checksum… ==> Installing the background service… ✔ Installed. Plug in your phone and turn on USB tethering. ~ ❯ usb-android-tethering status Background service: installed, running Tether: online for 3s Interface: feth7070 (primary network) Address: 192.168.211.47 via 192.168.211.44 Phone: 04e8:6863 "SAMSUNG_Android" RNDIS ~ ❯
Most Android phones tether over RNDIS, a Microsoft protocol macOS has never supported. The workarounds each break something.
The HoRNDIS kernel extension no longer loads on current macOS, and on Apple Silicon any kext means lowering your Mac's boot security. Tools that use a tunnel (utun) interface work, but VPN apps often ignore tunnel interfaces.
A userspace driver presents your phone to macOS as genuine wired Ethernet, listed in System Settings like a USB dongle. macOS handles DHCP, routes and DNS, and your VPN runs over it as usual.
The driver runs in userspace and bridges the phone's USB network function to a virtual Ethernet interface that macOS treats like hardware.
Built in Rust for reliability, and designed to disappear into the background.
Apps and VPN clients can't tell it apart from a USB Ethernet dongle.
Your VPN runs over it like any wired network. IPv4-only bridging means no IPv6 leaks.
RNDIS (Samsung, Xiaomi, OnePlus, Motorola…) plus CDC-NCM/ECM (Pixel 6+) when macOS doesn't claim the phone.
Starts at boot, connects on plug-in, reconnects after sleep, and recovers from crashes by itself.
Async USB I/O, kernel packet filter, about 7 MB of memory, and 0 % CPU when idle.
No kernel code and no security changes. The installer checks checksums, and uninstall removes every trace.
status and devices with --json, rotated logs, stable exit codes, and a one-command installer.
Four steps, about a minute. Samsung: Settings → Connections → Mobile Hotspot and Tethering. Pixel: Settings → Network & internet → Hotspot & tethering.
Paste the command above into Terminal and enter your password once.
Plug the phone in with a USB data cable. Charge-only cables don't work.
On the phone, search Settings for "USB tethering" and switch it on.
Check with usb-android-tethering status. Unplug and you're back on Wi-Fi.
| Capability | HoRNDIS (kext) | Tunnel-based (utun) | usb-android-tethering |
|---|---|---|---|
| Current macOS & Apple Silicon | ✕ | ✓ | ✓ |
| No boot-security downgrade | ✕ | ✓ | ✓ |
| Seen as wired Ethernet | ✓ | ✕ | ✓ |
| VPN apps can run over it | ✓ | !often ignored | ✓ |
| RNDIS and CDC-NCM/ECM phones | !RNDIS only | ?varies | ✓ |
Install usb-android-tethering with one command, connect the phone with a USB data cable, and turn on USB tethering in the phone's settings. The Mac connects within a few seconds and shows the phone as the network "USB Android Tethering".
No. HoRNDIS is a kernel extension; it no longer loads on current macOS, and on Apple Silicon any third-party kernel extension requires lowering the Mac's boot security. usb-android-tethering is a userspace alternative that needs no kernel extension.
Most Android phones tether over RNDIS, a Microsoft protocol that macOS has never supported. usb-android-tethering adds RNDIS support in userspace, and also handles CDC-NCM and CDC-ECM phones that macOS's own driver does not pick up.
Yes. usb-android-tethering presents the phone as a genuine Ethernet adapter, which macOS's Network framework reports as wired Ethernet, so VPN apps run over it like over any wired network. Tunnel-based tools create utun interfaces that VPN apps often ignore.
It is free and open source (MIT or Apache-2.0). It contains no kernel code, opens no network ports, and the installer verifies the release's SHA-256 checksum before installing. Uninstalling removes everything.
Free, open source, and one command away. If it saves you from hunting for a dongle, a star helps others find it.