asysbang

 找回密码
 立即注册
查看: 6481|回复: 1
打印 上一主题 下一主题

识别特殊ID的设备

[复制链接]

513

主题

2

好友

6404

积分

管理员

Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

最佳新人 活跃会员 热心会员 推广达人 宣传达人 灌水之王 突出贡献 优秀版主 荣誉管理 论坛元老

跳转到指定楼层
楼主
发表于 2013-4-22 09:59:20 |只看该作者 |倒序浏览
转载请注明:www.asysbang.com

尽管ubuntu上不需要安装驱动就可以识别设备,但还是有一些设备无法通过"adb devices"找到
这样的设备一般是定义了自己的vendor id,而这个id不在android默认的列表里面

连接设备之后通过 "lsusb"命令可以发现其实设备已经连接到电脑上

Bus 002 Device 003: ID 046d:c31d Logitech, Inc.
Bus 002 Device 002: ID 046d:c05a Logitech, Inc. Optical Mouse M90
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 004: ID 04e8:685e Samsung Electronics Co., Ltd                       我自己的三星手机
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

以三星手机为例
04e8就是vendor id   685e就是 product id

如果这个手机无法通过adb devices 找到,那么只需要在 "~/.android"目录下添加一个adb_usb.ini文件
里面写入0x04e8 就可以了

----------------------------------------------------------
那么android默认识别的vendor id 都有哪些呢?
看下adb的代码就知道了
system/core/adb/usb_vendors.c

// Google's USB Vendor ID
#define VENDOR_ID_GOOGLE        0x18d1
// Intel's USB Vendor ID
#define VENDOR_ID_INTEL         0x8087
// HTC's USB Vendor ID
#define VENDOR_ID_HTC           0x0bb4
// Samsung's USB Vendor ID
#define VENDOR_ID_SAMSUNG       0x04e8
// Motorola's USB Vendor ID
#define VENDOR_ID_MOTOROLA      0x22b8
// LG's USB Vendor ID
#define VENDOR_ID_LGE           0x1004
// Huawei's USB Vendor ID
#define VENDOR_ID_HUAWEI        0x12D1
// Acer's USB Vendor ID
#define VENDOR_ID_ACER          0x0502
// Sony Ericsson's USB Vendor ID
#define VENDOR_ID_SONY_ERICSSON 0x0FCE
// Foxconn's USB Vendor ID
#define VENDOR_ID_FOXCONN       0x0489
// Dell's USB Vendor ID
#define VENDOR_ID_DELL          0x413c
// Nvidia's USB Vendor ID
#define VENDOR_ID_NVIDIA        0x0955
// Garmin-Asus's USB Vendor ID
#define VENDOR_ID_GARMIN_ASUS   0x091E
// Sharp's USB Vendor ID
#define VENDOR_ID_SHARP         0x04dd
// ZTE's USB Vendor ID
#define VENDOR_ID_ZTE           0x19D2
// Kyocera's USB Vendor ID
#define VENDOR_ID_KYOCERA       0x0482
// Pantech's USB Vendor ID
#define VENDOR_ID_PANTECH       0x10A9
// Qualcomm's USB Vendor ID
#define VENDOR_ID_QUALCOMM      0x05c6
// On-The-Go-Video's USB Vendor ID
#define VENDOR_ID_OTGV          0x2257
// NEC's USB Vendor ID
#define VENDOR_ID_NEC           0x0409
......

为了识别其他的设备,还定义了
#define ANDROID_PATH            ".android"
#define ANDROID_ADB_INI         "adb_usb.ini"

其中usb_vendors_init()函数在加载预设置的vendor id之后,还会通过get_adb_usb_ini函数来加载adb_usb.ini中的id









相关帖子

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|aSys-帮 ( 京ICP备13033689号 )

GMT+8, 2024-10-5 21:13 , Processed in 0.048239 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部