36

I am new to android. I have just downloaded and installed android sdk. Now when I run the application from eclipse, my device is not getting detected. I have googled and was brought up with this as my solution, but that also didn't worked.

Here's the 51-android.rules

SUBSYSTEMS=="usb", ATTR{idProduct}=="0bb4",  ATTR{idProduct}=="0c03", MODE="0666", GROUP="plugindev", OWNER="<username>"

After that I rebooted my laptop, and ran this command:

username@laptopname:~/Android/adt-bundle/sdk/platform-tools$ adb devices

The output i get is:

* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached 
????????????    no permissions

EDIT

crazydeveloper@crazydeveloper:~$ lsusb
Bus 002 Device 004: ID 0bb4:0c03 HTC (High Tech Computer Corp.) 
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 04f2:b337 Chicony Electronics Co., Ltd 
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
crazydeveloper@crazydeveloper:~$ ls -l /dev/bus/usb/004/
ls: cannot access /dev/bus/usb/004/: No such file or directory
crazydeveloper@crazydeveloper:~$ 

Edit: 2

After the answer submitted here's the output that i got:

crazydeveloper@crazydeveloper:~$ ls -l /dev/bus/usb/002
total 0
crw-rw-r--  1 root root    189, 128 May  7 09:45 001
crw-rw-r--+ 1 root root    189, 129 May  7 09:45 002
crw-rw-rw-  1 root plugdev 189, 130 May  7 09:48 003

I am using Micromax Canvas 2.2 A114 - Android Version 4.2.2

Please help me. Thanks.

4

8 Answers 8

42

OK here are all the steps to get this to work. I had problems with all responses I found online, bits and pieces everywhere without any certain order and no single working solution, (running Android Studio, Jmonkey 3D, and Ubuntu 14.04)

If adb devices shows android device as ????????? (no permissions) follow these instructions:

  1. create file /etc/udev/rules.d/51-android.rules

    sudo gedit /etc/udev/rules.d/51-android.rules
    
  2. copy and paste contents below:

    SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="0e79", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="0502", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="0b05", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="413c", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="0489", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="091e", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="24e3", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="2116", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="0482", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="17ef", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="1004", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="22b8", MODE="0666", GROUP="plugdev"    
    SUBSYSTEM=="usb", ATTRS{idVendor}=="0409", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="2080", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="0955", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="2257", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="10a9", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="1d4d", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="0471", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="04da", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="05c6", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="1f53", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="04e8", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="04dd", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="0fce", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="0930", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="19d2", MODE="0666", GROUP="plugdev" 
    
  3. Run the following command to change file permissions:

    sudo chmod a+r /etc/udev/rules.d/51-android.rules
    
  4. connect your phone via usb and run the following command:

    lsusb
    

    Look for your device(s) Example (Nexus 5):

    Bus 003 Device 074: ID 18d1:4ee7 Google Inc.

    For Nexus 5, Vendor ID is 18d1, mine is on Bus "003" If you don't see a change when you plug in your device with lsusb, perhaps your USB cable is charge-only.

  5. Now reload the rules with the following commands:

    sudo udevadm control --reload-rules
    sudo service udev restart
    sudo udevadm trigger
    
  6. Verify device is now allowing plugdev user group access

    ls -l /dev/bus/usb/<bus number from step 4>
    

    Example:

    ls -l /dev/bus/usb/003
    crw-rw-rw- 1 root plugdev 189, 329 Jul  3 18:23 074
    
  7. Run adb devices to confirm permissions are correct and enjoy!

Note: if you haven't created the plugdev group and added your user name to it (if permission denied prepend "sudo" following commands):

  1. Add plugdev group:

    groupadd plugdev
    
  2. Add your username to plugdev group (useradd -G {group-name} username):

    useradd -G plugdev billy
    
  3. Restart udev (you may need to log off and log back in to update user group):

    sudo service udev restart
    
