最近在做flash手机项目,用fb选择android设备调试,总会出现找不到设备的情况。看了很多帖子都解决不了问题,后来终于研究出来是adb无法找到设备的问题。最后通知这篇帖子终于解决了问题。
使用电脑连接android设置的时候,通常要做两步:1是安装USB驱动;2是启动adb工具。
第一步比较简单,只要修改android驱动的配置文件android_winusb.inf,把你设备的VendorID跟ProductID加进去就行了。
安装好驱动之后,启动adb devices的时候,很多的时候,我们找不到设备。
出现这种情况主要是因为adb内建有一个知名的厂商ID列表,对于列表内的设备,adb可以直接连接,而不在列表中的设备,则不好意思,它会直接返回,这也就是为什么android设备的驱动已经安装好了,而adb连接不上的原因。。。
悲剧的是,我们用的android大部分都修改了USB的厂商ID,而大部分的ID都未在google默认的列表里面啊,,,
好在adb除了内建的一个列表之后,还有一个adb_usb.ini文件维护一下可信任的第三方厂商列表,,,
Windows系统下,adb_usb.ini文件保存于用户路径下的.android文件夹内,
C:UsersAdministrator.androidadb_usb.ini
Ubuntu系统下的话,则是在你的用户目录下的.android目录
~.androidadb_usb.ini
如果你的系统下没有这个文件,则需要新建一个,,,
厂商ID也是就VID,windows可以在驱动的属性那里看到,而linux可以用lsusb看到。
拿到设备的厂商ID直接加入到adb_usb.ini文件就可以了,
fastboot找不到设备的话,会出现< waiting for device >的提示,由于它没有没有可配置的第三方文件,如果需要使用的话,可以用"-i"指定厂商ID。
例如我使用全志的设备,它的VID是0x1f3a,那么可以这么写:
fastboot -i 0x1f3a erase boot
当然adb也有-i的参数指定厂商ID,但是如果每次都敲一次就太麻烦了,,,
下面是一个adb_usb.ini文件的例子~
0x18d1
0x0bb4
0x04e8
0x22b8
0x1004
0x12D1
0x0502
0x0FCE
0x0489
0x413c
0x0955
0x091E
0x04dd
0x19D2
0x0482
0x10A9
0x05c6
0x2257
0x0409
0x04DA
0x0930
0x1F53
0x2116
0x0b05
0x0471
0x0451
0x0408
0x1d91
0x040a
0x143c
0x1ebf
0x23e6
0x1e0e
0x0525
0x1219
0x17EF
0x2006
0x22d9
0x1C9E
0x0B57
0x24e3
0x1bbb
0x0F1C
0x0414
0x2420
0xE040
0x1D4D
0x0E79
0x1662
0x1F3A