执行:
sudo gedit /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"
保存50-android.rules,退出。
重启 udev 服务
sudo service udev restart
接下来让找到并编辑 ~/.android/adb_usb.ini,但是我的虚拟机上没有找到,就直接用比较简单的方法,运行命令:
echo "0x2717" > ~/.android/adb_usb.ini
//然后重启 adb 服务
adb kill-server
adb start-server
其中0x2717是小米3特定的设备代码,可以参照一下方法获取:
插上小米3,然后执行:
lsusb
拔掉小米3,再次执行:
lsusb
在两次输出结果中找不同:
Bus 001 Device 004: ID 2717:9039
不同电脑的输出结果可能不一样,但是大致类似上面的结果。找到 ID 后面的就是小米3对一个的设备代码了。
补充知识:
udev服务是在root下执行,将50-android.rules中的设备的读写权根暴露给用户,这样adb就拥有了指定设备的读写权根(adb在用户态下运行)。而adb_usb.ini则告诉adb哪些设备是android设备。