谷歌 Android USB 驱动程序和 ADB

新手上路,请多包涵

我正在寻找以下方面的指导或明确答案。我想使用 Google Android USB 驱动程序并修改 android_winusb.inf 以支持任意数量的 Android 设备。我能够成功添加 HTC Evo 平板电脑,但当我尝试添加 LG (Optimus) 或三星(Indulge、Admire)时,驱动程序似乎安装正常,但 ADB 看不到它。

您能让 Google Android 驱动程序适用于任何 Android 手机吗?如果是这样……怎么办?

我已经尝试了 %SingleAdbInterface%%CompositeAdbInterface% 的许多排列以及供应商和产品 ID 的变体。

原文由 pqu3 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.9k
1 个回答

您需要修改 3 处才能使 Google USB 驱动程序适用于任何 Windows 上的任何 Android 手机:

  1. 将您的设备 ID 添加到 android_winusb.inf 文件
  2. 对修改后的驱动程序进行数字签名
  3. 将设备的供应商 ID 添加到 adb_usb.ini 白名单(不再需要)

以下是详细信息:

1.将您的设备ID添加到 android_winusb.inf 文件

要添加的格式是:

 ;Comment usually the device name
%SingleAdbInterface% = USB_Install, USB\; here you put VID and PID
%CompositeAdbInterface% = USB_Install, USB\; same as above but add the MI

在我继续之前, VID 是 USB 供应商 ID。

如何获取 vid 和 pid :它们在您要合并的驱动程序中;但是如果你没有设备的驱动程序,你可以通过打开设备管理器来获取它;然后右键单击设备 - 选择属性 - 在新对话框中转到详细信息选项卡>在属性下拉菜单中选择硬件 ID。例如,您会看到类似以下内容:

MSI 复合 ADB 驱动程序接口属性

 USB\VID_2207&PID_0000&REV_0222&MI_01
USB\VID_2207&PID_0000&MI_01

为复合 adb 设备取这个值并为单个 adb 设备删除 MI,你得到

;MSI WindPad Enjoy 7 plus
%SingleAdbInterface%        = USB_Install, USB\VID_2207&PID_0000
%CompositeAdbInterface%     = USB_Install, USB\VID_2207&PID_0000&REV_0222&MI_01
;

将这 2 行复制两次,一次复制到 [Google.NTx86] 部分,另一次复制到 [Google.NTamd64] 部分

重复您要支持的每个设备

现在是 [Strings] 部分的可选编辑:编辑

[Strings]
ProviderName                = “Google, Inc.”
SingleAdbInterface          = “Android ADB Interface”
CompositeAdbInterface       = “Android Composite ADB Interface”
SingleBootLoaderInterface   = “Android Bootloader Interface”
WinUSB_SvcDesc              = “Android USB Driver”
DISK_NAME                   = “Android WinUsb installation disk”
ClassName                   = “Android Device”

到:

 [Strings]
ProviderName                = “Google, Inc.”
SingleAdbInterface          = “MSI ADB Interface”
CompositeAdbInterface       = “MSI Composite ADB Interface”
SingleBootLoaderInterface   = “MSI Bootloader Interface”
WinUSB_SvcDesc              = “MSI USB Driver”
DISK_NAME                   = “MSI WinUsb installation disk”
ClassName                   = “MSI Tablet”

2. 对修改后的驱动进行数字签名:

虽然原始的 google usb 驱动程序是由 google 签名的,但修改 android_winusb.inf 将阻止它在 windows 8 上安装并显示错误消息 哈希错误

 The hash file is not present in the specified catalog file. The file is likely
corrupt    or the    victim of tampering.

这仅适用于 Windows 8。Windows 7 或更早版本不会显示此错误消息。您必须重新生成目录文件(可能使用 Windows SDK)并签名

解决方法:内部测试的解决方法是禁用 Windows 签名验证:临时或永久:

暂时地:

转到屏幕的左上角或左下角以打开超级按钮栏并单击设置超级按钮。

选择更改电脑设置

选择通用

向下滚动,然后单击“高级启动”下的“立即重新启动”。

单击“疑难解答”。单击“高级选项” 单击“Windows 启动设置” 单击重新启动。

要么

运行 cmd 并输入:

 shutdown -o -r -t 0

然后在重新启动后从列表中选择“禁用驱动程序签名强制”。在重新启动之前安装驱动程序。

永久:

按 Window+Q

搜索命令

右键单击cmd

从操作栏中选择以管理员身份运行

输入命令:

 bcdedit -set loadoptions DISABLE_INTEGRITY_CHECKS
bcdedit -set TESTSIGNING ON

3. 将您设备的供应商 ID 添加到 adb_usb.ini 白名单(不再需要):

adb 曾经有一个支持的供应商 ID 的硬编码白名单。如果您的设备供应商不在列表中 - adb 将完全忽略它。要使 adb 识别此类设备,用户必须手动将其供应商 ID 添加到 %USERPROFILE%\.android\adb_usb.ini 每行一个 ID。

在命令行中:

 echo 0x2207 >> "%USERPROFILE%\.android\adb_usb.ini"

幸运的是,谷歌在最近的 adb 版本中删除了 VendorID 过滤。所以这一步就不需要了。

最后,您可以通过以下方式测试安装:

 adb kill-server
adb start-server
adb devices

并在 Android 设备的开发者选项中启用调试

这应该重新启动 ADB 服务器并列出设备。如果驱动程序工作正常,则应列出该设备。

原文由 MuhammadAnnaqeeb 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题