这个时候该怎么办呢?
一,先搞清现在的 PID ,VID 为多少,例如分别为 aaaa、bbbb(十六进制)
对于 linux 如 ubuntu, 插入 设备,再查询 /sys/bus/usb/devices/ 下的相应设备,如 "1-1" 下的 idVender, idProduct 获得。另一种快速的方法是,执行 lsusb 命令, "Bus 008 Device 003: ID04b3:310d IBM Corp. ", 这是我的鼠标的 usb 信息, 蓝色数字部分分别是 PID, VID。
对于 windows, 可从相应设备的属性中获得。
二,对于windows:
1. 修改 adb 驱动中的 android_winusb.inf 文件。对照着别的项目加就可以了。
例如:
; My product
%CompositeAdbInterface% = USB_Install, USB\VID_AAAA&PID_BBBB
%SingleBootLoaderInterface% = USB_Install, USB\VID_AAAA&PID_BBBB&MI_01
2. 右击我的电脑->属性->高级->环境变量,添加 ANROID_SDK_HOME 环境变量。如果你有 android SDK, 就设成 SDK 的路径;如果没有,那也没关系,设为你觉得方便的任何路径。
3. 在前面设置的 ANDROID_SDK_HOME 对应的路径下,寻找 .android 目录,如果没有就创建一个;在 .android 目录下新建一个文件,叫adb_usb.ini, 记住,后缀是 "ini" 哦;添加前面获得的 VID 到 adb_usb.ini 中,如 0xAAAA。
4. 然后安装 adb 驱动
5. 进入 DOS cmd, 分别输入 adb kill-server, adb start-server, adb devices;若能看到 devices 列出,那么就成功了。
补充:步骤 2 和 3 也可以用另一种办法代替:
首先,运行 cmd 命令进入控制终端,这个时候控制终端是在当前用户的 ”home“ 目录(见注释)下,输入命令 “mkdir .android” 建立 .android 目录(直接用鼠标控制是建立不了以 '.' 开头的文件的 );
然后,打开 .android 目录(在home 目录下),创建文件 "adb_usb.ini" 文件,往里面写入 VID (如,0xAAAA)便可。
注释:当前用户home 目录: 比如登录用户名是 fsysky,那么 fsysky 用户的 home 目录就是 “/Documents and Settings/fsysky”。一般用 windows 的人是以 Administrator 登录的,那么,home 目录是 “/Documents and Settings/Administrator”。
三,对于linux
1. 在用户的 home 目录下,寻找 .android 目录,如果没有就创建。在 .android 目录下新建一个文件,叫 adb_usb.ini, 记住,后缀是 "ini" 哦;添加前面获得的 VID 到 adb_usb.ini 中,如 0xAAAA。
2. 在 shell 中 分别输入 adb kill-server, adb start-server, adb devices;若能看到 devices 列出,那么就成功了。
这里 kill-server,是 kill 掉 adb 的 daemon,否则,adb 还是保留着先前的 Vender 信息。start-server 就加载了新的 Vender 信息。
注意:有些人可能用 adb 需要超级用户权限(sudo),这时第一步中的home 目录应该为 /root,不想麻烦,直接两个 Home 目录都加上。
根据USB规范的规定,所有的USB设备都有供应商ID(VID)和产品识别码(PID),主机通过不同的VID和PID来区别不同的设备,VID和PID都是两个字节长,其中,供应商ID(VID)由供应商向USB执行论坛申请,每个供应商的VID是唯一的,PID由供应商自行决定。
VID和PID通常情况下有两种存储方式,第一种是主控生产商的VID和PID,存储在主控的bootcode中;第二种是设备生产商的VID和PID,该VID和PID存储在主控外部的非易失性存储设备中(EEPROM或Flash)的设备固件中,当USB设备连接主机时,如果固件中有设备生产商的VID和PID,会将该VID和PID报告给主机,而忽略主控生产商的VID和PID。所以理论上一个USB存储设备的VID应该是设备生产商的VID,而不是主控生产商的VID,这两个VID应该是不同的(主控生产商自己生产的设备除外)。
由于VID和PID重复并不会对产品的使用带来严重影响,很多USB设备生产商(山寨厂居多)为了方便,并不会向USB执行论坛申请自己的VID,而
是依然沿用主控生产商的VID或随便向产品写入VID和PID;同时,正规厂家只需要申请VID,PID由厂家自行确定,所以存在相同型号的产品,可能采用了不同的主控(商业需要,很正常),而他们的PID是一样的,基于上述原因通过VID和PID就不能准确识别USB设备的主控型号,这个问题大家在使用USB设备的过程中需要注意。
有专门的软件可以检测:如腾楼庄园usb工具箱等。
首先需要下载adb for linux的工具包 下载地址
解压到任何地方,不要删除掉就是了
然后新建并编辑一个文件
sudo vi /etc/udev/rules.d/70-android.rules
在里面写入:
如果你的系统是10.10,或者11.04(11.10没有测试),则写入下面这句
SUBSYSTEM==”usb”, ATTR{idVendor}==”04e8“, MODE=”0666〃
如果你的系统版本是10.04 就改为下面一句
SUBSYSTEM==”usb”, SYSFS{idVendor}==”04e8“, MODE=”0666〃
其中红色字体未设别标识,不同厂商的标识不一样,请按照自己的手机更改,参照表如下
ManufacturerUSB Vendor IDAcer | 0502 |
Dell | 413c |
Foxconn | 0489 |
Garmin-Asus | 091E |
HTC (Older Phones) | 0bb4 |
HTC (Newer phones) | 18d1 |
Huawei | 12d1 |
Kyocera | 0482 |
LG | 1004 |
Motorola | 22b8 |
Nexus One/S | 18d1 |
Nvidia | 0955 |
Pantech | 10A9 |
Samsung | 04e8 |
Sharp | 04dd |
Sony Ericsson | 0fce |
ZTE | 19D2 |
然后保存退出,再设置一下权限
sudo chmod a+rx /etc/udev/rules.d/70-android.rules
这时候还需要编辑一下 ~/.bashrc 文件加入adb tool的路径
vi ~/.bashrc
在末尾加入,其中红色部分就是刚下载的工具包解压的路径
export PATH=${PATH}:/home/rabbit/Documents/platform-tools
现在需要重启一下你的Ubuntu,然后USB连接手机,确保usb调试已打开,在终端下输入
adb start-server 打开服务
如果一切正常的话
输入
adb devices
就能显示出当前连接到电脑的android设备 ^_^
adb shell
就能在 Ubuntu上的终端执行android的 shell命令了