经过分别在ubuntu和windows上面使用adb 命令,测试三个设备,分别是huawei 、mediatek(tcl)、rockchip,但只有rockchip需要在HOME/.android/adb_usb.ini里添加0x2207 vendor ID,其他两个不需要。
(用rockchip提供的驱动助手安装adb驱动,会在C:\Documents and Settings\Administrator\.android\adb_usb.ini里添加vendor id)
为什么只有rockchip需要添加id呢?
这是因为,大部分常见厂商的usb vendor id都builtin在代码里了,可以在http://androidxref.com/ 里查找usb_vendors.c,这个文件里内置了一些常见厂商id,而rockchip id 0x2207是在android 5后加入的,自己使用的adb version是1.0.31,查询到此版本于android 4版本代码里,因此,1.0.31版本的adb是没有包含rockchip的id的,所以需要在adb_usb.ini里添加。
搜索发现,android 6.0后,adb代码里找不到usb_vendors.c 了,也找不到adb_usb.ini的定义了,因此,判断id的步骤取消了?
使用adb 1.0.32版本验证,果然如此,即不需要在adb_usb.ini里添加id也可以正常使用。
然后使用ubuntu上编译好的rochchip android 6.0 系统验证,使用out目录下的adb,在不修改/etc/udev/rules.d下rules文件和不修改adb_usb.ini文件情况下,adb正常使用:
...... out$ ./host/linux-x86/bin/adb devices
List of devices attached
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
0123456789ABCDEF device
而使用安装在ubuntu上的adb,在此情况下,找不到设备:
....~$ adb devices
List of devices attached