3
  • @EvanCarrol: your edit is best made as step 0 before you begin, not in the middle (sorry for rejecting but there it's making the answer less clear instead of clearer) :/
    – Fabby
    Nov 16, 2015 at 1:44
  • This answer works nicely. After update to 15.10, I have to do this after every reboot. Works awesome. Nov 26, 2015 at 10:08
  • Can i call it Sexy Answer ... you made my day thanks buddy ... Apr 14, 2016 at 22:38
5

You have to change 2 things:

  1. Change the first 'ATTR{idProduct}' to 'ATTR{idVendor}' in the 51-android.rules file.

  2. Run these commands from the terminal:

    sudo ./adb kill-server
    sudo ./adb start-server
    sudo ./adb devices
    
5

Try group plugdev rather than plugindev. Then restart udev:

sudo udevadm control --reload-rules
sudo service udev restart

If this doesn't work find out where exactly your device is connected with lsusb. Then check the permissions:

ls -l /dev/bus/usb/YOUR_USB_BUS_NO/

The fact that lsusb gave us:

Bus 002 Device 004: ID 0bb4:0c03 HTC (High Tech Computer Corp.)

means that your mobile is connected to Bus 002 as a device 004. Therefore udev created device object /dev/bus/usb/002/004.

Please show us the device permissions using command:

ls -l /dev/bus/usb/002/004

As a temporary workaround you could make the device world readable/writeable with this command (make sure your phone is plugged in):

sudo chmod 666 /dev/bus/usb/002/004

Then try adb devices again.

Also I noticed that at the end of the udev rule you have OWNER="<username>". You did actually replace that with OWNER="crazydeveloper", didn't you ?

Your permissions are kind of OK. udev picked up the device and set its permissions to 666 and the group to plugdev. It didn't set the owner to crazydeveloper for some reason but that isn't that important.

Make sure you are a member of group plugdev. Use this command:

sudo useradd -G plugdev crazydeveloper

Then log off, unplug the mobile, log on again, plug it in and try adb devices again. Let is know what is happening.

4
  • please see the question now.. May 6, 2014 at 12:31
  • check out the question now. May 7, 2014 at 4:22
  • Also I noticed that at the end of the udev rule you have OWNER="<username>". You did actually replace that with OWNER="crazydeveloper", didn't you ? Helped me. Thanks :) :D
    – Yash Sodha
    Feb 12, 2015 at 18:46
  • Followed your advice but it did not work for me. What worked is switching through the USB options provided by the device, try switching to PTP from MTP. This one worked for me.
    – George D
    Oct 14, 2015 at 21:07
3

It's a trivial mistake maybe, as I can see in the 51-android.rules you have doubled the idProduct parameter and there is no idVendor, try simple renaming.

1

My Android device had the USB debugging on which seemed to be a problem, so I went to the developer settings and turned it off. The I replugged the USB cable and then a window appered which allowed me to turn on the USB storage. That made my Ubuntu 14.04 detect the Android device. I don't know if all the devices has this setting but it fixed my problem ,whereas I tried all the other methods. Thank you

0

I had the same problem with my android device(HTC one(M7)) in ubuntu 14.04. So i rebooted into windows 7.0. Found the same issue there too. On searching i found the following link. http://www.makeuseof.com/answers/why-is-my-windows-7-laptop-not-detecting-any-android-devices/

I dialed *#7284# as suggested by Gerry Anthony in that link. And it worked on Windows. I rebooted onto Ubuntu 14.04 and my android device was detected.

1
0

After trying every one of the potential solutions detailed above and in other threads from other fora, I discovered that the reason my HOX had decided not to communicate with my laptop any longer (14.04) was a simpler, mechanical one. The USB lead to the handset's micro USB socket was faulty. By using the o/e lead that had always seemed stiffer and less likely to last than the generic one bought at the AsDa, normal service was resumed.

The DMM was then employed to show how exactly this state of affairs had come about: Resistance of the +5V supply strand in that lead had increased to the point where it read almost open. R value of the o/e, HTC tagged lead's +5V strand was only slightly more resistive than a dead short would be and not being especially well up on the workings or layout of micro USB no, I couldn't fathom out how this affected data transfer either so can only assume that the supply rail in the I/O board on either or both device(s) uses the +5V part of one or both sockets for data transfer too.

What I learnt here: Check the simpler stuff first, before pulling out your hair getting nowhere with installed software, all of which was put back up as it had been prior to the fault's manifesting itself in the first place!

HTC - 1, Associated Dairies' supplier of cables - 0.

-1

It should be like this:

SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0c03", MODE="0666"
2
  • This does not provide an answer to the question. To critique or request clarification from an author, leave a comment below their post - you can always comment on your own posts, and once you have sufficient reputation you will be able to comment on any post.
    – Fabby
    Mar 4, 2015 at 7:52
  • @Fabby This looks an attempt to answer the question to me..
    – Seth
    Mar 4, 2015 at 18:01

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .