Nexus 5应该使用哪种USB驱动程序?


68

在撰写本文时,Google尚未为Nexus 5提供USB驱动程序(适用于Windows)。通常的链接(http://developer.android.com/sdk/win-usb.html)显示了Windows USB驱动程序。适用于Nexus的几条产品线。但是,不包括“ Nexus 5”。请注意,支持Nexus“ S ”(字母S,而不是数字5)。

另外,从此站点上,当前下载的最新版本为2013年7月17日的版本8。当我将其与其前身版本7进行比较时,文件是相同的。

在Google解决此问题之前,我们该怎么办?如何为Nexus 5调试和开发?


2
没有新驱动程序的原因是,从驱动程序版本8开始,所有新设备的驱动程序都应相同。我将进行文档更新以反映这一点。
ralf在Android

通过安装,我设法在WinXP上启用了ADB和MTP:<br> 1. Wumdf 1.0驱动程序(没有以下步骤失败)2. Google USB驱动程序(ver 8.0)3. LG USB驱动程序通过此组合,我可以执行MTP USB调试模式关闭时(为什么只在关闭时)传输文件。然而,当我启用USB调试模式,MTP驱动程序被列为“配置错误”令人沮丧的..........
小工具

4
我们在developer.android.com/sdk/win-usb.html上更新了该页面,以明确声明Google的USB驱动程序涵盖了所有Nexus设备,并且声明仅ADB才需要。支持Nexus 5,如果您只需要传输文件,则不需要驱动程序。如果仍有问题,请在b.android.com上提交错误。
ralf在Android

2
更新:这可能有点不相关,但是如果您的情况是设备管理器识别了Nexus设备而不是ADB识别了Nexus设备,请尝试以下操作:b.android.com/62365#c7
ralf at android

@ralfatandroid-我们感谢您的帮助,但您的编辑完全覆盖了原始问题,并使其变得毫无意义。我试图将其转换为更通用的问题,建议将您编辑的内容转换为问题,然后将其转换为答案。同时,我回滚了问题的核心,剥去了一些保证,然后重新打开了。
布拉德·拉尔森

Answers:


54

我有解决办法。

我更新了文件android_winusb.inf反映VIDPID的的的Nexus-5 。现在,它将加载通用驱动程序并在Eclipse中支持ADB

请注意,在您进行了任何先前的尝试之后,请转到设备管理器并更新“ Nexus 5”的驱动程序(带有黄色感叹号)。

您必须导航到USB驱动程序目录,该目录在我的计算机上为: C:\ Users \ Xxxxxxxxx \ android-sdk \ extras \ google \ usa_driver

在该目录中,在x86和amd64部分中编辑文件android_winusb.inf并插入一行:

%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4EE1&MI_01

这足以让我开始工作。

这是我文件的内容:

;
; Android WinUsb driver installation.
;
;
;
; Includes FIX for the Nexus-5 ADB,
;                  --- jonovos         ---
;                  --- petuniaPlatypus ---
;                  --- 2013-11-07      ---
;
;        By snooping on the USB for the Nexus-5,
;        it is known that the VID = 18D1 and PID = 4EE1.
;        With this, we insert them into the GENERIC sections bwlow.
;
;
[Version]
Signature           = "$Windows NT$"
Class               = AndroidUsbDeviceClass
ClassGuid           = {3F966BD9-FA04-4ec5-991C-D326973B5128}
Provider            = %ProviderName%
DriverVer           = 07/09/2013,8.0.0000.00000
CatalogFile.NTx86   = androidwinusb86.cat
CatalogFile.NTamd64 = androidwinusba64.cat

[ClassInstall32]
Addreg = AndroidWinUsbClassReg

[AndroidWinUsbClassReg]
HKR,,,0,%ClassName%
HKR,,Icon,,-1


[Manufacturer]
%ProviderName% = Google, NTx86, NTamd64


[Google.NTx86]

;Google Nexus One
%SingleAdbInterface%        = USB_Install, USB\VID_18D1&PID_0D02
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_0D02&MI_01
%SingleAdbInterface%        = USB_Install, USB\VID_18D1&PID_4E11
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4E12&MI_01

;Google Nexus S
%SingleAdbInterface%        = USB_Install, USB\VID_18D1&PID_4E21
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4E22&MI_01
%SingleAdbInterface%        = USB_Install, USB\VID_18D1&PID_4E23
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4E24&MI_01

;Google Nexus 7
%SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_4E40
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4E42&MI_01
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4E44&MI_01

;Google Nexus Q
%SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_2C10
%SingleAdbInterface%        = USB_Install, USB\VID_18D1&PID_2C11

;Google Nexus (generic)
%SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_4EE0
;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-new-line-added:
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4EE1&MI_01
;;;;;;;;
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4EE2&MI_01
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4EE4&MI_02
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4EE6&MI_01


[Google.NTamd64]

;Google Nexus One
%SingleAdbInterface%        = USB_Install, USB\VID_18D1&PID_0D02
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_0D02&MI_01
%SingleAdbInterface%        = USB_Install, USB\VID_18D1&PID_4E11
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4E12&MI_01

;Google Nexus S
%SingleAdbInterface%        = USB_Install, USB\VID_18D1&PID_4E21
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4E22&MI_01
%SingleAdbInterface%        = USB_Install, USB\VID_18D1&PID_4E23
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4E24&MI_01

;Google Nexus 7
%SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_4E40
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4E42&MI_01
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4E44&MI_01

;Google Nexus Q
%SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_2C10
%SingleAdbInterface%        = USB_Install, USB\VID_18D1&PID_2C11

;Google Nexus (generic)
%SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_4EE0
;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-new-line-added:
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4EE1&MI_01
;;;;;;;;
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4EE2&MI_01
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4EE4&MI_02
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4EE6&MI_01

[USB_Install]
Include = winusb.inf
Needs   = WINUSB.NT

[USB_Install.Services]
Include     = winusb.inf
AddService  = WinUSB,0x00000002,WinUSB_ServiceInstall

[WinUSB_ServiceInstall]
DisplayName     = %WinUSB_SvcDesc%
ServiceType     = 1
StartType       = 3
ErrorControl    = 1
ServiceBinary   = %12%\WinUSB.sys

[USB_Install.Wdf]
KmdfService = WINUSB, WinUSB_Install

[WinUSB_Install]
KmdfLibraryVersion  = 1.9

[USB_Install.HW]
AddReg  = Dev_AddReg

[Dev_AddReg]
HKR,,DeviceInterfaceGUIDs,0x10000,"{F72FE0D4-CBCB-407d-8814-9ED673D0DD6B}"

[USB_Install.CoInstallers]
AddReg    = CoInstallers_AddReg
CopyFiles = CoInstallers_CopyFiles

[CoInstallers_AddReg]
HKR,,CoInstallers32,0x00010000,"WdfCoInstaller01009.dll,WdfCoInstaller","WinUSBCoInstaller2.dll"

[CoInstallers_CopyFiles]
WinUSBCoInstaller2.dll
WdfCoInstaller01009.dll

[DestinationDirs]
CoInstallers_CopyFiles=11

[SourceDisksNames]
1 = %DISK_NAME%,,,\i386
2 = %DISK_NAME%,,,\amd64

[SourceDisksFiles.x86]
WinUSBCoInstaller2.dll  = 1
WdfCoInstaller01009.dll = 1

[SourceDisksFiles.amd64]
WinUSBCoInstaller2.dll  = 2
WdfCoInstaller01009.dll = 2

[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"

1
当您获得PID = 4EE1时,是否在开发人员工具中启用了ADB?通常,PID 4EE1仅用于MTP(无ADB)用于文件传输(在这种情况下,您不需要任何驱动程序,因为Windows 8可以透明地进行处理),而PID 4EE2则用于MTP + ADB。USB驱动程序仅适用于ADB,不适用于简单的MTP或PTP。
ralf在Android

3
当在MTP(媒体传输协议,访问文件)中使用N5而不同时激活ADB时,将获得PID = 4EE1。Windows 7和8对此具有本机支持,不需要驱动程序。Windows XP支持MTP如果安装Media Player 10中你其实根本希望定义在谷歌的USB驱动程序PID = 4EE1否则可能阻止Windows使用其本地MTP驱动程序(这是在7版本的驱动程序的问题,这我们已在版本8中修复。)
ralf在android

3
谁能确认这在Windows 8上有效?我收到一条消息,告诉我该文件没有哈希,并且已被篡改,因此不会更新驱动程序。
语法

1
@Syntax尝试使用Alex B的答案。
Sedat Kapanoglu 2013年

1
@PetuniaPlatypus它给了我该文件的哈希值在指定的目录文件中不存在。该文件可能已损坏或被篡改。错误。我禁用了设备驱动程序签名检查(在cmd中运行BCDEDIT /set nointegritychecks OFF),但是仍然。
tchelidze

113

我只想做出一点贡献,因为我能够在Windows 8上的Nexus 5设备上进行调试,而无需执行所有这些操作。

当我插入它时,“设备管理器”中没有任何黄色感叹号。所以对我来说,司机还可以。但是该设备未在我的Eclipse DDMS中列出。经过一番搜索,这只是更改设备设置的一种选择。默认情况下,Nexus 5 USB计算机连接处于MTP模式(媒体设备)。

您要做的是:

  • 从计算机上拔下设备的电源
  • 转到设置->存储。
  • 在操作栏中,单击选项菜单,然后选择“ USB计算机连接”。
  • 检查“摄像机(PTP)”连接。
  • 插入设备,您应该在设备上弹出一个窗口,以允许您接受计算机的传入连接或类似的操作。
  • 最后,您现在应该在DDMS和voilà中看到它。

我希望这个能帮上忙!


1
太好了,为我解决了这个问题,非常感谢,almighty972!
尼克,

这也对我有用。我在其他设备上也看到过同样的问题,切换到PTP模式会使它显示在ddms中。
克里斯·菲斯特

3
这应该是公认的答案,不要弄乱任何需要的东西,只需更改设备上的设置即可
-jay

2
我们在驱动程序版本7和8之间修复了缺少适当的ADB + MTP支持的问题。在版本7中,INF添加了错误的条目,这使MTP模式在某些情况下无法正常工作。还要注意,在Windows XP上,MTP不属于基本操作系统的一部分(尽管它是由Media Player 10添加的)。最后,如果您将Google USB驱动程序从7版更新到8版,而ADB在MTP模式下仍无法识别该设备,请尝试我在b.android.com/62365#c7中
android

2
小警告:在Windows 7上这对我不起作用,可能是因为我没有阅读almighty972关于他正在使用Windows 8的评论。:)我在下面使用了Alex B.的解决方案(从Google下载最新的USB驱动程序),成功。
Eric P

56

这对我有用:

  1. Google USB驱动程序下载Nexus 5驱动程序
  2. 解压缩ZIP内容并将所有文件放在桌面上的单个文件夹中。
  3. 将设备连接到计算机。
  4. 在PC上启动设备管理器。
  5. 现在,您应该会在硬件列表中看到Nexus 5。
  6. 右键点击“ Nexus 5”行,然后点击更新驱动程序软件
  7. 接下来,单击“浏览我的电脑”选项。
  8. 在新窗口中,单击“浏览...”按钮。
  9. 转到步骤2中解压缩的文件夹。选择用于解压缩USB驱动程序的文件夹。点击下一步。
    • 确保也勾选子文件夹框。
  10. 现在,Windows安装程序将搜索Nexus 5驱动程序。在要求许可时,单击“安装”
  11. 等待该过程完成,然后检查“设备管理器”列表以确认安装成功。

来源:下载并安装Google Nexus 5 USB驱动程序(ADB / Fastboot)


2
在Windows 8.1(启用USB调试)上为我工作。
user1480019 2014年

为我工作。附加说明:1)确保在手机上启用USB调试(“设置”->“启用开发人员选项”(google此处)->“ USB调试”)2)确保允许手机与计算机之间的连接(在询问手机时会弹出一个窗口)。如果在安装驱动程序后没有拔下USB,请重新连接。
凯文(Kevin)

