RNDISaurus

Why Android USB tethering doesn't work on a Mac

You plug in your Android phone, turn on USB tethering, and your Mac doesn't notice. Here's why, how to tell whether your phone is affected, and what you can do.

The short answer

Android phones share their connection over USB with one of two protocols. NCM is a USB standard, and macOS has a driver for it built in. RNDIS is a Microsoft protocol that Android has used for USB tethering from the start, and many phones still use nothing else. macOS has no driver for RNDIS, so when such a phone turns on USB tethering, the Mac doesn't see a network connection.

Does your phone need a driver?

  1. Connect the phone with a cable that carries data, not just power.
  2. Turn on USB tethering on the phone. On most phones it's in Settings › Network & internet › Hotspot & tethering, and the switch only becomes available once the cable is connected.
  3. On the Mac, open System Settings › Network. If a new connection appears and turns green, your phone uses NCM and works without a driver.

If nothing appears, your phone most likely uses RNDIS. RNDISaurus tells you for certain: its window lists the phone, and says Uses NCM if macOS can drive it on its own.

Your options

Wi-Fi hotspot

Works with every phone and needs nothing on the Mac. But it uses more of the phone's battery, which isn't charging as it would on a cable, and the connection is usually slower and less steady.

A kernel extension

For years, the answer was HoRNDIS, an RNDIS driver built as a kernel extension: code that runs inside the macOS kernel. Apple has deprecated kernel extensions. On a Mac with Apple silicon, any kernel extension needs Reduced Security, set by restarting into Recovery, and HoRNDIS's last release, from 2018, runs only on Intel Macs. More about HoRNDIS.

Command-line tools

A few open-source tools drive the phone from an ordinary program instead. They run as root, with sudo or a privileged helper, and give you a virtual network interface that exists only while the tool is running and doesn't appear in System Settings. You install and update them yourself, outside the App Store.

RNDISaurus

A DriverKit driver: the kind Apple introduced so drivers can run outside the kernel. Your Mac keeps its security settings, nothing runs as root, and there's nothing to install on the phone. The phone shows up in System Settings › Network as an Ethernet adapter and works like one. RNDISaurus is on the Mac App Store, and the driver's source is public.

If tethering still doesn't work

Using RNDISaurus? Support explains what each status in the app means.