Honeycomb, MTP and Linux

TL;DR

If you want to transfer files between your computer and your tablet, get aafm, an application I've written to work around MTP issues with Linux.


Honeycomb ends with the tradition of allowing users to mount the phone's SD card as an USB mass storage device, and replaces that with MTP. Or, in other words, "Media Transfer Protocol", a Microsoft protocol for transferring files between portable devices and a computer.

Why? Because in theory MTP allows the computer to access single files and directories at the same time that the device can still access them. So you can forget about "dismounting" the SD card and getting some applications to stop in your Android device. It sounds too good to be true... and as expected, it doesn't work.

There's hardly been any mention to this change in all the Honeycomb announcements, and it certainly is a disruptive change. Because this new protocol relies in the manufacturers getting their act together to provide proper drivers that are able to communicate with the device, it seems everybody is having problems. Not only in Linux --which is my case--, but in Mac and Windows too. They have to install "Samsung KIES", which sounds absolutely like an iTunes counterpart, and restart the computer and device several times, and maybe update something else. So we had been able to run away from having to use a dedicated program to transfer files to our Android devices, and we have to end up installing some special software to do that with Honeycomb. Boo.

I've been following several tutorials to get MTP working with the Samsung Galaxy Tab 10.1 that I was given on the Google I/O, such as this one. I've even managed to get the tablet to show up and automount, and I can copy files. Yet when I re-mount the tablet again, the files are "gone", nowhere to be seen, although they are accessible from the point of view of the tablet.

I tried upgrading the tablet to 3.1 as the update was available. And for that, I had to register for a Samsung account first, and click on an agreement. Again locking people in. Not nice, and there wasn't much of an improvement. Except I could change the time zone at last, which was a bug I noticed before.

Now, for transferring files you need to disable USB debugging mode. But let's say you want to enable debug, for developing on the device. Hah! The tablet won't allow you to do so unless you physically unplug the cable first.

And here comes the finest surprise of all: once you enable USB debugging, and connect the tablet again, you can see those mysteriously disappeared files, using ADB or DDMS (from the SDK toolkit). I wonder if some sort of utility could be built to transfer stuff using adb as the low level connection method instead of this MTP "thing"--to describe it somehow without resorting to rude epithets. UPDATE: I've started developing such utility. If you want to take an early stab at it, have a look at aafm - Android ADB File Manager :)

I wonder if the commercial version of Galaxy 10.1 has this sort of problems. Some people are suggesting that Google are trying to get people to use "the cloud" instead of simply using plain old storage, so maybe commercial tabs have this feature too.

If that's the case, that renders Honeycomb devices utterly unattractive.