今天需要使用真机测试,结果出了一点小问题,设备连上后出现:????????????? no permissions 网上有解决方案,我整理一下。
0、下载最新的sdk
1、终端命令:lsusb
显示:
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:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 17ef:7423 Lenovo
Bus 002 Device 003: ID 17ef:4810 Lenovo Integrated Webcam [R5U877]
将设备ID记住,17ef,另外不同的品牌ID如下:
Company | USB Vendor ID |
---|---|
Acer | 0502 |
ASUS | 0b05 |
Dell | 413c |
Foxconn | 0489 |
Fujitsu | 04c5 |
Fujitsu Toshiba | 04c5 |
Garmin-Asus | 091e |
18d1 | |
Hisense | 109b |
HTC | 0bb4 |
Huawei | 12d1 |
K-Touch | 24e3 |
KT Tech | 2116 |
Kyocera | 0482 |
Lenovo | 17ef |
LG | 1004 |
Motorola | 22b8 |
NEC | 0409 |
Nook | 2080 |
Nvidia | 0955 |
OTGV | 2257 |
Pantech | 10a9 |
Pegatron | 1d4d |
Philips | 0471 |
PMC-Sierra | 04da |
Qualcomm | 05c6 |
SK Telesys | 1f53 |
Samsung | 04e8 |
Sharp | 04dd |
Sony | 054c |
Sony Ericsson | 0fce |
Teleepoch | 2340 |
Toshiba | 0930 |
ZTE | 19d2 |
2、找到文件/etc/udev/rules.d/70-android.rules,没有就自己建
在该文件中添加SUBSYSTEM=="usb", SYSFS{idVendor}=="17ef", MODE="0666" 其中SYSFS{idVendor}=="17ef"对应设备id
3、终端命令:
sudo chmod a+rx /etc/udev/rules.d/70-android.rules
sudo service udev restart
增加权限,如果在root权限下就不需要了
4、在root用户下命令:
adb kill-server
adb start-server
adb devices
或者找到adb目录(这里需要注意一下,以前adb在android-sdks/tools路径下,貌似最近的搬家了,在android-sdks/platform-tools路径下,仔细一点的话能发现在tools/下面有个txt文档告诉你它搬家了。)
sudo ./adb kill-server
sudo ./adb start-server
sudo ./adb devices
5、最后显示:
List of devices attached
7DF000029EDC0000 device
就一切正常了。
P.S. 一般情况下可以先直接试试第4步,说不定就好了。