When you plug an Android phone into a computer, a notification lets you choose how the USB connection behaves. The options — MTP, PTP, RNDIS, and others — determine what the computer sees and what you can do with the connection. Choosing the wrong mode is the most common cause of "phone not recognized" complaints that are not actually driver issues.
MTP is the default USB mode on virtually all Android phones. When you select File Transfer in Android's USB connection notification, MTP is what runs underneath.
MTP was developed by Microsoft and adopted as a standard protocol for media devices. It operates at the application layer rather than the block device layer: the phone's software explicitly enumerates and exposes files and folders through a defined protocol, rather than presenting a raw storage volume. This means the computer never has direct block-level access to the phone's storage — it can only see what the Android MTP server chooses to expose.
Practical implications of MTP:
On Windows, MTP is handled by the built-in Windows Portable Devices (WPD) driver stack and requires no additional drivers for basic file transfer. On macOS, Apple does not include a native MTP implementation, which is why Google's Android File Transfer app (or alternatives like OpenMTP) is needed.
PTP is a subset of MTP designed specifically for transferring images and video from cameras. When you select Photo Transfer in the USB connection notification, Android switches to PTP mode.
In PTP mode, Android presents itself as a digital camera to the connected computer. The operating system opens it using its built-in camera import interface: on Windows this launches the Photos app or Windows Import wizard; on macOS it opens Image Capture or Photos; on Linux it uses gphoto2 or similar.
PTP mode only exposes the DCIM folder (and its subfolders) rather than the entire file system. If you need to transfer photos to a computer that does not have a working MTP implementation — common on older macOS without Android File Transfer installed — PTP is a reliable fallback because every major OS has built-in camera import support.
PTP does not expose the ADB interface. If you select Photo Transfer and then try to run adb devices, the device will not appear. Switch back to File Transfer (MTP) for ADB access.
Use PTP when: you only need to import photos and the computer is running macOS without Android File Transfer; you are connecting to a device (camera, photo kiosk, car infotainment system) that supports camera import but not generic MTP.
RNDIS (Remote Network Driver Interface Specification) is the protocol Android uses for USB tethering. When you enable USB tethering in Android's Settings > Network & Internet > Hotspot & Tethering, the phone presents itself as a network adapter to the computer via RNDIS.
From the computer's perspective, RNDIS creates a virtual Ethernet interface through which the computer can access the internet using the phone's mobile data (or the phone's Wi-Fi connection if Wi-Fi tethering rules on your carrier allow it). The phone acts as a NAT gateway: it assigns the computer an IP address via DHCP (typically in the 192.168.42.x range for Android RNDIS) and routes traffic through its own data connection.
RNDIS is distinct from the other modes in that it is specifically a network function, not a file access function. MTP and PTP can be active alongside RNDIS on some phones (some devices expose a composite USB device that combines RNDIS and MTP), but on most Android phones they are mutually exclusive — you get either file transfer or tethering, not both at the same time.
Windows 10 and 11 include a built-in RNDIS driver and recognize RNDIS tethering automatically. On older Windows versions (pre-10), a driver update or the Windows Mobile Device Center was sometimes needed. On macOS, RNDIS is not natively supported — USB tethering from an Android phone to a Mac requires a third-party driver (HoRNDIS is the well-known open-source option). Linux handles RNDIS natively through the rndis_host kernel module.
USB Ethernet Emulation Model (EEM) and Network Control Model (NCM) are newer alternatives to RNDIS for USB tethering. NCM in particular offers significantly better performance than RNDIS, especially for high-throughput connections. Android 12 and later prefer NCM for USB tethering on supported hardware. Windows 11 22H2 added native NCM support, so newer phone-to-PC tethering often uses NCM silently in the background even when the Android UI says "USB Tethering."
Charging Only (sometimes shown as "No data transfer") disables all USB communication protocols and only allows power delivery. The phone's USB data lines are electrically disconnected from the port in software. ADB, MTP, PTP, and RNDIS are all unavailable. This mode is useful for charging from an untrusted USB port without exposing data.
MIDI is available on some Android phones (typically the ones with USB audio class support). In MIDI mode, the phone appears as a MIDI device and can exchange MIDI data with music production software on the computer.
ADB is not a USB mode in the same sense as MTP or PTP. Rather, ADB is an additional USB interface that Android can expose alongside another mode when USB debugging is enabled in Developer Options. In practice:
adb devices works and file browsing works.adb devices often works in this mode, though it is not guaranteed across all OEM implementations.If ADB stops working after you change the USB mode, switching back to File Transfer (MTP) and toggling USB Debugging off and then on in Developer Options usually restores it. If the phone is showing as "offline" in adb devices, the mode switch may have reset the ADB daemon; run adb kill-server && adb start-server to restart it.
Here is a quick reference: