【问题标题】:Google Android USB Driver and ADBGoogle Android USB 驱动程序和 ADB
【发布时间】:2012-03-14 19:55:41
【问题描述】:

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

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

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

【问题讨论】:

  • 访问设备制造商的支持网站。对于通用驱动程序无法使用的设备,制造商通常会提供一个驱动程序供下载,以启用 ADB。
  • 你试过我的建议了吗?如果它有效,请+1并接受作为答案。这将有助于提升您的个人资料,并使人们更有可能在未来帮助您。谢谢
  • 我试图支持多个设备驱动程序。我有一个通过 ADB 与 android 设备通信的应用程序,我不想管理 n 个驱动程序的安装。我也不希望用户担心安装多个驱动程序。
  • 我很困惑,在您的操作中您说“支持任意数量的 Android 设备”,但在这里您说的是“我试图不支持多个设备驱动程序”。也许我是现在唯一对您的问题感到困惑的人,但请您再次解释一下。谢谢
  • 我有一个应用程序,我想通过 ADB 与任何 android 设备通信。我不想安装多个驱动程序,但想通过单个 Google Android ADB 驱动程序来支持。通过编辑 android_winusb.inf,我成功地为多个设备(Nexus、Moto、ADB)配置了该驱动程序。但在某些设备(LG、三星)上不成功。我想了解为什么编辑 android_winusb.inf 的相同方法不适用于这些设备,但适用于其他设备。

标签: android windows adb inf


【解决方案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。例如,您会看到如下内容:

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 启动设置” 点击重启。

运行命令 并输入:

shutdown -o -r -t 0

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

永久:

按窗口+Q

搜索 cmd

右键点击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"

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

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

adb kill-server
adb start-server
adb devices

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

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

【讨论】:

  • 非常感谢,它节省了我很多时间。我忘记了 Windows 8 需要在安装设备之前禁用签名。快乐代码
  • @edisonTHK 欢迎您!
  • 感谢您的回答!有人有更多关于在 Windows 上签署驱动程序的信息吗?好像从win10开始你需要一个EV证书......?
  • item#1 过于复杂了(参见ktnr74.blogspot.com/2014/11/…),item#3 已经过时(这不是错误,而是一个特性)所以 item#2 是唯一有用的部分
【解决方案2】:

找到以下文件

C:\Users\[你的名字]\.android\adb_usb.ini

并进行以下更改:

# ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT.
# USE 'android update adb' TO GENERATE.
# 1 USB VENDOR ID PER LINE.
0x2207

我在文件中添加了0x2207。这个数字是硬件 id 的一部分,可以在设备的硬件信息下找到。

我的是:

USB\VID_2207&PID_0010&MI_01

(我尝试执行android update adb,但它什么也没做。)

