How to remove and replace Android USB drivers on your PC

Whether you are having issues connecting your Google Android phone to your PC to access files, or you can’t seem to get the Android Debug Bridge (ADB) working, smartphone USB connections are not always painless. In many cases your problem is the USB device driver which is installed, or not.

The problem, explained here, started when I noticed that my Nexus 6p was identified as a LeMobile Android Device in the Windows Device Manager. I had no idea what a LeMobile device was or why it was listed. This article explains how to remove an outdated or incorrect Google smartphone USB driver and then install the newest Android driver. Since they use the same driver, this technique also works for Google’s Nexus tablets.

If you are trying to connect a phone other than a Google phone, look here to find your correct drivers, or go to your manufacturer’s (OEM) website. Most of the OEMs (such as Samsung, HTC and Motorola) supply Windows setup programs, which automate the process or install their own connectivity application such as HTC Sync Manager, so you won’t be able to perform the install as shown below.

This is not a discussion of general USB connection troubleshooting. It is assumed that you have a smartphone device listed in the Windows Windows Device Manager. It is not important whether it works or not. We will simply explain how to install the correct USB driver for that phone.

First, a word of caution…

My suggestion is to NEVER use, the many driver “fix-it” websites or programs pandered on the Internet. These applications often supply the wrong drivers, offer better service if you purchase something and are used for other deceptive purposes, such as installing Potentially Unwanted Programs (PUPs.) To be safe let Windows do it, or do it yourself.

Now to let’s begin by getting the current Android USB driver…

The Google USB driver download page also has a link to their installing drivers’ page should you be interested. The official Google USB drivers for Android devices come as a zipped file. There is no install program in the archive, just the drivers, other files and an INF file. The INF file is the key to the installation.

The Google installation help does not tell you to remove the old driver(s), but leaving these old drivers may come back to haunt you. This would happen if Windows ever thinks they are a better match for your device than the ones which are correct. Such was the case on my PC…

Fixing an incorrect USB driver installation by removing the old software…

The connection problem on my PC was an incorrect and unknown driver which was installed for my Nexus 6p. The installed USB driver was, as shown in the Windows Device Manager screenshot at the left,  LeMobile Android Device. If you have this device listed or some other incorrect one, you need to remove and replace the device using the correct driver. I read somewhere that the LeMobile driver is installed by Windows when it thinks that driver is a “better match” for the phone. In my case, my Nexus 6p actually needs the Google Android USB driver.

To remove the LeMobile device driver (or any driver) and use Google’s open the Windows Device Manager:

  1. Right click on the LeMobile Android Device/Android Composite ADB (see the previous image) to open the context menu shown at the left. Select Uninstall device.
  2. Then from the Uninstall Device dialog box check Delete the driver software for this device.
  3. Finally, click the Uninstall button.

Now that the incorrect or outdated driver is gone you could use the Device Manager to install the new one, except without the driver Windows does not “see” the device. To add the phone to the list of installed hardware in the Device Manager, select Action > Scan for hardware changes from main menu. Windows will then install your phone and driver, or you could do it this way…

Installing the USB drivers using the INF file

This is an easy and reliable way to install a device driver. Although it may sound difficult, it really is simple. First, look at the files which are in the Google USB driver archive file (latest_usb_driver_windows.zip). The contents of the zip file looks like this:

This particular install is easy because there is only one INF file. There are some driver archives with several INF files in different folders. Selecting the correct one for the installation would require you to read them all to choose the correct file. In such cases, when you need to pick an INF file from several, it would be easier and safer to use the Windows Add a device tool.

The following shows the contents of the android_winusb.inf file, in case you are curious. There is nothing but plain text inside which are instructions for Windows to decipher…

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

Now installing the correct driver…

Make sure that your phone is not connected to the PC by a usb cable prior to step 1.

  1. Unzip the driver zip file (anywhere you wish)
  2. Open the folder containing the driver files (see below)
  3. Right click on the inf file (android_winusb.inf, in this case)
  4. From the context menu which now appears select Install (see below)
  5. Plug in the phone and in the Device Manager you should see:
    Android Device > Android Composite ADB Interface

That’s it. The Device Manager listing should look like the last image below. If so, you are now connected with the correct driver.

It’s important to remember to always delete all old or erroneous device drivers when updating your drivers. If you ever delete a driver which is required later you can always reinstall it…be assured that Windows will find it.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.