I can now access USB Storage Devices on the Dell Streak. (2.1 FW)
Short Version for those familiar with messing around in Android:
1. Create the mount point /data/disk/media/disk
2. Un-comment the volume_usb sections of /system/etc/vold.conf
EDIT: NOTE: The Streak seems to also unmount the SDCard when you unmount the USB device. Perhaps this is why they commented out the USB lines. Since on the Streak, you cannot pop the card out and back in, a reboot is needed to see your card again.
More Detailed Version:
What you need:
- A Dell Streak
- A USB Storage Device (Flash Drive; Card Readers, and even Hard Drives should work too, but are untested.)
- Some sort of USB OTG (On-The-Go) adapter - either Made from a Streak Cable, - OR - a Proper Mini-USB OTG Cable and the Dell Home Dock or PDMI <> USB adapter.
The USB adapter MUST have Pins 4 and 5 connected. Regular USB Mini to Female USB "A" Cables WILL NOT WORK.
- A 2.1 Firmware (Will be slightly different for Froyo, but same basic instructions) Specifically, the O2 firmware.
- Root on the Dell Streak
- For this to be useful, you'll probably want a File Manager on your Dell Streak. Many apps (such as QuickOffice) cannot see the USB device.
- Android SDK on your Host PC. You need to know how to use ADB (and optionally, ddms).
- Brains (A little)
- Guts (A lot) - Standard Disclaimers apply. You will be issuing commands as Root, and may make your Dell Streak Temporarily or Permanently Unusable. It is your decision to continue. Proceed at your own risk. What is written here is from memory, and may contain errors.
Connect With ADB, then:
I then changed the owner/group of /data/disk/media/disk to system, but I am not sure this is necessary:
chown system.system /data/disk/media/disk
Copy /etc/vold.conf to a PC (or someplace) for editing. There's a million ways to do this:
- dd it to the card, and copy to pc
- use ddms or adb to pull it right from /etc/
... or how ever you normally do this.
Do Not edit with something that is going to mess up the LF's. (Warning to Windows users.)
If you have busybox installed, you can cp instead of dd in these steps.
Un-comment all of the lines relating to USB. (essentially the rest of the file after the sdcard entry section). Save the file.
Before we write the edited file, we make a backup of the original. Using ADB, do:
mount -o rw,remount -t yaffs2 /dev/block/mtdblock6 /system
dd if=/etc/vold.conf of=/etc/vold.conf.bak
Put the file back in the correct place. Again there are many ways to do this. Assuming the edited vold.conf is on the SDcard do the following (Still using ADB, still root):
dd if=/sdcard/vold.conf of=/etc/vold.conf
Reboot, or remount /system read only again:
mount -o ro,remount -t yaffs2 /dev/block/mtdblock6 /system
That's it. USB devices should work. Unmounting works from Settings:USB Mass Storage:Unmount/Eject USM device