USB host mode on ICS 4.0.3 - what am I missing?

kbro picture kbro · Feb 3, 2013 · Viewed 7.4k times · Source

I have an Android tablet running ICS 4.0.3 with kernel 3.0.8 which has 2 USB host ports, and both ports work with things like USB memory sticks, keyboards, mice and 3G dongles, so I know the hardware is functioning. I want to use the tablet with a USB Host Mode app but it isn't recognising the device I'm plugging in. After a bit of digging on stackoverflow and other places I found that the android.hardware.usb.host.xml file was missing in the /system/etc/permissions directory so I used adb to put it there and rebooted, but still it seems that USB Host Mode isn't working. I'm using "USB Device Info" from the Play Store and it's reporting my device on the Linux side but not Android.

I haven't tried it yet, but this answer - Android USB host and hidden devices - says that I also need android.hardware.usb.host in the handheld_core_hardware.xml or tablet_core_hardware.xml file (also in the /system/etc/permissions directory), but other posts suggest I only need this for getting the right list of apps on the Play Store, so which is right?

My worry is that I'm missing something else - so what can I look for to be sure that the device is USB Host capable? Is it possible to build 4.0.3 without USB Host support and, if so, what would be missing?

Or maybe host mode only works with OTG ports and not host-only ports.

Any suggestions for further avenues of investigation gratefully received!

Answer

kbro picture kbro · Feb 4, 2013

I decided to re-check everything. The android.hardware.usb.host.xml file definitely was in the /system/etc/permissions directory, and it had appropriate file permissions, but when I came to look at the contents I found that it contained the HTML description for the page at http://code.google.com/p/ics-nexus-s-4g/source/browse/trunk/system/etc/permissions/android.hardware.usb.host.xml rather than the raw text file that can be downloaded from there. Looks like my instruction to "install the file from this link" was taken too literally! Putting the correct contents in the file made it work a treat. Relief!!