1. Home
  2. Mobile

Enable USB Host Function On Samsung Galaxy S I9000 & Samsung Captivate

The Galaxy S series, is surely a league of Android devices with seemingly unlimited development coming in from fans. USB host functionality has been a hot topic for a about a year now with more and more Android devices seeming to support the function, especially the newer Android devices. That said, Ice Cream Sandwich is all the rage right now, and would it not be awesome if the Galaxy S got USB Host functionality while running the ICS OS? Indeed it will be, or should we say it is, thanks to XDA-Developers forum member sztupy who took the kernel form Teamhacksung’s ICS Build 14 and modified it to enable the USB Host function on the Galaxy S and the Captivate as well.

image However, this would only function on that very ROM (Teamhacksung’s Build 14), and yes, it is a kernel that needs to be flashed to the phone. Currently, only USB 2.0 devices seem to be working. This includes, flash drives, and other accessories like Canon DSLRs and possibly more.

According to the developer:

USB 1.x devices doesn’t seem to work. This includes almost all HID devices (like keyboard and mice).

Also you will need to power the devices externally, as the phone doesn’t give out power on the OTG connector.

USB device enumeration is also broken sometimes, and it will not re-enumerate mass storage devices after they have been connected. (This means you cannot connect another Android phone as a mass storage device. WM phones are fine though). The built in root hub will never re-enumerate devices, they have to be already connected to the phone when you switch to host mode for them to work.

Disclaimer: Please follow this guide at your own risk. AddictiveTips will not be liable if your device gets damaged or bricked during the process.


  • A rooted Galaxy S or Captivate with custom recovery installed. Considering you’re on ICS running Teamhacksung’s ROM, you already have that covered
  • Custom Kernel for Galaxy S | for Captivate
  • USB Host Controller.


  1. To begin, download the kernel from the link above and copy it to the root of your SD card.
  2. Boot into recovery and  wipe cache and the dalvik cache.
  3. Time to flash the kernel, and you can do so by navigating to install zip from sdcard > choose zip from sdcard and selecting the custom kernel copied to the device.
  4. Once the kernel is installed, install the USB Host controller form the Android Market to control the USB devices connectivity.

For updates and queries, head over to the forum thread at XDA-Developers.

Leave a comment