为我工作。既启用MTP,又启用USB调试。最初,我在关闭MTP的情况下使用了它,但是它不起作用。
朱利安

这对我有用,但无法使用SDK下载,因此我手动下载了zip。
阳光明媚

在Windows 8.1上为我工作-谢谢!我启用了“ USB调试”,并且我的USB连接模式设置为“相机(PTP)”。
Benny Neugebauer 2014年

13

我的Nexus 5通过ID = USB \ VID_18D1&PID_D001进行标识。

使用Google USB驱动程序,然后修改文件android_winusb.inf。查找行:

;Google Nexus (generic)
%SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_4EE0

并添加以下内容:

%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_D001

重复一下,因为有两个部分需要修改,[Google.NTx86][Google.NTamd64]

如果您仍然遇到问题,请尝试以下操作:

连接Nexus 5,转到“设备管理器”,在“其他”上找到Nexus 5,然后右键单击。选择属性,详细信息,然后在选择列表中,然后选择硬件ID。记下短ID,并使用以下内容修改行:

%CompositeAdbInterface% = USB_Install, YOUR_SHORT_ID

4
这对我有用!对于我的Nexus 5,硬件ID是USB\VID_18D1&PID_D002这样的: %CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_D002
Tobias

4
同样在这里USB\VID_18D1&PID_D002
Ian Mercer 2014年

