windows adb不识别(VID PID更改)
2017-08-07 16:19
330 查看
在 android 设备的 Linux 内核中把 USB 驱动的 PID VID 修改以后,也许之前的 adb 工具就不能识别设备了,会打印出 "device not found" 的提示,特别是 windows ,adb 驱动也不能用了。
这个时候该怎么办呢?
一,先搞清现在的 PID ,VID 为多少,例如分别为 aaaa、bbbb(十六进制)
对于 Linux 如 ubuntu, 插入 设备,再查询 /sys/bus/usb/ 下的相应设备,如 "1-1" 下的 idVender,
idProduct 获得。
对于 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 列出,那么就成功了。
三,对于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 需要超级用户权限,这时第一步中的home 目录应该为 /root,不想麻烦,直接两个 Home 目录都加上得了。
在myandroid/system/core/adb/usb_vendors.c中添加所需要的VID
1. 执行:apt-get install mingw32
安装了linux-windows交叉编译环境mingwin
2. 执行:. build/envsetup.sh
3. 执行choosecombo,选择各个参数
这两步设置了一些编译参数和环境变量,按照你正常编译android的设置即可。
4. make USE_MINGW=y emulator 就可以了。再来个
make USE_MINGW=y emulator-arm 和(先运行make adb不然会出现No rule to make target `out/host/linux-x86/bin/acp'的问题。)
5. 执行:make USE_MINGW=y adb
执行:make USE_MINGW=y fastboot
最后到out/host/windows-x86/bin目录下就能找到你刚刚编译的东西了。
这个时候该怎么办呢?
方法一(临时方法)
一,先搞清现在的 PID ,VID 为多少,例如分别为 aaaa、bbbb(十六进制)对于 Linux 如 ubuntu, 插入 设备,再查询 /sys/bus/usb/ 下的相应设备,如 "1-1" 下的 idVender,
idProduct 获得。
对于 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 列出,那么就成功了。
三,对于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 需要超级用户权限,这时第一步中的home 目录应该为 /root,不想麻烦,直接两个 Home 目录都加上得了。
方法二(终极方法)
在linux中重新编译windows版本的adb,添加VID,PID支持在myandroid/system/core/adb/usb_vendors.c中添加所需要的VID
1. 执行:apt-get install mingw32
安装了linux-windows交叉编译环境mingwin
2. 执行:. build/envsetup.sh
3. 执行choosecombo,选择各个参数
这两步设置了一些编译参数和环境变量,按照你正常编译android的设置即可。
4. make USE_MINGW=y emulator 就可以了。再来个
make USE_MINGW=y emulator-arm 和(先运行make adb不然会出现No rule to make target `out/host/linux-x86/bin/acp'的问题。)
5. 执行:make USE_MINGW=y adb
执行:make USE_MINGW=y fastboot
最后到out/host/windows-x86/bin目录下就能找到你刚刚编译的东西了。
相关文章推荐
- windows adb不识别(VID PID更改)
- windows adb不识别(VID PID更改)
- 怎么让adb识别修改了VID和PID的手机(移动设备)
- [总结]怎么让adb识别修改了VID和PID的手机(移动设备)
- windows adb不识别(VID PID更改)
- 不同手机在豌豆夹上显示同一个设备名的解决方法 && 修改PID/VID后的ADB重新识别 && 单设备多个PID的识别
- windows adb不识别(VID PID更改)
- [总结]怎么让adb识别修改了VID和PID的手机(移动设备)
- 枚举usb的pid & vid(Windows平台)
- Android USB VID PID 及 ADB
- Android USB VID PID 及 ADB (转)
- Seeking USB Serial Com Port in Windows Automatically : via PID VID
- 通过Windows注册表获取U盘、移动硬盘和USB读卡器等设备的PID、VID和序列号
- Android USB VID PID 及 ADB
- 使用Python在Windows下获取USB PID&VID
- 根据VID/PID识别USB设备程序
- 介绍Windows侦测遍历Usb设备(PID&VID)及相应其插拔状态的方法
- Android USB VID PID 及 ADB
- Android下USB设备VID与PID获取及ADB设置
- 通过Windows注册表获取U盘、移动硬盘和USB读卡器等设备的PID、VID和序列号