转自:http://skzr-org.iteye.com/blog/1141224
在linux里面,模拟器可以直接识别,使用adb也没有限制,但是手机插上usb之后,adb并不识别,显示的是问号,在eclipse里面也是这样。
解决方法如下:
1.在bash中输入lsusb,可以看到很多BUS设备,很多都是Linux Foundation 1.1 root hub的,这是没有插上usb设备的端口,插上手机的端口会出现另外的字符串,比如我的是High Tech Computer Corp. 然后记下它的id:0bb4:0c02
2.在/etc/udev/rules.d目录下新建一个51-android.rules文件,内容如下:
<span style="font-size:18px;"> SUBSYSTEM=="usb|usb_device", SYSFS{idVendor}=="0bb4", MODE="0660",GROUP="plugdev"
SUBSYSTEM=="usb|usb_device", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0c02", SYMLINK+="android_adb"
SUBSYSTEM=="usb|usb_device", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0c01", SYMLINK+="android_fastboot" </span>
这里的idVendor是第一步中记下的id。
3.执行如下命令
<span style="font-size:18px;">chmod a+r /etc/udev/rules.d/51-android.rules
sudo adb kill-server
sudo adb devices </span>
法二:
所以我就能知道
Bus 002 Device 002 : ID 04e8:685e Samsung Electronics Co., Ltd
|
这行是手机了,所以我应该如下操作:
1 )sudo gedit /etc/udev/rules.d/ 53 -android.rules
在打开的文件中增加以下文本:
SUBSYSTEM== "usb" , SYSFS{idVendor}== "04e8" , MODE= "0666"
SUBSYSTEM== "usb" , ATTR{idVendor}== "04e8" , ATTR{idProduct}== "685e" , SYMLINK+= "android_adb"
2 ) 运行以下命令:
sudo chmod a+rx /etc/udev/rules.d/ 53 -android.rules
sudo /etc/init.d/udev restart
3 ) 在 android sdk 的 tools 目录下运行 (这一步很重要,必须要sudo,否则没效果)
sudo ./adb kill-server
sudo ./adb devices
然后,就可以直接用 adb shell来进行操作了。
|
之后就可以识别了,在这里列出了两个手机,其它的应该也差不多。
要是重启之后又连不上了,使用如下方法:
1.Setting ownership of the adb binary (owner – root, owner group - user_group):
chown root:user_group adb
2.Setting permissions with SUID:
chmod 4550 adb
This should result something similar to this (ls -llh):
-r-sr-x---. 1 root user_name 1.2M Jan 8 11:42 adb
After that you will be able to run adb as a root, event though you'll be using your normal user account. You can run Eclipse as a normal user and your HTC should be discovered properly.
./adb devices
List of devices attached
HT0BPPY15230 device
转自: http://stackoverflow.com/questions/14460656/android-debug-bridge-adb-device-no-permissions