在OTA更新到Android L之后,我不得不再次提出警告:USB\VID_18D1&PID_4EE7
Khinsu 2014年

拒绝链接至维基百科USB文章。我认为SO中的每个人实际上都知道USB是什么或设备管理器!
AaA

10

我在“如何解决Nexus 7上的MTP问题”中找到了解决方案


在Windows 8上解决此问题的另一种方法:可能会发生此问题,因为您安装了Android SDK中的Google ADB驱动程序。即使在Nexus 7上关闭了USB调试功能,Windows也会选择ADB驱动程序而不是MTP驱动程序。当您从Windows 8升级到Windows 8.1时,Windows也会重新出现。要解决此问题:

  1. 插入Nexus 7,并确保将USB模式设置为MTP
  2. 运行devmgmt.msc
  3. 找到ADB驱动程序,该驱动程序可能位于“ Android设备”或“ ADB设备”下
  4. 右键单击它,然后选择“更新驱动程序软件”
  5. “浏览计算机以获取驱动程序软件”
  6. “让我从计算机上的设备驱动程序列表中选择”
  7. 选中“显示兼容硬件”后,您应该在“型号”下看到两个驱动程序:
  8. “ Android ADB界面”
  9. “ MTP USB设备”或“复合USB设备”
  10. 选择“ MTP /复合USB设备”(即不是“ Android ADB接口”的设备),然后单击“下一步”。
  11. 该设备现在应显示为MTP设备。

