ADB no longer recognizes device

A whole line of tablets is no longer displayed on ADB devices (they worked just fine a week ago). Other Android devices work (like my Nexus 5 phone). This is the first time I come across this problem. I read and tried most of the solutions I found on SO and other sites to no avail. Here's the situation:

  • They appear in lsusb as Bus 010 Device 004: ID 18d1:dddd Google Inc. .
  • Created / edited /etc/udev/rules.d/51-android.rules and added SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", MODE="0666" (and several other attribute combinations here).
  • Restarting udev through sudo service udev restart .
  • Reboot ADB server using adb kill-server; adb start-server`.
  • I tried all the USB ports on the PC.
  • I tried another USB cable.
  • Rebooted PC and tablet.

It is strange that even if I empty the /etc/udev/rules.d/51-android.rules file and restart the udev daemon, adb still detects my Nexus 5 phone.

The changes that I remember, I made before this problem arose:

  • Using Android Studio instead of Eclipse will begin (although I use the same ADK) and tools)
  • Updated Ubuntu to the latest version 14.04 (maybe some udev changes here)?

Any further suggestions are welcome, thanks in advance.


EDIT: when running lsusb -v , as suggested in the comments, I see this description:

  bInterfaceClass 8 Mass Storage bInterfaceSubClass 6 SCSI bInterfaceProtocol 80 Bulk-Only iInterface 1 Mass Storage 

while the Nexus 5 shows how

  bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 0 iInterface 4 MTP 

EDIT: Tablets work fine through ADB on other computers (Windows and Linux). So this is a problem with my box.


EDIT: As suggested in the comments, I tried ADB in TCP mode and worked fine. After starting dmesg I see that the system is trying to load the Windows driver for ADB using ndiswrapper

 [277701.803751] usb 1-4: reset high-speed USB device number 48 using ehci-pci [277701.952803] ndiswrapper (load_wrap_driver:103): couldn't load driver android_winusb; check system log for messages from 'loadndisdriver' 

This message does not appear in other Linux mailboxes where ADB works fine via USB.

+5
source share
2 answers

Since the same devices work on other PCs, you can already eliminate hardware problems from the tablet. Further checks:

  • USB permissions on PC:. Although other devices work, you may still not have enough permissions to access tables using adb. The Udev rules you spoke of are vendor specific and sometimes device specific. The only way to resolve permissions as a problem is to run adb as the root user. adb starts the daemon, so you must kill all adb instances before trying to do this:
    $ pkill adb
    $ sudo adb devices
    If the device appears in the list, you are in order to adjust the udev rules. Temporarily, you can continue to use adb in normal mode - it will connect to the service, which is now started with administrator rights, and therefore works as expected.
  • Problems with the drivers . In the developer's menu on the tablet, you can select "adb over tcp" as an option. Turn it on and then connect to it from your PC . If this works, the debug bridge itself is wonderful, and so the USB connection is the source of the connection. We can already eliminate the faulty cable, because the device is indeed displayed in lsusb , and other functions work as expected. Running dmesg should provide you with the necessary information to solve your problem, it is probably an error-correcting device driver. Try unloading it with rmmod / modprobe .
+1
source

The difference with 12.10+ is MTP support. I know that 14.04 automatically uses it as soon as the phone is connected. It should be faster and easier than Mass Storage. Perhaps this is bothering you, and you should find a way to disconnect it from either the PC or the device?

0
source

Source: https://habr.com/ru/post/1204561/


All Articles