问题:
通过数据线连接手机后直接运行adb devices输出:
List of devices attached
???????????? no permissions
同时在DDMS中显示设备名也显示????????????,也无法显示进程名,无法查看log。
原因:
没有访问设备的权限。使用 $ sudo devices 应该可以看到设备。
为了避免每次输入sudo,可以通过给adb文件set uid来解决:
$ sudo chown root:root ./adb
$ sudo chmod u+s ./adb
但个人不喜欢这种方法,故有了下面的第二种解决办法,这也是广泛使用的方法。
解决方法:
1)获取idVendor和idProduct:
因为ubuntu这样的系统都是默认以非root身份在运行的,要使用usb调试,需要sudo支持。插入usb前后各执行一次lsusb,找到对应设备。
如我的手机是ZTE N880E:Bus 002 Device 004: ID 19d2:1366 ZTE WCDMA Technologies MSM
其中,19d2为制造商ID(idVendor),1366为产品ID(idProduct)。
2)编辑相关文件:
$ sudo gedit /etc/udev/rules.d/51-android.rules
加入以下内容:SUBSYSTEM=="usb", ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1366", MODE="0666", GROUP="plugdev"
修改权限:$ sudo chmod a+rx /etc/udev/rules.d/51-android.rules
3)重启udev:
$ sudo service udev restart
4)重新启动adb server:
拔掉usb重新连上再执行
$ adb kill-server$ adb devices
是不是可以看到你的设备了?
5)如果还是不行,可以尝试:
$ echo "0x19d2" >> ~/.android/adb_usb.ini
(0x19d2为设备idVendor)
然后再试一下。
此处提供adb、fastboot等工具下载:点我