aaashun's site

home

让adb识别android设备

08 Jul 2013

今天解决一个问题需要用到小米2手机, 折腾了好一会, 才在'adb devices'里看到设备. 这前遇到过一次这类问题, 其实解决开发环境无法识别android设备的方法都差不多, 这里记录一下完整过程.

0. 首先确认你的usb线是支持数据传输的


曾经一次折腾了半天发现是只是根充电线有问题, 插上能正常充电, 但是lsusb看不到

1. 获取USB Vendor ID


断开设备执行lsusb, 连接设备再执行lsusb, 根据结果可判断设备的idVender, 如下输出中2717即是小米2的vendor
    Bus 005 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 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 001 Device 003: ID 2717:9039
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

2. 修改udev rules


    echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="2717", MODE="0666", GROUP="plugdev"' >> /etc/udev/rules.d/51-android.rules
    chmod a+r /etc/udev/rules.d/51-android.rules

3. 修改.android/adbusb.ini


如果是三星,htc等大厂的设备不需要此步, 建议在这个列表里找不到的都设一下吧, http://developer.android.com/tools/device.html
    echo '0x2717' >> ~/.android/adbusb.ini

4. 重启 udev


    #service udev restart # ubuntu
    /sbin/start_udev # centos

5. 重启 adb server


    adb kill-server
    adb start-server
    adb devices

6. 如果adb devices还不显示则可能是adb的版本号太低


执行adb version查看版本号, 目前最新版本号是1.0.31
    ${ANDROID_SDK}/tools/android update adb

重复步骤4即可

参考: http://developer.android.com/tools/device.html

comments powered by Disqus