If your Nexus 7 (2013 – second generation) doesn’t show up correctly in Device Manager when you connect it (“Unknown device”, “This hardware cannot be installed”) because the driver isn’t found, the solution is to identify your device and add one line in the correct .inf file which will allow XP (Pro SP3 32-bit in my case) to load the driver.
Not sure if it’s required, but I did enable the USB Debugging option in the Developer options. It wasn’t necessary to change from MTP (Media Transfer Protocol) to PTP. Incidentally, my device is an August 2013 model running 4.4.2 (KitKat) which as of this post is the latest OS.
Download and execute the Microsoft USB identification utility “usbview.exe”. I found it on this page: http://digital.ni.com/public.nsf/allkb/335A90747734097886257070006415B9
My device's ID was this: Device Descriptor: bcdUSB: 0x0200 bDeviceClass: 0x00 bDeviceSubClass: 0x00 bDeviceProtocol: 0x00 bMaxPacketSize0: 0x40 (64) idVendor: 0x18D1 idProduct: 0x4EE2 bcdDevice: 0x0228 iManufacturer: 0x01 iProduct: 0x02 iSerialNumber: 0x03 bNumConfigurations: 0x01
The Vendor ID is 0x18D1 (Google).
The Device ID is 0x4EE2.
Then you edit the file c:\windows\inf\wpdmtp.inf
and edit this:
[Generic.NTx86] %GenericMTP.DeviceDesc%=MTP, USB\MS_COMP_MTP
to append the line that makes this device a target of this inf.
[Generic.NTx86] %GenericMTP.DeviceDesc%=MTP, USB\MS_COMP_MTP %GenericMTP.DeviceDesc%=MTP, USB\VID_18D1&PID_4EE2&MI_00
(At first, I was not sure what the &MI=0 does, so I just left it unmodified). At this point, the ‘Found New Hardware Wizard’ using Automatic settings will install it, and then you can copy files to and from the device’s Internal Storage. An additional step is needed to set up for Android debugging (see below).
I’ve had to edit the .INF before (for other devices) to add new lines to use the same drivers when the PCI Device ID, Subsystem Vendor ID, Subsystem Device ID, etc. change.
Thanks to the post here for sending me in the right direction: https://groups.google.com/forum/#!topic/andreasliebigapps/FERbuAQfTnk
Update on 12/18:
I noticed my Nexus 7 was still showing up with a yellow ! under Other in Device Manager, and I couldn’t see it when I ran “adb devices” from the command line, which is necessary to develop Android apps. The driver installation dialog was still coming up when I plugged it in, so I investigated this further.
“&MI_” was referring to ‘Matching Device ID’ which you can see in Device Manager (Properties, Details tab).
The missing driver was for the Android Composite ADB Interface. The driver zip has been removed from the Asus site, so I had to get it elsewhere (from the ASUS Nexus 7 Tablet ADB USB Driver 6.0 download page).
Later, I found this Google link, but didn’t try it: http://developer.android.com/sdk/win-usb.html#top
The Google version (in source.catalog) is Rev. 8; the other one is Rev. 6, but they are binary exact driver files (only the date changed), with the only exception being the .inf and .cat files (which as I understand it, specify new compatible devices).
Again, the .inf needed to first be edited to include this new device’s Device ID. In the file android_winusb.inf, add one line to the end of the [Google.NTx86] section, which pertains to 32-bit XP, for this Nexus 7:
;Google Nexus 7
%SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_4E40
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_4E41
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E42
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E42&MI_01
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E44&MI_01
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4EE2&MI_01
I am only installing XP 32-bit drivers (x86) and not 64-bit, so I did not modify the following section at all, although the general concept is the same.
[Google.NTamd64]
Prior to doing this, my Nexus 7 was in Device Manager (Other) with a yellow !
Now it correctly appears as a Nexus 7 under Portable Devices, and also under Android Phone, as Android Composite ADB Interface. (Android Debug Bridge). Here’s a screenshot.
I didn’t try connecting to the device in recovery mode yet. The following article describes that it may be necessary to add yet another entry in the .inf to load the driver for the device in recovery mode:
http://blog.dantup.com/2012/10/fixing-adb-device-not-found-with-nexus-7-in-recovery-mode/
Another update (01/14/15):
I’ve recently switched to Android Studio for app development, which I’m running on Windows 7. Again, to use the Nexus 7 (2013) as a debug target, it was necessary to modify the wpdmtp.inf file as described above, and also the device driver for the Android Composite Interface. The Google driver that comes with Android Studio worked for me; just browse to the driver from Device Manager to clear the yellow !, as described here:
http://developer.android.com/tools/extras/oem-usb.html#InstallingDriver
You must be logged in to post a comment.