http://blog.csdn.net/maosidiaoxian/article/details/22661725
在ubuntu下连接android设备,虽然不用像windows那样安装驱动,然而却会遇见一个错误:输入adb shell,会提示insufficient permissions for device,输入adb devices,设备名称会显示 ????????等一大堆问号。
这是因为ubuntu默认是以非root用户运行的。如果要使用adb 进行usb调试,使用root账号去执行相关命令固然可以进入adb shell,但是却太麻烦。
另一种方法是配置udev的规则。方法如下:
1、输入lsusb,查看设备的ID号。如我的输出内容如下:
Bus 002 Device 008: ID 0bb4:0d02 High Tech Computer Corp.
Bus 008 Device 002: ID 046d:c52e Logitech, Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 008 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 009 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
其中Bus 002 Device 008: ID 0bb4:0d02 High Tech Computer Corp.这一行就是我的HTC手机的USB使用端口了。记住中间的这两个ID:0bb4和0d02。
2、sudo vi /etc/udev/rules.d/70-android.rules
如果没有这个文件,可以创建,然后加入以下内容
SUBSYSTEM=="usb",ATTRS{idVendor}=="0bb4",ATTRS{idProduct}=="0d02",MODE="0666"
3、修改权限
sudo chmod a+rx /etc/udev/rules.d/70-android.rules
4、重启udev 服务:
sudo service udev restart
5、重启adb server。
重连设备,然后执行sudo ./adb kill-server
adb start-server
然后看看adb devices是否已经已经正常显示出设备的名称了。
======================================================
附录链接nexus 6 实践
1、在/ect/udev/rules.d 下创建51-android.rules 文件
2、添加内容
UBSYSTEM=="usb",SYSFS{idVendor}=="2a45",ATTRS{idProduct}=="0c02", MODE="0666",GROUP="plugdev"
SUBSYSTEM=="usb",SYSFS{"Google Inc. Nexus 4 (debug)"}=="18d1",ATTRS{idProduct}=="4ee2", MODE="0666",GROUP="plugdev"
3、重启udev
sudo service udev restart
4、使用超级用户重启adb
sudo ~/android/android-sdk-linux/platform-tools/adb kill-server
sudo ~/android/android-sdk-linux/platform-tools/adb start-server
一定要使用超级用户,普通用户重启没有作用