在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 gedit /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
sudo adb start-server
然后看看adb devices是否已经已经正常显示出设备的名称了。
PS:(好像不大管用)
最新修改方法,不用去看设备的ID,直接在rules.d下增加一个文件51-android.rules,内容为:
SUBSYSTEM=="usb" ENV{DEVTYPE}=="usb_device", MODE="0666"
目前通用于所有android设备。保存后如上面的步骤修改权限,重启udev和adb,然后重新插上手机就可以了