确认可以与Nexus 7 2013一起使用。


这对我适用于Nexus 5和Windows 8.1。谢谢。
lalibi 2014年

再加上一亿。为什么没有在DAC上记录呢?我一直在为此寻找原因。长。解决了我的N5
43matthew 2014年

上帝非常感谢你!您的解决方案可以在其他所有失败的地方工作。
Raphael Royer-Rivard 2014年


3

我遇到了与Windows 7上的Nexus 5相似的问题,不需要进行.inf文件编辑,我的计算机卡在了旧版本的Google USB驱动程序(7.0.0.1)上。Windows 7拒绝安装较新的版本,即使我尝试手动选择目录或.inf文件也是如此。必须手动删除WINDOWS \ inf文件夹中的特定缓存的.inf文件,请按照以下说明进行操作: http //code.google.com/p/android/issues/detail? c7

另外,请确保在开发人员选项中打开了USB调试功能。有一个暴露开发人员选项的技巧,在“关于电话”信息底部的内部版本号上单击7次!


2

Nexus 5多个硬件版本。因此,接受的答案不适用于所有设备(不适用于我)。

  1. 打开设备管理器,右键单击,然后单击属性。现在转到“详细信息”选项卡,然后选择属性“硬件ID”。记下PID和VID。

  2. 下载Google驱动程序

  3. 使用上述VID和PID更新android_winusb.inf

    %CompositeAdbInterface% = USB_Install, USB\VID_18D1&**PID_4EE1**
    
  4. 现在,在设备管理器中,找到Nexus 5,并更新驱动程序软件,然后浏览至下载位置。

  5. 该驱动程序应已安装,并且您将在ADB中看到该设备。


这是在Nexus 5和Nexus 4.测试
coder000001

1

我也有同样的问题。在设备管理器中,所有驱动程序都正常,但是Eclipse找不到设备。即使使用SDK Manager更新了Google USB驱动程序。

问题是我没有启用开发人员选项。为此,我来到这里,如何在Nexus 5和KitKat上启用开发人员选项

