Google Android USB驱动程序和ADB

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

您可以使Google Android驱动程序适用于任何Android手机吗? 如果是的话…怎么样?

我已经尝试了许多对%SingleAdbInterface%%CompositeAdbInterface%排列,其中包括Vendor和Product ID的变化。

您需要修改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:他们在你正在合并的驱动程序中; 但是如果你没有这个设备的驱动程序,你可以通过打开设备pipe理器来获得它; 然后右键单击设备 – select属性 – 在新对话框中的详细信息选项卡>属性下拉菜单中select硬件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 ; 

复制这两行TWICE,一次到[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.修改驱动程序的数字签名:

虽然原来的谷歌USB驱动程序是由谷歌签署,修改android_winusb.inf将阻止安装它在Windows 8上显示一个错误信息 hasherror

 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)并签名

解决方法:内部testing的解决方法是对Windows签名进行validation:临时或永久:

暂时:

转到屏幕左上angular或下angular打开超级button栏并单击设置超级button。

select更改PC设置

select一般

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

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

要么

运行cmd并input:

 shutdown -o -r -t 0 

然后重新启动后从列表中select“禁用驱动程序签名执行”。 重新启动前安装您的驱动程序。

永久:

按窗口+ Q

searchcmd

右键单击cmd

从操作栏select以pipe理员身份运行

键入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过滤。 所以这一步不再需要。

最后您可以通过以下方式testing

 adb kill-server adb start-server adb devices 

并在Android设备的开发人员选项中启用debugging

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

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

我通常使用类似于这一行的东西:

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

我做的是:

  1. 将设备插入电脑。
  2. 去你的设备pipe理器。
  3. 右键单击您插入的设备。
  4. 去属性。 然后select硬件ID。
  5. 然后获得那里列出的价值。
  6. 现在将其添加到您在android_winusb.inf创build的行中。
  7. 拔下设备并重新插入
  8. 回到设备pipe理器
  9. 右键单击设备,然后单击更新或安装驱动程序
  10. selectsearch您的计算机的驱动程序
  11. select目录Your_Android_SDK_Directory/extras/google/usb_driver/
  12. 按下确定

这似乎总是为我工作,那是你在做什么? 或者这甚至有帮助?

find以下文件

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的一部分,可以在设备的硬件信息下find。

我的是:

USB\VID_2207&PID_0010&MI_01

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

答案1为我完美工作。 我在一台新的MID 10'平板电脑上testing了它。 以下是我在.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 
  1. 修改android_winusb.inf
  2. 签署司机
  3. 修改adb

我也从http://adbdriver.com/安装通用的adb驱动程序,它的工作原理。;

对于我的Azpen A727,Windows驱动安装正确,所以只需要Mohammad答案的第三步。

看起来Google USB驱动程序已经更新以支持Glass开箱,所以只要您使用最新的驱动程序,您就可以通过ADB访问Glass。 在我的特殊情况下,2014年中期我把Glass连接到了我的机器上,但却没有做任何事情。 现在,当我尝试连接它时,尽pipe出现在设备pipe理器中,但我不会在ADB中看到它。 经过多次的反复试验,我发现我必须:

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

然后我可以通过常规的Windows更新来重新安装驱动程序。 这迫使它寻找最新的驱动程序。 不知道为什么它没有得到更新,但我希望这将有助于那里的人仍然挣扎着这一点。

华为的驱动程序没有find。 所以我一直在使用通用的ADB驱动程序:

  • 下载这个 :
  • 提取ADBDriverInstaller并运行该文件。 确保你已经通过USB连接你的设备到你的电脑。
  • 显示一个窗口。
  • 点击安装。
  • 将出现一个对话框。 它会要求您按下Restartbutton。

在此之前阅读此链接

(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文件。 从选项中select您的设备。 按安装。

它完成了:)

而不是修改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