Mounting Additional USB Storage Devices on Android

On all the Ltouch products, once a USB Storage is connected to one of the four USB connectors available, the Android system will automatically mount it on /mnt/usb and you will be able to see it from the System Preferences/Storage.

However, this happens only for the first USB storage device that you plug. If you need to mount additional Flash memories, you need to manually tell Android how (and where) to set it up.

As a pre-requisite, the following procedure requires that you will able to gain access to the Android shell through the command

adb shell

The mounting process in Android, but in general in all the Linux-based systems, needs to know at least four things:
* the file system type,
* the permission granted to the file system,
* the /dev mount point, and
* the point on the file system tree in which the new device storage will be mounted. This parameter can not be on the /mnt folder because the partition that contains it will be restored on boot. As a workaround, you can for instance create the mount point on the /system partition and since the Ltouch is a rooted device, you can for instance remount it as read/write and create for instance a folder as follow:

adb remount
adb shell
mkdir /system/usb1

For mounting an additional USB Storage Flash Memory, the previous parameters are:
* vfat
* rw (that is, read/write permissions)
* /dev/block/vold/8\:17
* /system/usb1

And finally, the command that effectively mounts the new storage device on the created mount point is:

mount -t vfat -o rw /dev/block/vold/8\:17 /system/usb1/

You can now access the /system/usb1 folder and you will see the content of the USB storage.

In order to ”’unmount”’ the device, just type:

umount /system/usb1

Troubleshooting

If you get this error message while unmounting the device:

failed: Device or resource busy

make sure that any of the running processes/apps do not have opened files that are stored in /system/usb1. The shells must not have the folder opened.