手機利用USB連接到Ubuntu 12.04系統。運行下面的命令:
wujianjun@thinkpad:/media/DATA/Java-linux/android-sdk-linux/platform-tools$ 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:4808 Lenovo
Bus 002 Device 003: ID 2717:9039
拔掉手機的USB連接線,再運行:
wujianjun@thinkpad:/media/DATA/Java-linux/android-sdk-linux/platform-tools$ 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:4808 Lenovo
對比發現,Bus 002 Device 003: ID 2717:9039 就是小米手機的
sudo vi /etc/udev/rules.d/50-android.rules在打開的文件中增加以下文本:
SUBSYSTEM=="usb", SYSFS{idVendor}=="2717", MODE=="0666"
SUBSYSTEM=="usb_device", SYSFS{idVendor}=="2717", MODE=="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="2717", ATTR{idProduct}=="9039", SYMLINK+="android_adb"
sudo chmod a+rx /etc/udev/rules.d/50-android.rules
注意,這個50-android.rules 文件名字應該是隨意命名的,試過 51-android.rules ,52-android.rules 似乎是都可以的。
注意 "SUBSYSTEM=="usb", SYSFS{idVendor}=="2717", MODE=="0666" "這句是給 ubuntu 7.01 以後的系統識別用的
而"SUBSYSTEM=="usb_device", SYSFS{idVendor}=="2717", MODE=="0666""是給 Ubuntu 7.01之前的系統識別用的。相當於系統兼容。
wujianjun@thinkpad:/etc/udev/rules.d$ sudo service udev restart
udev stop/waiting
udev start/running, process 2968
在 android sdk 的 tools 目錄下運行 (這一步很重要,必須要sudo,否則沒效果)
wujianjun@thinkpad:/media/DATA/Java-linux/android-sdk-linux/platform-tools$ sudo ./adb kill-server
wujianjun@thinkpad:/media/DATA/Java-linux/android-sdk-linux/platform-tools$ sudo ./adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
到這一步了,結果發現 List of devices attached 下面沒有設備出現,這就意味着 adb不識別新的USB 設備,糾結了。
如果跟我一樣悲慘,請執行如下操作
wujianjun@thinkpad:~$ cd ~/.android/
wujianjun@thinkpad:~/.android$ ls
adbkey adb_usb.ini~ avd debug.keystore repositories.cfg
adbkey.pub androidtool.cfg cache default.keyset sites-settings.cfg
adb_usb.ini androidwin.cfg ddms.cfg modem-nv-ram-5554
請注意這個 adb_usb.ini
wujianjun@thinkpad:~/.android$ vi 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.
我們在其中加一行
# ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT.
# USE 'android update adb' TO GENERATE.
# 1 USB VENDOR ID PER LINE.
0x2717
請注意,這個 0x2717 就是我們得到的設備號碼
保存,關掉,然後
wujianjun@thinkpad:/media/DATA/Java-linux/android-sdk-linux/platform-tools$ sudo ./adb kill-server
wujianjun@thinkpad:/media/DATA/Java-linux/android-sdk-linux/platform-tools$ sudo ./adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
15c61631device
注意 15c61631device 這行就是我們的識別到的小米手機了。哈哈
然後在Eclipse下面的DDMS 去折騰吧。