{"id":343,"date":"2013-12-16T02:40:29","date_gmt":"2013-12-16T07:40:29","guid":{"rendered":"http:\/\/bunnyville.org\/xblkx\/?p=343"},"modified":"2015-01-15T18:43:41","modified_gmt":"2015-01-15T23:43:41","slug":"how-to-install-32gb-nexus-7-on-xp-windows-xp-driver","status":"publish","type":"post","link":"https:\/\/xblkx.lkramer.net\/?p=343","title":{"rendered":"How to install 32GB Nexus 7 on XP (Windows XP driver)"},"content":{"rendered":"<p>If your Nexus 7 (2013 &#8211; second generation) doesn&#8217;t show up correctly in Device Manager when you connect it\u00a0 (&#8220;Unknown device&#8221;, &#8220;This hardware cannot be installed&#8221;) because the driver isn&#8217;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.<\/p>\n<p>Not sure if it&#8217;s required, but I did enable the USB Debugging option in the Developer options.\u00a0 It wasn&#8217;t necessary to change from MTP (Media Transfer Protocol) to PTP.\u00a0 Incidentally, my device is an August 2013 model running 4.4.2 (KitKat) which as of this post is the latest OS.<\/p>\n<p>Download and execute the Microsoft USB identification utility &#8220;usbview.exe&#8221;.\u00a0 I found it on this page: http:\/\/digital.ni.com\/public.nsf\/allkb\/335A90747734097886257070006415B9<\/p>\n<pre>My device's ID was this:\r\nDevice Descriptor:\r\nbcdUSB:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0x0200\r\nbDeviceClass:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0x00\r\nbDeviceSubClass:\u00a0\u00a0\u00a0\u00a0\u00a0 0x00\r\nbDeviceProtocol:\u00a0\u00a0\u00a0\u00a0\u00a0 0x00\r\nbMaxPacketSize0:\u00a0\u00a0\u00a0\u00a0\u00a0 0x40 (64)\r\nidVendor:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0x18D1\r\nidProduct:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0x4EE2\r\nbcdDevice:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0x0228\r\niManufacturer:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0x01\r\niProduct:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0x02\r\niSerialNumber:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0x03\r\nbNumConfigurations:\u00a0\u00a0 0x01<\/pre>\n<p>The Vendor ID is 0x18D1 (Google).<br \/>\nThe Device ID is 0x4EE2.<\/p>\n<p>Then you edit the file c:\\windows\\inf\\wpdmtp.inf<\/p>\n<p>and edit this:<\/p>\n<pre>[Generic.NTx86]\r\n%GenericMTP.DeviceDesc%=MTP, USB\\MS_COMP_MTP<\/pre>\n<p>to append the line that makes this device a target of this inf.<\/p>\n<pre>[Generic.NTx86]\r\n%GenericMTP.DeviceDesc%=MTP, USB\\MS_COMP_MTP\r\n%GenericMTP.DeviceDesc%=MTP, USB\\VID_18D1&amp;PID_4EE2&amp;MI_00<\/pre>\n<p>(At first, I was not sure what the &amp;MI=0 does, so\u00a0I just left it unmodified).\u00a0 At this point, the &#8216;Found New Hardware Wizard&#8217; using Automatic settings will install it, and then you can copy files to and from the device&#8217;s Internal Storage. \u00a0An additional step is needed to set up for Android debugging (see below).<\/p>\n<p>I&#8217;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.<\/p>\n<p>Thanks to the post here for sending me in the right direction: <a href=\"https:\/\/groups.google.com\/forum\/#!topic\/andreasliebigapps\/FERbuAQfTnk\" target=\"_blank\">https:\/\/groups.google.com\/forum\/#!topic\/andreasliebigapps\/FERbuAQfTnk<\/a><\/p>\n<p>Update on 12\/18:<\/p>\n<p>I noticed my Nexus 7 was still showing up with a yellow ! under Other in Device Manager, and I couldn&#8217;t see it when I ran &#8220;adb devices&#8221; from the command line, which is necessary to develop Android apps.\u00a0 The driver installation dialog was still coming up when I plugged it in, so I investigated this further.<\/p>\n<p>&#8220;&amp;MI_&#8221; was referring to &#8216;Matching Device ID&#8217; which you can see in Device Manager (Properties, Details tab).<\/p>\n<p>The missing driver was for the Android Composite ADB Interface.\u00a0 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 <a href=\"http:\/\/drivers.softpedia.com\/get\/JOYSTICK-GAMEPAD-WHEELS-and-TABLETS\/ASUS\/ASUS-Nexus-7-USB-Driver-R06.shtml\" target=\"_blank\">download page<\/a>).<\/p>\n<p>Later, I found this Google link, but didn&#8217;t try it: http:\/\/developer.android.com\/sdk\/win-usb.html#top<\/p>\n<p>The Google version (in source.catalog) is Rev. 8; the other one is Rev. 6, but they are binary exact\u00a0 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).<\/p>\n<p>Again, the .inf needed to first be edited to include this new device&#8217;s Device ID.\u00a0 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:<\/p>\n<p>;Google Nexus 7<br \/>\n%SingleBootLoaderInterface% = USB_Install, USB\\VID_18D1&amp;PID_4E40<br \/>\n%SingleAdbInterface%\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = USB_Install, USB\\VID_18D1&amp;PID_4E41<br \/>\n%CompositeAdbInterface%\u00a0\u00a0\u00a0\u00a0 = USB_Install, USB\\VID_18D1&amp;PID_4E42<br \/>\n%CompositeAdbInterface%\u00a0\u00a0\u00a0\u00a0 = USB_Install, USB\\VID_18D1&amp;PID_4E42&amp;MI_01<br \/>\n%CompositeAdbInterface%\u00a0\u00a0\u00a0\u00a0 = USB_Install, USB\\VID_18D1&amp;PID_4E44&amp;MI_01<br \/>\n%CompositeAdbInterface%\u00a0\u00a0\u00a0\u00a0 = USB_Install, USB\\VID_18D1&amp;PID_4EE2&amp;MI_01<\/p>\n<p>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.<\/p>\n<p>[Google.NTamd64]<\/p>\n<p>Prior to doing this, my Nexus 7 was in Device Manager (Other) with a yellow !<\/p>\n<p>Now it correctly appears as a Nexus 7 under Portable Devices, and also under Android Phone, as Android Composite ADB Interface. (Android Debug Bridge).\u00a0 Here&#8217;s a screenshot.<\/p>\n<p><a href=\"http:\/\/lkramer.net\/xblkx\/wp-content\/uploads\/2013\/12\/nexus-7-shoehorn-drivers-1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-medium wp-image-350\" src=\"http:\/\/lkramer.net\/xblkx\/wp-content\/uploads\/2013\/12\/nexus-7-shoehorn-drivers-1-300x165.jpg\" alt=\"nexus 7 shoehorn drivers 1\" width=\"300\" height=\"165\" srcset=\"https:\/\/xblkx.lkramer.net\/wp-content\/uploads\/2013\/12\/nexus-7-shoehorn-drivers-1-300x165.jpg 300w, https:\/\/xblkx.lkramer.net\/wp-content\/uploads\/2013\/12\/nexus-7-shoehorn-drivers-1.jpg 947w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>I didn&#8217;t try connecting to the device in recovery mode yet.\u00a0 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:<br \/>\nhttp:\/\/blog.dantup.com\/2012\/10\/fixing-adb-device-not-found-with-nexus-7-in-recovery-mode\/<\/p>\n<p>&nbsp;<\/p>\n<p>Another update (01\/14\/15):<br \/>\nI&#8217;ve recently switched to Android Studio for app development, which I&#8217;m running on Windows 7. \u00a0Again, 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. \u00a0The 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:<\/p>\n<p><a href=\"http:\/\/developer.android.com\/tools\/extras\/oem-usb.html#InstallingDriver\" target=\"_blank\">http:\/\/developer.android.com\/tools\/extras\/oem-usb.html#InstallingDriver<\/a><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>If your Nexus 7 (2013 &#8211; second generation) doesn&#8217;t show up correctly in Device Manager when you connect it\u00a0 (&#8220;Unknown device&#8221;, &#8220;This hardware cannot be installed&#8221;) because the driver isn&#8217;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 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,8],"tags":[],"class_list":["post-343","post","type-post","status-publish","format-standard","hentry","category-computers","category-technical"],"_links":{"self":[{"href":"https:\/\/xblkx.lkramer.net\/index.php?rest_route=\/wp\/v2\/posts\/343","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xblkx.lkramer.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/xblkx.lkramer.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/xblkx.lkramer.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/xblkx.lkramer.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=343"}],"version-history":[{"count":9,"href":"https:\/\/xblkx.lkramer.net\/index.php?rest_route=\/wp\/v2\/posts\/343\/revisions"}],"predecessor-version":[{"id":404,"href":"https:\/\/xblkx.lkramer.net\/index.php?rest_route=\/wp\/v2\/posts\/343\/revisions\/404"}],"wp:attachment":[{"href":"https:\/\/xblkx.lkramer.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=343"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xblkx.lkramer.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=343"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xblkx.lkramer.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=343"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}