在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