【讨论】:

    【解决方案3】:

    你能给我们一个更好的描述和你在做什么的例子吗?因为我所要做的就是将设备线放在那里,然后保存文件。现在只需重新连接设备即可。

    我通常使用类似于此行的内容:

    ;
    ;some name for the phone (this seems to be arbitrary)
    %CompositeAdbInterface%     = USB_Install, THE_HARDWARE_ID
    

    我做的是:

    1. 将设备插入计算机。
    2. 转到您的设备管理器。
    3. 右键单击您插入的设备。
    4. 转到属性。然后选择硬件 ID。
    5. 然后获取那里列出的值。
    6. 现在将它添加到您在android_winusb.inf 中创建的行中。
    7. 拔下设备并重新插入
    8. 返回设备管理器
    9. 右键单击设备,然后单击更新或安装驱动程序
    10. 选择在您的计算机上搜索驱动程序
    11. 选择目录 Your_Android_SDK_Directory/extras/google/usb_driver/
    12. 按确定

    这似乎总是对我有用,你正在这样做吗?或者这甚至有帮助吗?

    【讨论】:

    • 我有一个通过 ADB 与 android 设备通信的应用程序,我不想管理 n 个驱动程序的安装。我也不希望用户担心安装多个驱动程序。
    • 我为我列出的手机尝试了上述方法,但没有成功。我尝试使用 HTC Evo,它确实做到了。三星或 LG 运气不好。
    • 我不知道接下来该做什么。这总是对我有用,我无法重现问题。
    • 添加行后你会做什么?您是重新启动还是重新连接设备并且它可以识别?
    • 适用于 WideFly 无线 POS PDA (WF360) 人.. 谢谢 prolink007,我给了你支持..
    【解决方案4】:
    1. 修改android_winusb.inf
    2. 签署驱动程序
    3. 修改adb

    我还从http://adbdriver.com/ 安装了通用 adb 驱动程序 并且有效。

    【讨论】:

    • 答案很差,但是联动的万能驱动很棒,真的万能!很可能,它会自动执行前两个操作。
    • 非常感谢,参考链接正在为我工​​作,+1 参考链接。
    【解决方案5】:

    答案 1 非常适合我。我在新的 MID 10' 平板电脑上对其进行了测试。以下是我在 .inf 文件中添加的行,并且安装没有问题:

    ;Google MID
    %SingleAdbInterface%        = USB_INSTALL, USB\Vid_18d1&Pid_0003&MI_01
    %CompositeAdbInterface%     = USB_INSTALL, USB\Vid_18d1&Pid_0003&Rev_0230&MI_01 
    

    【讨论】:

    • 添加行后做什么?它是如何识别和安装驱动的?
    【解决方案6】:

    对于我的 Azpen A727,Windows 驱动程序安装正确,因此只需要 Mohammad 回答的第 3 步。

    【讨论】:

      【解决方案7】:

      看起来 Google USB 驱动程序已更新为支持开箱即用的 Glass,因此只要您使用最新的驱动程序,您应该能够通过 ADB 访问 Glass。在我的特殊情况下,我在 2014 年年中的某个时候将 Glass 连接到了我的机器上,但什么也没做。现在,当我尝试连接它时,尽管出现在设备管理器中,但我看不到它出现在 ADB 中。经过多次反复试验,我发现我必须:

      1. 进入设备管理器
      2. 右击“SAMSUNG Android Phone”下的“Android ADB Interface”
      3. 单击“卸载”。确定 选中“删除此设备的驱动程序软件”。
      4. 断开并重新连接 Google Glass。

      然后我可以通过常规 Windows 更新重新安装驱动程序。这迫使它寻找最新的驱动程序。不知道为什么之前没有更新,但我希望这能帮助那些仍在为此苦苦挣扎的人。

      【讨论】:

        【解决方案8】:

        未找到华为的驱动程序。所以我一直在使用通用 ADB 驱动:

        • 下载this:
        • 提取ADBDriverInstaller 并运行该文件。确保您已通过 USB 将设备连接到计算机。
        • 会显示一个窗口。
        • 点击安装。
        • 将出现一个对话框。它会要求您按下Restart 按钮。

        在这样做之前阅读this链接

        (The above. in brief, says to press Restart button in the dialog box. Select Troubleshoot. Select Advance Option. Select Startup Setting. Press Restart. After system's been restarted, on the appearing screen press 7)

        • PC 重启后,再次运行ADBDriverInstaller 文件。从选项中选择您的设备。按安装。

        它已经完成了:)

        【讨论】:

          【解决方案9】:

          我没有修改 adb_usb.ini 文件,而是单独对目录 android-sdk\extras\google\usb_driver\ 下的文件 android_winusb.inf 进行了更改,它适用于平板电脑 MID Q88,但我复制了[Google.NTamd64] 和 [Google.NTx86] 两个部分

          ;Google MID Q88
          %SingleAdbInterface%        = USB_INSTALL, USB\VID_18D1&PID_0003&MI_01
          %CompositeAdbInterface%     = USB_INSTALL, USB\VID_18D1&PID_0003&REV_0230&MI_01
          

          【讨论】:

          • 嗨!欢迎来到stackoverflow。但是添加已经提供的答案有什么用?
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-03-27
          • 2014-03-25
          • 1970-01-01
          • 2012-09-26
          • 2014-04-04
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多