Why Android can't use CDC Ethernet (2023)

Bug status and Android versioning

  • Thread notes that the original issue (EthernetTracker only matching eth\d) was fixed in 2023 by broadening the regex, then reverted due to tethering regressions, then re-landed for newer Android releases (V+ / Android 15+).
  • Similar change/rollback pattern is seen in LineageOS; fix exists but is gated to newer versions and needs user testing.
  • Android’s internal “T/U/V” names are just version letters (13/14/15), a legacy of the old dessert naming scheme; some see this as confusing but not intentional obfuscation.

Interface naming, MAC tricks, and tethering

  • Core problem: Android’s Ethernet code historically keyed off interface names (ethX vs usbX) rather than capabilities.
  • Some devices use usbX for tethering; treating them as client Ethernet breaks those setups (phone tries to be both router and client).
  • A workaround discussed: flipping the “global” bit in the MAC address to make the kernel name a CDC Ethernet interface ethX instead of usbX, which users report works on several Android versions and devices.

Real-world device behavior and chipset quirks

  • Many commenters report USB Ethernet “just works” on Android—usually with ASIX or Realtek dongles that use supported vendor drivers or NCM, not CDC ECM.
  • Others see failures on specific boards or OEM builds (e.g., Samsung Android 15), showing that behavior can differ by vendor, firmware, and chipset.
  • iOS: article’s “no CDC Ethernet” claim is refined—iOS doesn’t support CDC ECM, but does ship drivers for common USB Ethernet chipsets and works with some Realtek NCM devices.

Networking limitations on mobile OSes

  • Several complain that Android (and iOS) can’t easily use multiple networks simultaneously (e.g., Wi‑Fi without Internet plus cellular), or aggressively disconnect from “no Internet” Wi‑Fi.
  • This makes debugging networks or using local-only devices (dashcams, embedded gear) painful and often forces app-specific workarounds.

Rooting vs security and user control

  • One camp sees rooting as essential to fix problems like this (e.g., changing config_ethernet_iface_regex).
  • Others argue root massively expands attack surface and undermines Android’s permission model.
  • Ongoing back-and-forth about whether restricting root is necessary safety or “corporate FUD,” and how to balance power-user needs with mainstream security.

USB serial and other oddities

  • Android kernels often include USB serial drivers, but user apps can’t access /dev/ttyACM*; instead, they must reimplement USB-serial protocols in userspace via raw USB.
  • Commenters recall other historically hacky Android USB decisions and note that some adapters also need firmware the Android UI can’t diagnose.