使用adb时,为什么只有RockChip的ID需要加入到adb_usb.ini文件里呢?

经过分别在ubuntuwindows上面使用adb 命令,测试三个设备,分别是huawei mediatektcl)、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 idbuiltin在代码里了,可以在http://androidxref.com/ 里查找usb_vendors.c,这个文件里内置了一些常见厂商id,而rockchip id 0x2207是在android 5后加入的,自己使用的adb version1.0.31,查询到此版本于android 4版本代码里,因此,1.0.31版本的adb是没有包含rockchipid的,所以需要在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.drules文件和不修改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 

你可能感兴趣的:(Android)