Where is the Windows ADB Driver for the Pixel C?

14,567

Solution 1

I was able to use the current Google USB drivers, but had to modify the android_winusb.inf to include the PID and VID for the Pixel C. I can now connect the Pixel C to my windows comptuer using either a USB 3 cable or a USB 2 cable (with one end being USB type C).

  1. Backup your android_winusb.inf, typically found in C:\Users\%USERNAME%\AppData\Local\Android\android-sdk\extras\google\usb_driver
  2. Open android_winusb.inf for Edit
  3. Under [Google.NTx86] section, add:
;Google Pixel C     
%SingleAdbInterface%        = USB_Install, USB\VID_18D1&PID_5203     
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_5203&MI_01
  1. Under [Google.NTamd64] add:
;Google Pixel C
%SingleAdbInterface%        = USB_Install, USB\VID_18D1&PID_5203
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_5203&MI_01
  1. Plug in Pixel C to your windows machine
  2. Go to your device manager where the "unknown ADB device" is listed. Update the driver, and point it to the location where the driver is installed (where the INF file is).
  3. Follow prompts to install driver. I got a notice saying that the drivers were from an unrecognized source. Update: Note, when I try this these days, I don't get a notice about the driver not being signed / recognized, they simply do not work. I had to do "Let me pick from a list of device drivers", select "Show All Devices", and then select one of the android selections, ADB bridge, I believe. Then it should work.

Her'es the full contents of the INF file for reference.

;
; Android WinUsb driver installation.
;
[Version]
Signature           = "$Windows NT$"
Class               = AndroidUsbDeviceClass
ClassGuid           = {3F966BD9-FA04-4ec5-991C-D326973B5128}
Provider            = %ProviderName%
DriverVer           = 08/28/2014,11.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 Pixel C
%SingleAdbInterface%        = USB_Install, USB\VID_18D1&PID_5203
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_5203&MI_01

;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
%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
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4EE7

;Google Glass
%SingleAdbInterface%        = USB_Install, USB\VID_18D1&PID_9001
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_9001&MI_01

;Project Tango (generic)
%SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_4D00
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4D02&MI_01
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4D04&MI_02
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4D06&MI_01
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4D07


[Google.NTamd64]

;Google Pixel C
%SingleAdbInterface%        = USB_Install, USB\VID_18D1&PID_5203
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_5203&MI_01

;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
%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
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4EE7

;Google Glass
%SingleAdbInterface%        = USB_Install, USB\VID_18D1&PID_9001
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_9001&MI_01

;Project Tango (generic)
%SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_4D00
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4D02&MI_01
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4D04&MI_02
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4D06&MI_01
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4D07


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

Solution 2

For some people altering the android_winusb.inf file will not work since some versions of Windows will detect the tampering of the file. In this case, there is a simple solution that worked for me:

  1. In Device Manager, right click your device and click "Update Driver"
  2. Choose "Browse my computer for driver software"
  3. Click "Let me pick from a list of device drivers". WARNING: Do not use the windows automated search. It will not work!
  4. Click "Have disk" and browse to your unaltered "android_winusb.inf" file and use that.

Windows will complain that it might not be compatible with your device but you can just ignore that and continue. Done!

Share:
14,567
BioeJD
Author by

BioeJD

Updated on June 14, 2022

Comments

  • BioeJD
    BioeJD almost 2 years

    I cannot find the proper drivers for ADB for my Google Pixel C tablet. I'm developing on Windows 8.1. I have the latest USB drivers from Google, but they aren't recognized as compatible when I select them for this device. I'm guessing if I manually chose the ADB Interface from my list of drivers, it would work, but Windows gives a warning when doing so. Has Google released their drivers anywhere with the Pixel C in mind?

  • Stealth Rabbi
    Stealth Rabbi about 8 years
    I tried using the default Google USB drivers on Windows 10 in to a USB 3.0 port (USB 2.0 cable), and it worked without having to do anything special. It's probably safe to say that my answer here is only necessary on Windows 8 and below.
  • Randy
    Randy about 8 years
    Are you running Windows 10 32-bit or 64-bit? I can't get it to recognize my Pixel C with or without this solution on Win 10 x64
  • Stealth Rabbi
    Stealth Rabbi about 8 years
    I'm on win 10 x64. I imagine that basically no one uses Win 10 32-bit. Have you tried other USB ports?
  • Randy
    Randy about 8 years
    Tried all 3 USB ports. All of them get Error 43 and "Unknown USB Device (Invalid Configuration Descriptor)", but only for the Pixel C. Other devices work fine.
  • Stealth Rabbi
    Stealth Rabbi about 8 years
    I'm sorry, I'm not familiar with that error code. All I could suggest is uninstall all other android USB drivers or, be extra sure that Device Manager is using the google drivers with the modifications in my answer above.
  • Hugh Jeffner
    Hugh Jeffner about 8 years
    I had to add the identifiers on Win 7 Home x64, usb driver downloaded via SDK manager. Just throwing in a data point.
  • REJH
    REJH about 8 years
    Also getting the error 43 on my macbook (running win 10 x64). My desktop pc doesn't see the pixel c at all (nothing in device manager, no media storage).
  • Stealth Rabbi
    Stealth Rabbi about 8 years
    @REJH did you try different USB ports on your PC? As for your MAC problems, I have no idea. this question/answer is about macs. I would create a new question for macs.
  • REJH
    REJH about 8 years
    @stealth yea i tried both usb ports. But it looks like the err43 is unrelated, i still get it even when no device is connected to usb, even after reboot. I guess my usb-c cable is messing with me..? Btw, it's a mac but it runs win10 :)
  • KrustyGString
    KrustyGString almost 8 years
    Once .inf file is altered attempting to install gives "the hash for the file is not present in the specified catalog file" error and prevents installation of driver (even after disabling driver signature enforcement). Am I missing something obvious here? (using Windows8.1 and PixelC)
  • japedo
    japedo over 7 years
    If you alter the driver the certification is broken. Therefore you get the key/hash/certificate error. But nevertheless this works perfectly fine on Windows 7. Thanks!
  • jaymarvels
    jaymarvels about 7 years
    This worked for me. It blows my mind that Google release own branded products without updating their own drivers.
  • ekawas
    ekawas almost 7 years
    This worked for me. In the dialog that appears after choosing the .inf file, I chose ADB bridge.
  • Stealth Rabbi
    Stealth Rabbi almost 7 years
    This worked for me on a different Win7 machine. Very strange that windows would block the altered android_winusb.inf but not give you a clear metho of doing this.