1.要在linux上用adb或fastboot访问连接至USB的设备,需要配置udev规则。按照以下步骤设置正确的规则:
1)确认你的用户包含在plugdev组中。在终端输入
groups
并查看plugdev是否在所列出的组中。如果没有看见列出plugdev,可以使用以下命令将您的用户添加到组:
sudo gpasswd -a 用户名 plugdev
其中用户名替换为当前登陆的linux的用户名。
2)将下面列出的规则集复制到一个文本文件中,并将其保存为/etc/udev/rules.d/51-android.rules。需要使用sudo/su才能向那个文件夹中写入文件。
示例:
sudo vi /etc/udev/rules.d/51-android.rules
#Acer SUBSYSTEM=="usb", ATTR{idVendor}=="0502", MODE="0664", GROUP="plugdev" #ASUS SUBSYSTEM=="usb", ATTR{idVendor}=="0b05", MODE="0664", GROUP="plugdev" #Dell SUBSYSTEM=="usb", ATTR{idVendor}=="413c", MODE="0664", GROUP="plugdev" #Foxconn SUBSYSTEM=="usb", ATTR{idVendor}=="0489", MODE="0664", GROUP="plugdev" #Fujitsu & Fujitsu Toshiba SUBSYSTEM=="usb", ATTR{idVendor}=="04c5", MODE="0664", GROUP="plugdev" #Garmin-Asus SUBSYSTEM=="usb", ATTR{idVendor}=="091e", MODE="0664", GROUP="plugdev" #Google SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0664", GROUP="plugdev" #Haier SUBSYSTEM=="usb", ATTR{idVendor}=="201e", MODE="0664", GROUP="plugdev" #Hisense SUBSYSTEM=="usb", ATTR{idVendor}=="109b", MODE="0664", GROUP="plugdev" #HTC SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0664", GROUP="plugdev" #Huawei SUBSYSTEM=="usb", ATTR{idVendor}=="12d1", MODE="0664", GROUP="plugdev" #K-Touch SUBSYSTEM=="usb", ATTR{idVendor}=="24e3", MODE="0664", GROUP="plugdev" #KT Tech SUBSYSTEM=="usb", ATTR{idVendor}=="2116", MODE="0664", GROUP="plugdev" #Kyocera SUBSYSTEM=="usb", ATTR{idVendor}=="0482", MODE="0664", GROUP="plugdev" #Lenovo SUBSYSTEM=="usb", ATTR{idVendor}=="17ef", MODE="0664", GROUP="plugdev" #LG SUBSYSTEM=="usb", ATTR{idVendor}=="1004", MODE="0664", GROUP="plugdev" #Motorola SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", MODE="0664", GROUP="plugdev" #MTK SUBSYSTEM=="usb", ATTR{idVendor}=="0e8d", MODE="0664", GROUP="plugdev" #NEC SUBSYSTEM=="usb", ATTR{idVendor}=="0409", MODE="0664", GROUP="plugdev" #Nook SUBSYSTEM=="usb", ATTR{idVendor}=="2080", MODE="0664", GROUP="plugdev" #Nvidia SUBSYSTEM=="usb", ATTR{idVendor}=="0955", MODE="0664", GROUP="plugdev" #OTGV SUBSYSTEM=="usb", ATTR{idVendor}=="2257", MODE="0664", GROUP="plugdev" #Pantech SUBSYSTEM=="usb", ATTR{idVendor}=="10a9", MODE="0664", GROUP="plugdev" #Pegatron SUBSYSTEM=="usb", ATTR{idVendor}=="1d4d", MODE="0664", GROUP="plugdev" #Philips SUBSYSTEM=="usb", ATTR{idVendor}=="0471", MODE="0664", GROUP="plugdev" #PMC-Sierra SUBSYSTEM=="usb", ATTR{idVendor}=="04da", MODE="0664", GROUP="plugdev" #Qualcomm SUBSYSTEM=="usb", ATTR{idVendor}=="05c6", MODE="0664", GROUP="plugdev" #SK Telesys SUBSYSTEM=="usb", ATTR{idVendor}=="1f53", MODE="0664", GROUP="plugdev" #Samsung SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0664", GROUP="plugdev" #Sharp SUBSYSTEM=="usb", ATTR{idVendor}=="04dd", MODE="0664", GROUP="plugdev" #Sony SUBSYSTEM=="usb", ATTR{idVendor}=="054c", MODE="0664", GROUP="plugdev" #Sony Ericsson SUBSYSTEM=="usb", ATTR{idVendor}=="0fce", MODE="0664", GROUP="plugdev" #Teleepoch SUBSYSTEM=="usb", ATTR{idVendor}=="2340", MODE="0664", GROUP="plugdev" #Toshiba SUBSYSTEM=="usb", ATTR{idVendor}=="0930", MODE="0664", GROUP="plugdev" #ZTE SUBSYSTEM=="usb", ATTR{idVendor}=="19d2", MODE="0664", GROUP="plugdev"这些规则涵盖了所有Google列出的供应商。或者可以只添加计划连接到计算机的设备的供应商。
如果不确定设备的供应商,idVendor可以用lsusb确定:
$ lsusb
Bus 002 Device 054: ID 0bb4:0f87 HTC (High Tech Computer Corp.)
...
在本例中,0BB4是idVendor,而0f87是idProduct。
3)修改51-android.rules的访问权限
sudo chmod a+rx /etc/udev/rules.d/50-android.rules
然后重启udev服务
sudo service udev restart 或者 sudo restart udev
2.重启adb,查看Android设备
进入android SDK目录下的/platform-tools/目录,执行
sudo ./adb kill-server
sudo ./adb start-server
sudo ./adb devices
第二条命令必须要加sudo。有时adb无法找到设备。是因为adb守护进程的权限不够。
如果你执行完这几条命令之后看到的是;类似于这样的提示信息
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attachedList of devices attached 下面没有设备出现,这就意味着 adb不识别新的USB 设备。还要再进行第3步操作。
3.创建或修改 adb_usb.ini
sudo vi~/.android/adb_usb.ini
里面的内容是这样的:
# ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT.
# USE 'android update adb' TO GENERATE.
# 1 USB VENDOR ID PER LINE.在后面添加上之前得到的idVendor编号即可。例如小米手机的idVendor为2717,添加一句0x2717在最后。
# ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT.
# USE 'android update adb' TO GENERATE.
# 1 USB VENDOR ID PER LINE.
0x2717
重复第2步,即可查看到设备:
adb devices
List of devices attached
5DS4ZTSSYTQ4EA4H device
参考:
- adb简介
- UDEV
- Using Hardware Devices
- Ubuntu(Linux)下手机调试Android程序(小米手机连接上Android ADB)
- Android杂谈--ubuntu系统下adb连接小米2