Monday, September 3, 2012

iOS and MTP USB Device installation failure

Getting iOS devices to sync on iTunes is easy, but somehow one of my PC no longer allow me to access my iphone internal storage through Windows Explorer running Windows 7 x64 OS. Multiple attempt to install the device driver failed saying I already have he current driver. When forced the Apple mobile device driver install, I run into the following error:
You may receive an error message when you try to install a device driver on a computer that is running an x64-based version of Windows
I have tried many things with no success, including using a different usb port(s), uninstalling/reinstalling (repair as well as clean install) latest version of Apple iTunes software and even try force install from the inf file directly from the following driver install patch C:\Program Files\Common Files\Apple\Mobile Device Support\Drivers which conveniently pop up a install error dialog:
The INF file you selected does not support this method of installation.
I checked to device manager and confirmed that the Apple Mobile Device USB driver did installed successfully under Universal Serial Bus controller and also verify Apple Mobile Device service is running. However, under the Portable Devices, the MTP USB Driver shows a persistent yellow warning about driver install failure instead of Apple iPhone on my other Windows 7 desktop.

I am not aware of any 3rd party tools that allow tracing the windows driver installation and detection, and failure to install the correct driver is the source of this current problem. I concluded that one needs to install the iTunes software first before attaching the iOS device for the iOS device to be detected properly and if the generic USB aka MTP USB device got installed first by Windows, it can quickly become messy to a point of no return and I surely have no plans to re-install the OS.

The goal is simple. I need to completely get rid of associate Apple iTunes software and Apple Mobile Device USB driver and I want Windows OS to properly detect the iOS device as if it sees the iOS device for the first time. A simple uninstall the Apple software won't be enough. So here are the steps to do fix correctly.

  1. Plug the iPhone in
  2. Go to Device manager >Universal Serial Bus controllers and delete the Apple Mobile USB instance
  3. Open Windows Registry (Admin Elevated Mode) and export the following registry key (so in case I fast fingered, I can revert the change easily): HKLM>system>current control set>control>class>{EEC5AD98-8080-425F-922A-DABF3DE3F69A} and then delete the following key: HKLM>system>current control set>control>class>{EEC5AD98-8080-425F-922A-DABF3DE3F69A}\UpperFilters
  4. Uninstall Apple Mobile Device Support
  5. Uninstall iTunes
  6. Unplug the iPhone and reboot
  7. Log back in to reinstall iTunes
  8. Unlock you phone and launch to camera app and make sure you have some photo there. If not, just snap a photo
  9. Plug iPhone back in to the USB port and let the plug and play do it's magic
Viola.. plug and pray is activated and everything is now properly detected. I am now able to access the iOS internal storage to get to the photos and videos from Windows Explorer.

While I don't enjoy assigning blame, I still think this failure is contributed by both Microsoft and Apple. Microsoft failure is caused by the plug and play device driver installation module not doing the proper hardware detection and attempt to install generic driver that are persistent. Apple failure is it's failure to install driver installation properly. But I do sympathize the later for Apple developers are not *real* Windows developers, I think they could have done a better job at writing better software knowing that iOS devices are the current Apple's cash cow.