9

Apparently newer versions of Android require the use of Android File Transfer. I have an older machine that doesn't require this, and just mounts as a USB mass storage device. I can't see a technical reason why Android File Transfer is now required when it used not to be.

What changed in order to make this necessary? Why is it necessary?

3
  • 1
    Android dropped mass storage mode in 3.0 (at least, on devices that lack removable storage) and switched to Media Transfer Protocol. I don't know that OS X supports MTP natively, so I'd wager that could be the reason. Commented Oct 31, 2013 at 14:47
  • Thanks. Interesting seeing arguments in favour of MTP. Do you know why mass storage mode was dropped though (rather than keeping it around)?
    – Joe
    Commented Oct 31, 2013 at 14:51
  • 4
    It was basically done because using mass storage mode on devices without SD cards was decided to cause too many complications. In particular, if you use mass storage you have to partition the device in two (apps and media) in order to enable block-level access that UMS needs. MTP lets you access the whole volume and use it for either purpose. Dan Morril (from Google) explained this a bit in a Reddit comment, but I don't know if there are any more "official" explanations around. Commented Oct 31, 2013 at 15:06

1 Answer 1

14

Newer Android devices don't support USB mass storage because it has a big shortcoming: the phone and the PC can't access the storage at the same time that way. This is because USB mass storage is a low-level protocol giving the PC low-level access to the whole filesystem. This causes knock-on problems when you connect your phone to the PC:-

  • Apps on the external storage can't run while it is mounted on the PC.
  • Music and other files on the external storage aren't accessible to apps, so even apps that aren't on the external storage might stop working or become useless.
  • When the external storage is unmounted from the PC, Android has to rescan it from scratch (see ) because it can't tell what has changed.
  • There's no way for the phone to let the PC access the internal storage this way: Android can't unmount the internal storage, because all apps need access to it, even the system apps.
  • This also means there has to be a separate partition and filesystem for the external storage, which the phone can cope with losing access to. Newer Android devices often just have one big partition, and the "external storage" is simply a directory there. It's more convenient that way because you don't have free space split between partitions, but you can't use USB mass storage on only a directory.
  • Android can't enforce any filesystem security. The PC has complete access to the exported storage, below the filesystem level. This lets it access any file, and read the raw device data to recover deleted files. This might be considered an undesirable security hole.
  • As eldarerathis points out, the external storage has to use the FAT32 filesystem to work this way. This isn't a shortcoming when it's a real SD card, but when it's really non-removable storage, it would be more useful to use a better filesystem.

(Where I say "SD card" here, that means whatever storage your Android device calls "external", even if it's not actually removable.)

In contrast, MTP is higher-level, and allows Android to arbitrate and to share access, just like when sharing directories or filesystems over a network. It even opens the possibility of letting the PC access the internal storage this way, but there are other restrictions around that unrelated to MTP.

As eldarerathis explains, you need special software to access MTP devices from a Mac, because Mac OS doesn't have the appropriate software built-in, like Windows and some Linux distributions do.

6
  • 2
    While the pros are logical, I still don't see why it was completely removed. MTP certainly makes it harder to attach your device to "any computer" in order to just exchange some files, you always need to install "special drivers" on e.g. Windows machines – which the owner for good reasons might refuse (and would not be required for UMS). Thus having UMS available as a fall-back to be explicitly activated by the user would be preferable IMHO. But right, not for us here at ASE to decide (unfortunately).
    – Izzy
    Commented Oct 31, 2013 at 15:57
  • 1
    I agree, it's a shame it was completely removed. I regularly mount my android to move files around, and eject after. Not tried the new MTP. But maybe there were some chunks of the OS that could be simplified or removed after this change.
    – Joe
    Commented Oct 31, 2013 at 15:59
  • 1
    @Izzy: I think the big problem is that it's not technically feasible once they went the MTP route the way they did. On a device without external storage (like Nexus devices) you'd have to basically surrender the entire /data partition if you used UMS, unless there was some way to make the /data/media directory act like some kind of virtual block device (maybe there is, I'm not sure). Losing access to /data would not work, so they'd likely have to re-architect the whole system in order to support both. Commented Oct 31, 2013 at 16:00
  • 2
    Also, another potential component to this is that it allows the internal storage to use a more robust filesystem, like ext4, whereas a UMS block device is pretty much always going to be FAT32 in order to provide interoperability between Android and the PC's OS. Since MTP abstracts access to the device, the OS can read/write even if it doesn't support ext4 (e.g. Windows). Commented Oct 31, 2013 at 16:04
  • Yes, all valid. And all good points (the FS included). But it's also removed on several devices which do have microSD slots. Guess that's where manufacturers missed the intention behind it.
    – Izzy
    Commented Oct 31, 2013 at 16:32

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .