You can edit almost every page by Creating an account. Otherwise, see the FAQ.

Criticism of Media Transfer Protocol

From EverybodyWiki Bios & Wiki

The original purpose of MTP (“Media Transfer Protocol”) had been enabling non-exclusive access to the mobile phone's internal storage, which means allowing a computer to access the internal storage without interfering with software running on the mobile phone.

Poor stability[edit]

Although MTP might be suitable for transferring a limited number of individual files, it tends to become unstable with an increasing number of files.

The implementation of MTP in Linux file mamagers is more stable than in Windows, the latter of which might freeze until disconnection when trying to rename a file or directory, or perform a file action while the list of files in the viewed directory is loading.

MTP also is prone to random glitches such as Windows Explorer creating one blank file with the file name of the first file selected and the file size of all files selected.

Poor functionality[edit]

To read any portion of a file, the entire file until that portion needs to be downloaded, which allows JPEG thumbnails to load because of being written at the beginning of the file, while video files need to be downloaded entirely to be playable, because of many devices storing the so-called moov atom at the end of the file, making the video file unplayable if truncated.

To modify any portion of a file in MTP, the entire file needs to be downloaded to the system, modified, and then entirely re-written.

In addition, MTP lacks the move file action, the ability to directly move files within the device itself. This lack requires files to be copied to the target directory first and then deleted from the source directory by the software that handles the MTP connection.

This is inefficient and also resets the file's date and time attributes to momentary, while direct moves are supposed to preserve the original date/time attributes.

No parallelism[edit]

MTP lacks parallelism support, meaning that only one file action can be performed at any time. This is why browsing files is significantly slower during a file transfer.

In order to start a file action such as loading the list of files in a directory, the previous file action needs to finish.

During the transfer of a large file, the transfer of the entire file needs to finish before being able to perform any further file actions.

Windows Explorer's unstable implementation of MTP risks freezing indefinitely when attempting to browse directories during an active file transfer (especially when loading thumbnails in a directory with pictures), while implementations on Linux file managers appear to handle it more stably.

The lack of parallelism is especially inferior when the user wishes to watch videos stored on the MTP device during a file transfer. As described above, video files need to be downloaded from the mobile phone into a temporary directory entirely before being playable, while on mass storage devices, which do support random block-level read access, video playback can start immediately, even during an active file transfer.

Video files are usually the largest files stored on a mobile phone. For example, the bit rate of 2160p 4K video footage (usually around 6 MB/s or 48 Mbit/s) demands hundreds of megabytes per minute, and more recent mobile phones even record at higher resolutions and frame rates, demanding higher bit rates.

While it is recommended to use a USB 3.0/3.1 connection for large file transfers, many mobile phones, including some with a USB-C connector, only support USB 2.0 data transfer.

Loading times[edit]

When opening a folder with a high number of files (e.g. 1000 photos), the list of files needs a significant time to load (usually around a minute), while loading near-instantly on mass storage.

Before transferring a folder with a high number of files, the files need to be counted and their size needs to be calculated before initiating the actual transfer. Depending on the file content sizes, the time required to calculate the file sizes might be longer than the actual transfer of the file contents.

Incorrect file locations[edit]

Possibly due to bogus caching and reserved inodes, files viewed through MTP might occasionally not appear in their most recent location until reconnection or rebooting the mobile device.[1]

Until Android 6 Marshmallow, files with names ending with .tmp or starting with a dot (.) character, as well as directories with a dot as first character, are not visible through MTP, which could lead to an unintended data loss when moving files.

Notes[edit]

References[edit]

  1. Not all files are visible over MTP on Android StackExchange

See also[edit]

Related navigation boxes: ElectronicsMobile phonesData storageUser experience and user interfaces