v0.1.0 Free & open source · Apple Silicon + Intel

Android USB tethering, native on your Mac.

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
~ ❯ 
The problem

Why Android USB tethering doesn't work on a Mac

Most Android phones tether over RNDIS, a Microsoft protocol macOS has never supported. The workarounds each break something.

Before

Kernel extensions and tunnels

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.

With usb-android-tethering

A real Ethernet adapter

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.

How it works

From your phone to your VPN, no kernel code

The driver runs in userspace and bridges the phone's USB network function to a virtual Ethernet interface that macOS treats like hardware.

Android phoneUSB tethering on
Userspace driverRNDIS · NCM · ECM
Ethernet adaptermacOS + your VPN
Features

Everything you'd expect from a built-in driver

Built in Rust for reliability, and designed to disappear into the background.

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

VPN-compatible

Your VPN runs over it like any wired network. IPv4-only bridging means no IPv6 leaks.

Every Android phone

RNDIS (Samsung, Xiaomi, OnePlus, Motorola…) plus CDC-NCM/ECM (Pixel 6+) when macOS doesn't claim the phone.

Plug and play

Starts at boot, connects on plug-in, reconnects after sleep, and recovers from crashes by itself.

Featherweight

Async USB I/O, kernel packet filter, about 7 MB of memory, and 0 % CPU when idle.

Safe by design

No kernel code and no security changes. The installer checks checksums, and uninstall removes every trace.

Scriptable CLI

status and devices with --json, rotated logs, stable exit codes, and a one-command installer.

Get started

How to use Android USB tethering on a Mac

Four steps, about a minute. Samsung: Settings → Connections → Mobile Hotspot and Tethering. Pixel: Settings → Network & internet → Hotspot & tethering.

  1. Install

    Paste the command above into Terminal and enter your password once.

  2. Connect

    Plug the phone in with a USB data cable. Charge-only cables don't work.

  3. Turn on USB tethering

    On the phone, search Settings for "USB tethering" and switch it on.

  4. You're online

    Check with usb-android-tethering status. Unplug and you're back on Wi-Fi.

Compare

HoRNDIS vs. tunnel-based tools vs. usb-android-tethering

CapabilityHoRNDIS (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✓
FAQ

Frequently asked questions

How do I use Android USB tethering on a Mac?

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".

Does HoRNDIS work on Apple Silicon Macs?

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.

Why doesn't my Mac recognize my Android phone's USB tethering?

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.

Does Android USB tethering work with a VPN on Mac?

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.

Is it safe and free?

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.

Your phone is your Ethernet port now.

Free, open source, and one command away. If it saves you from hunting for a dongle, a star helps others find it.