MTP move within same partition takes a long time

3

1

I have an Android 4.3 device (Samsung Galaxy SIII LTE running stock ROM) that connects to the computer using MTP (Media Transfer Protocol).

I wanted to organize some files and I was creating subfolders and moving subsets of files into these subfolders. This is all within the same partition (external SD card installed on the phone).

One such move involved a large file of size a little over 2 GB. On a regular hard disk drive or thumb drive, this move would have been very fast, taking merely a couple of seconds at most. The file data itself is not moved - only the reference pointer (file metadata) is changed from the old folder to the new folder.

However, using the MTP, this move took 17 minutes! (The estimate was 29 minutes.) It looked like the Windows 7 computer copied the file temporarily to the local hard disk then re-copied the file into the device in the new folder. Either that, or it asked the device to copy the file to the new folder and then delete the original file.

Is this a normal behavior of MTP? Or is there something wrong with my computer or the protocol version it is using?

If it is normal, what is the reason for choosing such an inefficient method of moving files within the same partition? If not, how can I fix it?

ADTC

Posted 2014-01-28T03:39:05.417

Reputation: 2 649

Answers

3

Is this a normal behavior of MTP?

Yes. It seems that MTP is a rather bare-bones protocol that was not designed to support direct modification of objects - a rather ridiculous negligence in my opinion. According to Wikipedia:

The MTP and PTP standards do not support direct modification of objects. Modified objects must be copied out of the device and reuploaded in their entirety, which can take a long time for large objects. Google's MTP implementation in Android includes extensions to deal with this limitation; however, these extensions must be supported by the host operating system, and are not available by default. - Wikipedia

Why did Android switch to MTP?

Android moved from mounting as disk storage to MTP to resolve the issue of accessing the file system while making it also available for access to the computer. It seems that with the original disk mount, you had to have separate partitions, which resulted in devices having huge user storage space but still running out of space for apps and app storage (and the user wonders why when there is still plenty of storage available). With MTP, there doesn't need to be separate partitions anymore and the same partition can be used by both apps and user - resulting in plenty of storage for both the system and the user.

But in changing permanently to MTP, Android has gone backwards from a robust time-tested feature-rich file system access method (disk storage mount) to a rather rudimentary, feature-poor but fairly new method (MTP). In addition, Samsung devices do not use Google's MTP implementation and as such they lack the ability to overcome the limitations of the original MTP implementation by using extensions such as these.

Possible workaround

It seems that a better option when moving large files is to use a File Manager app (such as ES File Explorer) in your phone or tablet, rather than attempting to move them using your computer connected to your device via MTP.

ADTC

Posted 2014-01-28T03:39:05.417

Reputation: 2 649

thanks for the explanation. the mtp is basically crap when connecting the phone to a computer. i have to physically remove my sd card and connect to a card reader to do anything substantial with the files on my phone, and generally avoid hitting the phone file system at all. another negligant oversight IMHO is not allowing some sort of "advanced option" where you to change from MTP to mounted storage in the usb options dropdown on the phone. – chiliNUT – 2015-10-05T20:50:24.830