title: ADB finds no devices on Ubuntu Linux
body: <p>I think I've gone over just about every related thread on SO over this topic(there's a lot), but none seem to solve my issue.  Running Ubuntu 16.04 LTS, and have attempted to get ADB working with an Android 6.0.1 Galaxy Note 5 and an Android 5.0.1 Galaxy S4.  Neither work as of right now.</p>
  
  <p>For what it's worth, this did work last week, and I'm not entirely sure what changed.  There was a small systems update that included kernel firmware and udev updates, but not sure if that is the culprit.</p>
  
  <p>Some basics I've tried: </p>
  
  <ul>
  <li>I've tried multiple USB cables and multiple ports</li>
  <li>Developer mode is on</li>
  <li>USB Debugging is turned on</li>
  <li>I have tried setting USB mode to Charging, PTP, and MTP</li>
  <li>I have restarted the adb server, and attempted to run it as root with no joy</li>
  <li>I have added the vendor ID in hex notation to <code>~/.android/adb_usb.ini</code></li>
  <li>I can view files via MTP, so the USB cable does appear to be working fine</li>
  <li>I have Revoked USB debugging authorizations</li>
  <li>I have downloaded the Android SDK directly from Google instead of using the one provided by Ubuntu</li>
  <li>I have tried both API version 24(which worked for me before) and 25</li>
  </ul>
  
  <p>Running <code>adb devices</code> shows no results, like so: </p>
  
  <pre><code>$ adb devices
  List of devices attached
  </code></pre>
  
  <p>And <code>lsusb</code> does show my device: </p>
  
  <pre><code>$ lsusb
  ...
  Bus 001 Device 029: ID 04e8:6860 Samsung Electronics Co., Ltd Galaxy (MTP)
  </code></pre>
  
  <p>I have my udev rules setup.  Right now it's at 70 priority to overrule another set of udev rules that were overriding my permissions, but note that I have tried it at priority 51.</p>
  
  <pre><code>$ cat /etc/udev/rules.d/70-android.rules 
  SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0666", GROUP="plugdev"
  </code></pre>
  
  <p>The permissions set by udev appear correct: </p>
  
  <pre><code>$ ls -lah /dev/bus/usb/001/029 
  crw-rw-rw-+ 1 root plugdev 189, 28 Dec 21 15:36 /dev/bus/usb/001/029
  $ getfacl /dev/bus/usb/001/029 
  getfacl: Removing leading '/' from absolute path names
  # file: dev/bus/usb/001/029
  # owner: root
  # group: plugdev
  user::rw-
  user:mike:rw-
  group::rw-
  mask::rw-
  other::rw-
  $ groups
  mike adm dialout cdrom sudo audio plugdev
  </code></pre>
  
  <p>And for good measure, the phone does show up in <code>dmesg</code>: </p>
  
  <pre><code>$ dmesg | tail
  ...
  [18563.634381] usb 1-5.1.1: new high-speed USB device number 29 using ehci-pci
  [18563.739686] usb 1-5.1.1: New USB device found, idVendor=04e8, idProduct=6860
  [18563.739689] usb 1-5.1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
  [18563.739690] usb 1-5.1.1: Product: SAMSUNG_Android
  [18563.739692] usb 1-5.1.1: Manufacturer: SAMSUNG
  [18563.739693] usb 1-5.1.1: SerialNumber: 05157df5xxxxxxxx
  [18563.740895] cdc_acm 1-5.1.1:1.1: ttyACM1: USB ACM devic
  </code></pre>
  
  <p>And finally, a <code>udevadm test</code>:</p>
  
  <pre><code>$ sudo udevadm test /sys/bus/usb/devices/1-5.1.1
  calling: test
  version 229
  This program is for debugging only, it does not run any program
  specified by a RUN key. It may show incorrect results, because
  some values may be different, or not available at a simulation run.
  
  === trie on-disk ===
  tool version:          229
  file size:         7058303 bytes
  header size             80 bytes
  strings            1762191 bytes
  nodes              5296032 bytes
  Load module index
  timestamp of '/etc/systemd/network' changed
  timestamp of '/lib/systemd/network' changed
  Parsed configuration file /lib/systemd/network/99-default.link
  Created link configuration context.
  timestamp of '/etc/udev/rules.d' changed
  timestamp of '/lib/udev/rules.d' changed
  Reading rules file: /lib/udev/rules.d/39-usbmuxd.rules
  Reading rules file: /lib/udev/rules.d/40-crda.rules
  Reading rules file: /lib/udev/rules.d/40-libsane.rules
  Reading rules file: /lib/udev/rules.d/40-usb-media-players.rules
  Reading rules file: /lib/udev/rules.d/40-usb_modeswitch.rules
  Reading rules file: /lib/udev/rules.d/40-vm-hotadd.rules
  Reading rules file: /lib/udev/rules.d/50-apport.rules
  Reading rules file: /lib/udev/rules.d/50-bluetooth-hci-auto-poweron.rules
  Reading rules file: /lib/udev/rules.d/50-firmware.rules
  Reading rules file: /lib/udev/rules.d/50-udev-default.rules
  Reading rules file: /lib/udev/rules.d/51-these-are-not-joysticks-rm.rules
  Reading rules file: /lib/udev/rules.d/55-dm.rules
  Reading rules file: /lib/udev/rules.d/56-hpmud.rules
  Reading rules file: /lib/udev/rules.d/60-avrdude.rules
  Reading rules file: /lib/udev/rules.d/60-block.rules
  Reading rules file: /lib/udev/rules.d/60-boinc-client.rules
  Reading rules file: /lib/udev/rules.d/60-cdrom_id.rules
  Reading rules file: /lib/udev/rules.d/60-drm.rules
  Reading rules file: /lib/udev/rules.d/60-evdev.rules
  Reading rules file: /lib/udev/rules.d/60-gnupg.rules
  Reading rules file: /lib/udev/rules.d/60-gnupg2.rules
  Reading rules file: /lib/udev/rules.d/60-inputattach.rules
  Reading rules file: /lib/udev/rules.d/60-joystick.rules
  Reading rules file: /lib/udev/rules.d/60-libgphoto2-6.rules
  Reading rules file: /lib/udev/rules.d/60-openobex.rules
  Reading rules file: /lib/udev/rules.d/60-pcmcia.rules
  Reading rules file: /lib/udev/rules.d/60-persistent-alsa.rules
  Reading rules file: /lib/udev/rules.d/60-persistent-input.rules
  Reading rules file: /lib/udev/rules.d/60-persistent-storage-dm.rules
  Reading rules file: /lib/udev/rules.d/60-persistent-storage-tape.rules
  Reading rules file: /lib/udev/rules.d/60-persistent-storage.rules
  Reading rules file: /lib/udev/rules.d/60-persistent-v4l.rules
  Reading rules file: /lib/udev/rules.d/60-serial.rules
  Reading rules file: /lib/udev/rules.d/60-xdiagnose.rules
  Reading rules file: /lib/udev/rules.d/61-gnome-bluetooth-rfkill.rules
  Reading rules file: /lib/udev/rules.d/61-persistent-storage-android.rules
  Reading rules file: /lib/udev/rules.d/64-btrfs.rules
  Reading rules file: /lib/udev/rules.d/64-xorg-xkb.rules
  Reading rules file: /lib/udev/rules.d/66-snapd-autoimport.rules
  Reading rules file: /lib/udev/rules.d/66-xorg-synaptics-quirks.rules
  Reading rules file: /lib/udev/rules.d/69-cd-sensors.rules
  Reading rules file: /lib/udev/rules.d/69-wacom.rules
  Reading rules file: /lib/udev/rules.d/69-xorg-vmmouse.rules
  Reading rules file: /etc/udev/rules.d/70-android.rules
  Reading rules file: /lib/udev/rules.d/70-debian-uaccess.rules
  Reading rules file: /lib/udev/rules.d/70-mouse.rules
  Reading rules file: /etc/udev/rules.d/70-persistent-net.rules
  Reading rules file: /lib/udev/rules.d/70-power-switch.rules
  Reading rules file: /lib/udev/rules.d/70-printers.rules
  Reading rules file: /lib/udev/rules.d/70-uaccess.rules
  Reading rules file: /lib/udev/rules.d/71-power-switch-proliant.rules
  Reading rules file: /lib/udev/rules.d/71-seat.rules
  Reading rules file: /lib/udev/rules.d/71-u-d-c-gpu-detection.rules
  Reading rules file: /lib/udev/rules.d/73-seat-late.rules
  Reading rules file: /lib/udev/rules.d/73-special-net-names.rules
  Reading rules file: /lib/udev/rules.d/73-usb-net-by-mac.rules
  Reading rules file: /lib/udev/rules.d/75-net-description.rules
  Reading rules file: /lib/udev/rules.d/75-probe_mtd.rules
  Reading rules file: /lib/udev/rules.d/77-mm-cinterion-port-types.rules
  Reading rules file: /lib/udev/rules.d/77-mm-ericsson-mbm.rules
  Reading rules file: /lib/udev/rules.d/77-mm-huawei-net-port-types.rules
  Reading rules file: /lib/udev/rules.d/77-mm-longcheer-port-types.rules
  Reading rules file: /lib/udev/rules.d/77-mm-mtk-port-types.rules
  Reading rules file: /lib/udev/rules.d/77-mm-nokia-port-types.rules
  Reading rules file: /lib/udev/rules.d/77-mm-pcmcia-device-blacklist.rules
  Reading rules file: /lib/udev/rules.d/77-mm-platform-serial-whitelist.rules
  Reading rules file: /lib/udev/rules.d/77-mm-qdl-device-blacklist.rules
  Reading rules file: /lib/udev/rules.d/77-mm-simtech-port-types.rules
  Reading rules file: /lib/udev/rules.d/77-mm-telit-port-types.rules
  Reading rules file: /lib/udev/rules.d/77-mm-usb-device-blacklist.rules
  Reading rules file: /lib/udev/rules.d/77-mm-usb-serial-adapters-greylist.rules
  Reading rules file: /lib/udev/rules.d/77-mm-x22x-port-types.rules
  Reading rules file: /lib/udev/rules.d/77-mm-zte-port-types.rules
  Reading rules file: /lib/udev/rules.d/78-graphics-card.rules
  Reading rules file: /lib/udev/rules.d/78-sound-card.rules
  Reading rules file: /lib/udev/rules.d/80-debian-compat.rules
  Reading rules file: /lib/udev/rules.d/80-drivers.rules
  Reading rules file: /lib/udev/rules.d/80-ifupdown.rules
  Reading rules file: /lib/udev/rules.d/80-mm-candidate.rules
  Reading rules file: /lib/udev/rules.d/80-net-setup-link.rules
  Reading rules file: /lib/udev/rules.d/80-snappy-assign.rules
  Reading rules file: /lib/udev/rules.d/80-udisks2.rules
  Reading rules file: /lib/udev/rules.d/84-nm-drivers.rules
  Reading rules file: /lib/udev/rules.d/85-brltty.rules
  Reading rules file: /lib/udev/rules.d/85-hdparm.rules
  Reading rules file: /lib/udev/rules.d/85-hplj10xx.rules
  Reading rules file: /lib/udev/rules.d/85-keyboard-configuration.rules
  Reading rules file: /lib/udev/rules.d/85-nm-unmanaged.rules
  Reading rules file: /lib/udev/rules.d/85-regulatory.rules
  Reading rules file: /lib/udev/rules.d/90-alsa-restore.rules
  Reading rules file: /lib/udev/rules.d/90-fwupd-devices.rules
  Reading rules file: /lib/udev/rules.d/90-libgpod.rules
  Reading rules file: /lib/udev/rules.d/90-pulseaudio.rules
  Reading rules file: /lib/udev/rules.d/95-cd-devices.rules
  Reading rules file: /lib/udev/rules.d/95-upower-csr.rules
  Reading rules file: /lib/udev/rules.d/95-upower-hid.rules
  Reading rules file: /lib/udev/rules.d/95-upower-wup.rules
  Reading rules file: /lib/udev/rules.d/97-hid2hci.rules
  Reading rules file: /lib/udev/rules.d/99-steam-controller-perms.rules
  Reading rules file: /lib/udev/rules.d/99-systemd.rules
  rules contain 196608 bytes tokens (16384 * 12 bytes), 31828 bytes strings
  16161 strings (147268 bytes), 13390 de-duplicated (118212 bytes), 2772 trie nodes used
  value '[dmi/id]sys_vendor' is 'MSI'
  value '[dmi/id]sys_vendor' is 'MSI'
  IMPORT builtin 'usb_id' /lib/udev/rules.d/50-udev-default.rules:13
  IMPORT builtin 'hwdb' /lib/udev/rules.d/50-udev-default.rules:13
  MODE 0664 /lib/udev/rules.d/50-udev-default.rules:41
  GROUP 46 /lib/udev/rules.d/60-libgphoto2-6.rules:10
  MODE 0664 /lib/udev/rules.d/60-libgphoto2-6.rules:10
  PROGRAM '/usr/sbin/obex-check-device 04e8 6866' /lib/udev/rules.d/60-openobex.rules:3
  starting '/usr/sbin/obex-check-device 04e8 6866'
  Process '/usr/sbin/obex-check-device 04e8 6866' failed with exit code 1.
  GROUP 46 /etc/udev/rules.d/70-android.rules:1
  MODE 0666 /etc/udev/rules.d/70-android.rules:1
  IMPORT builtin 'path_id' /lib/udev/rules.d/71-seat.rules:49
  RUN 'uaccess' /lib/udev/rules.d/73-seat-late.rules:15
  handling device node '/dev/bus/usb/001/035', devnum=c189:34, mode=0666, uid=0, gid=46
  preserve permissions /dev/bus/usb/001/035, 020666, uid=0, gid=46
  preserve already existing symlink '/dev/char/189:34' to '../bus/usb/001/035'
  created db file '/run/udev/data/c189:34' for '/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.1/1-5.1.1'
  ACTION=add
  BUSNUM=001
  COLORD_DEVICE=1
  COLORD_KIND=camera
  DEVNAME=/dev/bus/usb/001/035
  DEVNUM=035
  DEVPATH=/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.1/1-5.1.1
  DEVTYPE=usb_device
  DRIVER=usb
  GPHOTO2_DRIVER=PTP
  ID_BUS=usb
  ID_FOR_SEAT=usb-pci-0000_00_12_2-usb-0_5_1_1
  ID_GPHOTO2=1
  ID_MODEL=SAMSUNG_Android
  ID_MODEL_ENC=SAMSUNG_Android
  ID_MODEL_FROM_DATABASE=GT-I9300 Phone [Galaxy S III] (debugging mode)
  ID_MODEL_ID=6866
  ID_PATH=pci-0000:00:12.2-usb-0:5.1.1
  ID_PATH_TAG=pci-0000_00_12_2-usb-0_5_1_1
  ID_REVISION=ffff
  ID_SERIAL=SAMSUNG_SAMSUNG_Android_05157df5b3b93107
  ID_SERIAL_SHORT=05157df5b3b93107
  ID_USB_INTERFACES=:060101:ff4201:
  ID_VENDOR=SAMSUNG
  ID_VENDOR_ENC=SAMSUNG
  ID_VENDOR_FROM_DATABASE=Samsung Electronics Co., Ltd
  ID_VENDOR_ID=04e8
  MAJOR=189
  MINOR=34
  PRODUCT=4e8/6866/ffff
  SUBSYSTEM=usb
  TAGS=:uaccess:seat:
  TYPE=0/0/0
  USEC_INITIALIZED=20676851635
  run: 'uaccess'
  Unload module index
  Unloaded link configuration context.
  </code></pre>
  
  <p>I'm about at the end of rope here, so I'd appreciate any ideas or solutions.</p>