在ubuntu上经常出现系统无法识别android手机的情况,要解决这个问题可以用以下方法:
1. 执行 "android update adb", 这会创建"~/.android/adb_usb.ini" 文件。 2. 执行 lsusb, 找出手机的 usb vendor id。 lsusb的输出格式类似: Bus 001 Device 033: ID 22d9:2767 其中 22d9 就是 vendor id。 3. 把 usb vendor id 用16进制格式写入 adb_usb.ini 中,每行一个id。 如: 0x22d9 4. 执行 "adb kill-server" 5. 然后 adb devices 就可以列出设备
如果设备 adb devices 的输出为
List of devices attached ???????????? no permissions
可以通过在 /etc/udev/rules.d/ 下加一个 rules 文件的方式解决。 例如,创建一个 51-android.rules 文件, 然后在里面为相应的vendor id 加一行:
SUBSYSTEM=="usb", ATTR{idVendor}=="22d9", MODE="0666"
更新 udev: sudo /etc/init.d/udev restart
如果设备adb devices 还是输出为
List of devices attached ???????????? no permissions
终极解决方案(复制如下内容,保存为 /etc/udev/rules.d/51-android.rules, 并修改该文件的拥有者属性):
# ================== 内容开始 ================== #Acer SUBSYSTEM=="usb", ATTRS{idVendor}=="0502", MODE="0660", GROUP="plugdev" #ASUS SUBSYSTEM=="usb", ATTRS{idVendor}=="0b05", MODE="0660", GROUP="plugdev" #Dell SUBSYSTEM=="usb", ATTRS{idVendor}=="413c", MODE="0660", GROUP="plugdev" #Foxconn SUBSYSTEM=="usb", ATTRS{idVendor}=="0489", MODE="0660", GROUP="plugdev" #Fujitsu/Fujitsu Toshiba SUBSYSTEM=="usb", ATTRS{idVendor}=="04c5", MODE="0660", GROUP="plugdev" #Garmin-Asus SUBSYSTEM=="usb", ATTRS{idVendor}=="091e", MODE="0660", GROUP="plugdev" #Google SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", MODE="0660", GROUP="plugdev" #Haier SUBSYSTEM=="usb", ATTRS{idVendor}=="201E", MODE="0660", GROUP="plugdev" #Hisense SUBSYSTEM=="usb", ATTRS{idVendor}=="109b", MODE="0660", GROUP="plugdev" #HTC SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0660", GROUP="plugdev" #Huawei SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", MODE="0660", GROUP="plugdev" #K-Touch SUBSYSTEM=="usb", ATTRS{idVendor}=="24e3", MODE="0660", GROUP="plugdev" #KT Tech SUBSYSTEM=="usb", ATTRS{idVendor}=="2116", MODE="0660", GROUP="plugdev" #Kyocera SUBSYSTEM=="usb", ATTRS{idVendor}=="0482", MODE="0660", GROUP="plugdev" #Lenovo SUBSYSTEM=="usb", ATTRS{idVendor}=="17ef", MODE="0660", GROUP="plugdev" #LG SUBSYSTEM=="usb", ATTRS{idVendor}=="1004", MODE="0660", GROUP="plugdev" #Motorola SUBSYSTEM=="usb", ATTRS{idVendor}=="22b8", MODE="0660", GROUP="plugdev" #MTK SUBSYSTEM=="usb", ATTRS{idVendor}=="0e8d", MODE="0660", GROUP="plugdev" #NEC SUBSYSTEM=="usb", ATTRS{idVendor}=="0409", MODE="0660", GROUP="plugdev" #Nook SUBSYSTEM=="usb", ATTRS{idVendor}=="2080", MODE="0660", GROUP="plugdev" #Nvidia SUBSYSTEM=="usb", ATTRS{idVendor}=="0955", MODE="0660", GROUP="plugdev" #OTGV SUBSYSTEM=="usb", ATTRS{idVendor}=="2257", MODE="0660", GROUP="plugdev" #Pantech SUBSYSTEM=="usb", ATTRS{idVendor}=="10a9", MODE="0660", GROUP="plugdev" #Pegatron SUBSYSTEM=="usb", ATTRS{idVendor}=="1d4d", MODE="0660", GROUP="plugdev" #Philips SUBSYSTEM=="usb", ATTRS{idVendor}=="0471", MODE="0660", GROUP="plugdev" #PMC-Sierra SUBSYSTEM=="usb", ATTRS{idVendor}=="04da", MODE="0660", GROUP="plugdev" #Qualcomm SUBSYSTEM=="usb", ATTRS{idVendor}=="05c6", MODE="0660", GROUP="plugdev" #SK Telesys SUBSYSTEM=="usb", ATTRS{idVendor}=="1f53", MODE="0660", GROUP="plugdev" #Samsung SUBSYSTEM=="usb", ATTRS{idVendor}=="04e8", MODE="0660", GROUP="plugdev" #Sharp SUBSYSTEM=="usb", ATTRS{idVendor}=="04dd", MODE="0660", GROUP="plugdev" #Sony SUBSYSTEM=="usb", ATTRS{idVendor}=="054c", MODE="0660", GROUP="plugdev" #Sony Ericsson SUBSYSTEM=="usb", ATTRS{idVendor}=="0fce", MODE="0660", GROUP="plugdev" #Teleepoch SUBSYSTEM=="usb", ATTRS{idVendor}=="2340", MODE="0660", GROUP="plugdev" #Toshiba SUBSYSTEM=="usb", ATTRS{idVendor}=="0930", MODE="0660", GROUP="plugdev" #ZTE SUBSYSTEM=="usb", ATTRS{idVendor}=="19d2", MODE="0660", GROUP="plugdev" #XiaoMi SUBSYSTEM=="usb", ATTRS{idVendor}=="2717", MODE="0660", GROUP="plugdev" #OPPO SUBSYSTEM=="usb", ATTRS{idVendor}=="22d9", MODE="0660", GROUP="plugdev" # ================== 内容结束 ==================
sudo chown [loginusername]:[groupofuser] 51-android.rules