[Android General] DrWarrenKruger:
External drive problem SOLVED!

I've solved the problem of getting the Gallery app, which plays videos nicely, to "see" an external device connected via USB. Here's what I did:

1. Root (see this post on how to do it: http://xdaforums.com/showpost.php?p=41369471&postcount=323).

2. Get and install the free Script Manager - SManager (by devwom) from the Market (Play Store).

3. Create a new directory in your /sdcard directory called external (or whatever you'd like to use to refer to your external device; I used the Android Terminal Emulator app to do this).

4. Create a text file in your /sdcard directory called remap (no extension, and you can call it anything you want) that has the following two lines in it:

#!/system/bin/sh

mount -o bind /tmp/udev/dev/.mnt/sda1 /sdcard/external

5. Run Script Manager, navigate to the sdcard directory, long press on remap (or whatever you called the file in step 4 above), select Open As..., select Script/Executable, select Su and Boot options, Save and Exit.

6. Reboot (i.e., full restart, not just a faceplate removal), then after the system is fully started up, start the Gallery; the videos on your external drive should show up after it scans for all newly available material (see note immediately below before performing this step).

Note: If you have a large external device with lots of media on it as I do, I suggest that before the reboot above you (re-)partition it into at least 2 sections, one for audio files and one for video files. Since the Gallery app re-scans your drive each time you use it, you will save a huge annoyance by pointing it towards the video partition only, and thereby avoiding the scan of the audio partition. That may require you to change the 'sda1' in step 4 to 'sda2' depending on which volume your video partition mounts to. Use the Android Terminal Emulator app (or you can use any file manager) to confirm which volume is which before rebooting. You can easily edit the text file you created to change the volume number during step 5. Do it right the first time to save what for me was a time wasting scan of thousands of audio files.

The same technique can, in theory, be used facilitate the Play Music app to see an external sound library. However, I haven't figured how how to solve the problem of having the Gallery app

and

the Play Music apps each see only what is appropriate for them (i.e., the video partition for Gallery and the music partition for Play Music). However, since the Smart's built-in Music app can already see external drives and in fact requires a choice of volume when selecting what to play, I've simply avoided using Play Music, much as I'd like to use it because I can make playlists (which I haven't figured out how to do using the built-in Music app...help anyone?).

One other thing I tried was to u(n)mount my external drive, and (re)mount it directly into the sdcard directory. This would save the possibility of a more sophisticated app finding all files on the external drive twice (since the mount command in step 4 is effectively creating a symlink to the drive, therefore it exists in two place). However, in testing I would have to run umount possibly a hundred times before it would actually dismount the drive, because it appears there are OS-level processes running in the background that are using the drive a lot and until they take a break the umount fails. I thought about writing a more sophisticated script that upon boot runs umount until it succeeds, then mounts the drive once in the sdcard directory, as this would be optimal, but I'm not sure that the scripting language available using the built-in shell is powerful enough to do this. Plus since the Gallery app can't see the external drive on it's own (which is the reason for all this nonsense in the first place) and the Music app requires the selection of a drive when choosing what to play, it's a non-issue thus far for me.

Below is a screen shot of Gallery showing videos found on both the sdcard (top) and external drive (bottom):