然后,我必须手动更新Google USB驱动程序,请参阅下载和安装Google Nexus 5 USB驱动程序(ADB / Fastboot)

之后,我的Eclipse安装程序识别了我的设备。


1

一开始我也迷路了,但是找到了一个相当简单的解决方案。请注意,在Nexus 5(在4.4.2上)启用开发人员选项和USB调试,然后通过USB将其连接到PC之后,我在Windows 7上完成了所有这些操作。

如果您转到下载链接-http://developer.android.com/sdk/win-usb.html-您会在步骤4的底部注意到驱动程序的安装位置。如果然后从“控制面板”导航到“设备和打印机”并找到您的设备,请右键单击并转到属性,然后单击顶部的“硬件”选项卡,单击显示的有问题的设备,单击“属性”,然后单击“更改设置”。接下来,选择更新驱动程序,手动选择位置,然后选择Google标记为安装目录的目录,他们将其标记为\ extras \ google \ usb_driver \

这已解决了我的问题,并且我的Nexus 5现在出现在DDMS中。



0

在Nexus 5所有者等待专用驱动程序的同时,您可以从LG电子的网站尝试使用该驱动程序(适用于LG G2的驱动程序),因为通常USB驱动程序不限于一种特定的型号。例如,此驱动程序似乎是通用的USB驱动程序。提示您在LG Electronics的网站上为许多型号下载同一型号。

我希望这可以帮助你 ;)


0

Google USB驱动程序中的一个对我在两台计算机上都工作正常(两台计算机均为Windows 7 x64)。Windows无法自动安装驱动程序后,我只需在设备管理器中右键单击电话,选择“更新驱动程序”,并为其提供将其解压缩到的路径。


0

在尝试其他解决方案后,我能够发送ADB,只要命令引导到Android,它就到手机。但是,当手机处于恢复模式时,我遇到了一个新问题,我想在此贡献自己的经验。

在启动至Android时,该电话在Windows中安装为名为“ Nexus 5”的设备。手机断电并启动到恢复模式后,手机仍安装为“ Nexus 5”,但ADB无法检测到该设备。我必须手动将驱动程序从“ Nexus 5”强制转换为SDK随附的或可从Google USB驱动程序获得的Google USB驱动程序

.inf文件具有三个可用的设备。我使用了“ Android Composite ADB Interface”,一切似乎都可以正常工作。


0

我在Windows 8.1上,我尝试了其他所有答案,但没有任何效果。最后,我决定尝试“从驱动程序列表中选取”,并在“ ADB接口”下找到“ LGE Mobile Sooner单一ADB接口”。ADB.exe终于能够找到Nexus 5和侧面负载4.4.1。

我希望这有帮助。


0

最初,这里的所有其他操作对我来说都是失败的(无论我卸载并重新启动多少次,它都一直作为MTP设备出现)。

但是,通过启用USB调试,它可以工作。只是这样做:

  1. 卸载Nexus 5驱动程序
  2. 断开与电脑的连接
  3. 启用开发人员选项,请参阅如何在Nexus 5和KitKat上启用开发人员选项
  4. 启用USB调试:转到设置->开发人员选项-> USB调试
  5. 重新连线
  6. 可能无法安装所有驱动程序。按照其他答案中所述更新驱动程序。

0

您确定这是驱动程序问题吗?未检测到的设备可能存在硬件或固件问题。如果未检测到,您将不会听到USB设备检测到提示音。可能并不严重,例如,某些“ USB”电缆实际上仅是充电电缆。尝试使用您知道可用于数据的USB电缆,例如手机随附的USB电缆或用于连接外部硬盘驱动器的USB电缆。


0

我正在运行Windows 7 Ultimate N版本,并且Nexus 5在“设备管理器”中显示为黄色感叹号,并且此处没有解决方案。

我确认手机报告自己为:

USB\VID_18D1&PID_4EE1

不适用于当前(v11)的Google USB驱动程序。

但是在手机上启用“开发人员选项”USB调试后,它将自己标识为:

USB\VID_18D1&PID_4EE2&MI_01
USB\VID_18D1&PID_4EE2&REV_0232&MI_01

哪个安装就好。

因此,只需在手机上启用“开发人员选项”,然后重试设备即可。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.