If you do any Android development in Ubuntu it is much better to test your applications on a real device rather than just relying on the emulator.
If you just connect the phone to the computer through USB and run adb devices you will find out that your phone is not recognized:
$ adb devices
List of devices attached
???????????? no permissions
This is easily fixable in Ubuntu. You have to add a line to a file in the /etc/udev/rules.d directory.
What line in which file depends on the manufacturer and model of the device. You can find out the Vendor ID number and Product ID number of the device by running (after you connected it via USB of course):
$ lsusb
For example, if you had a Nexus One connected you would get:
Bus 002 Device 004: ID 18d1:4e12
In this case the Vendor Id is “18d1” and the Product ID is “4e12”. Please keep in mind that the Vendor ID for HTC changed from “0bb4” to “18d1”. The older HTC phones like the G1 have a Vendor ID of “0bb4”.
Here is how to set up some of the major Android phones:
Step 1. Enable Unknown sources and USB debugging:
Go to Settings -> Applications and check the Unknown sources check-box, then go to Development and enable the USB debugging.
Step 2. Depending on your phone follow these instructions:
- G1
Create/edit a file in /etc/udev/rules.d called 51-android.rules:$ sudo gedit /etc/udev/rules.d/51-android.rules
Add the following line to it and save it:
SUBSYSTEMS==”usb”, ATTRS{idVendor}==”0bb4″, ATTRS{idProduct}==”0c01″, MODE=”0666″
- HTC Hero
Add to the file (or create it if it does not exist- see above) /etc/udev/rules.d/51-android.rules the following line:
SUBSYSTEMS==”usb”, ATTRS{idVendor}==”0bb4″, ATTRS{idProduct}==”0c02″, MODE=”0666″
- HTC EVO
Add to the file (or create it if it does not exist- see above) /etc/udev/rules.d/51-android.rules the following line:
SUBSYSTEMS==”usb”, ATTRS{idVendor}==”0bb4″, ATTRS{idProduct}==”0c8d”, MODE=”0666″
- HTC EVO Shift
Add to the file (or create it if it does not exist- see above) /etc/udev/rules.d/51-android.rules the following line:
SUBSYSTEMS==”usb”, ATTRS{idVendor}==”0bb4″, ATTRS{idProduct}==”0ca5″, MODE=”0666″
- HTC ThunderBolt
Add to the file (or create it if it does not exist- see above) /etc/udev/rules.d/51-android.rules the following line:
SUBSYSTEMS==”usb”, ATTRS{idVendor}==”0bb4″, ATTRS{idProduct}==”0ca4″, MODE=”0666″
- LG OPTIMUS LG-P506
Add to the file (or create it if it does not exist- see above) /etc/udev/rules.d/51-android.rules the following line:
SUBSYSTEMS==”usb”, ATTRS{idVendor}==”1004″, ATTRS{idProduct}==”618e”, MODE=”0666″
- Motorola Xoom
Add to the file (or create it if it does not exist- see above) /etc/udev/rules.d/51-android.rules the following line:
SUBSYSTEMS==”usb”, ATTRS{idVendor}==”22b8″, ATTRS{idProduct}==”70a9″, MODE=”0666″
- Motorola Droid
Create/edit a file in /etc/udev/rules.d called 10-motorola-droid.rules:$ sudo gedit /etc/udev/rules.d/10-motorola-droid.rules
Add the following line to it and save it:
SUBSYSTEMS==”usb”, ATTRS{idVendor}==”22b8″, ATTRS{idProduct} ==”41db”, MODE=”0600″
- Nexus One
Create/edit a file in /etc/udev/rules.d called 99-android.rules:$ sudo gedit /etc/udev/rules.d/99-android.rules
Add the following line to it and save it:
SUBSYSTEM==”usb”, ATTRS{idVendor}==”18d1″, SYMLINK+=”android_adb”, MODE=”0666″
Step 3. Restart udev:
$ sudo restart udev
Check if the device is recognized:
$ adb devices
You may need to stop and start the adb server:
$ adb kill-server
$ adb start-server
Update: Please note that some devices require to disconnect the usb cable at this point and then reconnecting it.
You should be good to go…
tried a lot with LG optimus one(P500)
lsusb shows
Bus 001 Device 013: ID 1004:618e LG Electronics, Inc.
so had put the below onto /etc/udev/rules.d/51-android.rules.
SUBSYSTEMS==”usb”,ATTRS{idVendor}==”1004?,ATTRS{idProduct}==”618e”, MODE=”0666?
adb devices
List of devices attached
emulator-5554 device
???????????? no permissions
well i even tried disconnecting and reconnecting it.
@ rohith,
You have ? instead of double quotes.
Hi Dimitar,
I am using Samsung Galaxy3 – i5801 device and Ubuntu 10.10 on my Dell laptop. I tried your procedure to connect the device and to debug Android application directly on my device but no success.
Please do help me.
Thanks in Advance,
Shashikiran
Pingback:[Teclast] USB Vendor ID - Forum Android Italiano
tried with htc verizon 4g
adb devices
List of devices attached
emulator-5554 device
???????????? no permissions
I am using htc verizon 4g device and Ubuntu 11.10 on my Dell desktop. I tried your procedure to connect the device and to debug Android application directly on my device but no success.
Excellent guide. A big thanks to you. Only one suggestion: The following line is pretty important as I thought there was some other error and read this line later. Is it possible to increase its font/bold it so that it grabs the reader’s attention sooner:
Update: Please note that some devices require to disconnect the usb cable at this point and then reconnecting it.
Thanks!
Hi,
thanks for this post,
GROUP=”plugdev” was the solution here
for my samsung galaxy s2
had the “???????????? no permissions”
with “adb devices”.
I had to add this rule to udev in order for the phone to be detected:
SUBSYSTEMS==”usb”, SYSFS{idVendor}==”04e8″, SYSFS{idProduct}==”685e”, MODE=”0666″, OWNER=”MyUser” , GROUP=”plugdev”
and after restarting udev, killing and starting adb server, unplugging and plugging back the s2 it was detected \o/
cheers
It only worked when I ran adb as root
This process worked for me, thanks. For the HTC Incredible I used
SUBSYSTEMS==”usb”, ATTRS{idVendor}==”0bb4″, ATTRS{idProduct}==”0cac”, MODE=”0666″
It didn’t seem to work initially, but that was because when I tried cutting and pasting the line in the original post the quotation mark characters were not the regular ones (eg they were italicised one way or another).
Awesome. worked on Aakash Tablet.
Thanks 🙂
Worked for me after fiddling around for a while as well.
I didn’t noticed the wrongly copied quotation mark characters.
So:
!!
Be sure your text in the file contains only correct Ascii quotes (“) instead of those that come with the text when you use copy&paste. Try to rewrite them in the editor.
!!
My Motorola Droid 3 worked with
SUBSYSTEMS==”usb”, ATTRS{idVendor}==”22b8?, ATTRS{idProduct} ==”41db”, MODE=”0600?
but on the /etc/udev/rules.d/51-android.rules file
i have HTC sensation it is detected in dmesg command having vendor id 18d1 and product id 4e22 but it is not detected by adb
i have tried editing file android 90 as well as all combos including 666, 600 and symlink but its still not working
any help plz
Hi,
I have a Navcity NT 1710 and my lsusb display this:
Bus 001 Device 007: ID 18d1:0003 Google Inc.
I added the content in the file 51-android.rules:
SUBSYSTEM == “usb”, ATTR {idVendor} == “18d1”, ATTRS {idProduct} == “0003”, MODE = “0666”, GROUP = “plugdev”
and still is not recognized, can help me?
Pingback:Android setting your device to develpment | Pedro Rainho
I am using General Mobile Discovery 16 GB , I have not any information about it’s //Step 2. Depending on your phone follow these instructions:// Step. Is there anyboyd who knows its special code for step two ?
I am using General Mobile Discovery 16 GB
SUBSYSTEMS==”usb”, ATTRS{idVendor}==”0bb4″, ATTRS{idProduct} ==”0c03″, MODE=”0666″
works for me after corrected “ mark with ” mark
hi..
what to do for Motorola-G2.
I am unable to connect even after following the above process.
I tried:
SUBSYSTEMS==”usb”, ATTRS{idVendor}==”22b8?, ATTRS{idProduct}==”2e76?, MODE=”0666?
SUBSYSTEMS==”usb”, SYSFS{product}==”Android Phone”, MODE=”0666″
# Motorola PCS (XT1033)
SUBSYSTEM==”usb”, ATTRS{idVendor}==”22b8″, ATTRS{idProduct}==”2e82″, MODE=”0666″, GROUP=”plugdev”