When connecting an Android hardware device over USB, running adb devices can return unauthorized, offline, or show an empty device list. Resolving ADB connection failures requires verifying USB debugging authorization, udev permissions, and ADB host keys.
Step-by-Step ADB Connection Troubleshooting
# 1. Kill and restart ADB server process
adb kill-server
adb start-server
# 2. List connected devices and authorization state
adb devices -l
# 3. If "unauthorized": Revoke USB debugging authorizations on Android Device
# (Settings -> Developer Options -> Revoke USB debugging authorizations)
# Then reconnect USB cable and tap "Allow" on RSA fingerprint prompt.
# 4. If empty list on Linux: Verify udev permissions for Android vendor ID
lsusb # Note Vendor ID (e.g. 18d1 for Google, 04e8 for Samsung)
echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"' | sudo tee /etc/udev/rules.d/51-android.rules
sudo udevadm control --reload-rules
Comments and corrections