Samsung Android MTP devices on Fedora 15
I'm lucky enough to have recently picked up a Samsung Galaxy 10.1 tablet running Android 3.1. The tablet itself is pretty impressive but uses a protocol I'm unfamiliar with to connect to other computers as a mass storage device. Since the tablet doesn't have a removable SD card (which is kind of strange) Google decided to build the Media Transfer Protocol (MTP) into the device. MTP is great because it allows the tablet and your computer to read/write to the tablet filesystem without Android having to unmount the tablet filesystem first. This means that your Android apps that require the storage area to be mounted won't be killed when you put the device into mass storage mode. This technology apparently can also be referred to as "PlaysForSure" which is a Microsoft brainchild.
This new awesome doesn't come without a few growing pains though. To mount the filesystem on a fully updated Fedora 15 computer you must go into the Android Settings area and select "Applications > Development" and make sure that "USB debugging" is unchecked. On my tablet this box was checked by default (it is a retail device, not the Google I/O edition). After disabling debugging it can simply be plugged into the computer via the included USB cable. If a file manager window doesn't pop up asking what you'd like to do please make sure you have the fuse and libmtp packages installed (they should be by default).
Unfortunately this is where I ran into another bug, check out this screenshot:
Every folder in the root level of the device is listed as empty! A quick read around the intertubes leads me to believe that MTP does some sort of file translation based on file extensions. This is odd since Android is basically Linux and OSS operating systems have pretty much moved away from file extensions being the sole determinator of file type. I'm at a loss for where to report this bug as it could be present in MTP itself (perhaps as a weird Microsoft-y "feature"), in the libmtp implementation or in the Gnome file manager. However copying files to the device worked as promised, even though they disappeared from the file manager listing on a subsequent connection to the Fedora machine. This could possibly be related to file ownership or permissions.
One more thing to note: it's annoying that the only way to initialize an MTP connection on the tablet is to physically unplug the USB cable and plug it in again. It would be nice if you could enable this from the tablet interface sort of how other Android devices handle the mass storage mode.
For those of us that may want to compile mtpfs for fuse manually (as of version 0.9 this didn't change anything) the source code can be found here. Fedora users will probably have to install some development packages to successfully compile:
yum install fuse-devel libid3tag-devel libmtp-devel libmad-devel
