Media Transfer Protocol ( MTP ) — это расширение протокола связи Picture Transfer Protocol (PTP) , которое позволяет автоматически передавать файлы мультимедиа на портативные устройства и с них . [1] В то время как PTP был разработан для загрузки фотографий с цифровых камер , Media Transfer Protocol позволяет передавать музыкальные файлы на цифровые аудиоплееры и файлы мультимедиа на портативные медиаплееры , а также личную информацию на персональные цифровые помощники . MTP является ключевой частью WMDRM 10-PD, [1] службы управления цифровыми правами (DRM) для платформы Windows Media . В 2011 году он стал стандартным методом передачи файлов на Android и с него. [2]
MTP является частью фреймворка "Windows Media" и, таким образом, тесно связан с Windows Media Player . Версии операционной системы Microsoft Windows , начиная с Windows XP SP2, поддерживают MTP. Windows XP требует Windows Media Player 10 или выше; [3] более поздние версии Windows имеют встроенную поддержку. Microsoft сделала MTP Porting Kit доступным для старых версий Windows, вплоть до Windows 98 .
Рабочая группа Форума разработчиков устройств USB стандартизировала MTP как полноценный класс устройств универсальной последовательной шины (USB) в мае 2008 года. [4] С тех пор MTP является официальным расширением PTP и имеет тот же код класса. [5]
MTP — это протокол передачи файлов высокого уровня , в отличие от общего протокола хранения, такого как USB-накопитель . Это означает, что клиент MTP (компьютер) не видит массив байтовых блоков , который составляет структуру данных , составляющую файловую систему , а вместо этого говорит с устройством MTP в терминах файлов и папок. Это позволяет устройству MTP участвовать в операциях высокого уровня (таких как обновление индексов метаданных), сохраняя при этом целостность своей файловой системы в своих руках. В частности, сброшенные передачи (например, слишком раннее отключение кабеля USB) не повреждают файловую систему устройства. [6] Неуниверсальность MTP имеет последствия для того, как операционная система компьютера может представлять устройство MTP как другим программам, так и пользователю.
Согласно спецификации, основная цель MTP — облегчить связь между медиаустройствами с временным подключением. [5] Вторичная цель — обеспечить возможность управления и контроля подключенного устройства. [5] Мобильное устройство с питанием от батареи может сообщать об уровне заряда батареи через MTP. [6]
Первоначально протокол был реализован для использования через USB, но расширен для использования через TCP/IP и Bluetooth . Windows Vista поддерживает MTP через TCP/IP. Windows 7 и Windows Vista с обновлением платформы для Windows Vista также поддерживают MTP через Bluetooth. [7] Хост, подключающийся к устройству MTP, называется инициатором MTP , тогда как само устройство является ответчиком MTP . [8]
MTP позволяет инициаторам MTP определять конкретные возможности устройств в отношении форматов файлов и функциональности. В частности, инициаторам MTP может потребоваться предоставить пароли и другую информацию для разблокировки файлов или иным образом включить управление цифровыми правами . Ничего конкретного такого рода нет в основном стандарте, но функции доступны через расширения поставщика. MTPZ, расширение Zune для MTP, специально запрещает доступ к файлам до тех пор, пока не будет выполнена аутентификация, что возможно только с использованием Windows Media Player 10 или выше.
Преимущества MTP отмечены знаком « (+) », а недостатки — знаком « (-) ».
Поскольку файловая система и индекс метаданных не раскрываются , их целостность находится под полным контролем устройства.
(-) Windows не назначает буквы дисков или пути UNC устройствам MTP, поскольку изначально не отображает их как виртуальные файловые системы . Без букв дисков или путей UNC программное обеспечение, не поддерживающее MTP, не может получить доступ к каталогам или файлам на этих устройствах. Пользователь должен переключиться на приложение, поддерживающее MTP, или обойти это ограничение, используя приложение, поддерживающее MTP, например, проводник Windows, чтобы скопировать или переместить файл в файловую систему, к которой приложение может получить доступ.
Одной из конкретных проблем является то, что антивирусное программное обеспечение на хост-компьютере может не знать об устройствах MTP, что делает их потенциально менее безопасными, чем устройства массового хранения данных (хотя если файлы на устройствах MTP копируются или перемещаются на хост перед использованием, антивирусное программное обеспечение, не знающее о MTP, будет иметь возможность их просканировать). Антивирусное сканирование также может быть непрактичным из-за блокировки регулярного использования устройства.
(-) Несмотря на идентификацию по классу USB-устройств PTP/MTP , документация libmtp указывает, что комбинация идентификатора поставщика и продукта играет функциональную роль в идентификации устройства MTP, в том числе драйверами Windows. [13] Libmtp включает в себя обширные списки идентификаторов поставщиков и продуктов поддерживаемых устройств, а также обходные пути для ошибок. [14] [15] Эта неуниверсальная методология препятствует прямой совместимости драйверов MTP с новыми устройствами.
Спецификация MTP включает в себя перечисление форматов файлов, называемых форматами объектов . [5] Использование этого перечисления заключается в сообщении поддерживаемых форматов файлов и форматов передаваемых файлов. Помимо некоторых некатегоризированных форматов в начале, список форматов сгруппирован в категории форматов изображений, аудио, видео и документов, причем каждая категория имеет один формат «Undefined», за которым следуют конкретные форматы. Существует также супер-универсальный формат «Undefined object».
Jolla указала отсутствие поддержки WebM в MTP как одну из причин не поддерживать видеоформат в своей мобильной операционной системе Sailfish OS . Неясно, связано ли ограничение с инструментами или спецификацией, за исключением того, что WebM не определен спецификацией MTP 1.1. [16] [ ненадежный источник? ] [17]
Эти функции можно использовать в качестве более эффективной альтернативы передаче целых файлов и повторным загрузкам:
Из спецификации MTP 1.1: [5]
Согласно go-mtpfs: [12]
MTP поддерживается в Windows XP , если установлен Windows Media Player 10 или более поздние версии. Windows Vista и более поздние версии имеют встроенную поддержку MTP. Для более старых версий Windows, в частности, Windows 2000, Windows 98 и Windows Me, Microsoft выпустила MTP Porting Kit. [18] который содержит драйвер устройства MTP. Некоторые производители, такие как Creative Technology , также предоставляют устаревшие драйверы MTP для некоторых своих плееров; они обычно состоят из файлов MTP Porting Kit с настроенным INF-файлом, описывающим их конкретные плееры. [ необходима цитата ]
Windows не назначает буквы дисков или пути UNC устройствам, подключенным через MTP; вместо этого они отображаются как именованные устройства только в приложениях, поддерживающих MTP, таких как Windows Explorer . По сравнению с устройствами, реализующими USB-накопитель, к таким устройствам нельзя получить программный доступ с помощью скриптов или обычных программ Windows, которые зависят от букв дисков или путей UNC. Вместо этого файлы должны обрабатываться с помощью Windows Explorer или приложений со специально написанной поддержкой MTP.
В Windows устройства, совместимые с MTP, поддерживают функцию под названием Auto Sync, которая позволяет пользователям настраивать Windows Media Player для автоматической передачи всего скопированного или нового контента на устройства при каждом подключении — при условии, что контент совместим с Windows Media Player. Auto Sync настраивается так, что проигрыватель будет передавать только контент, отвечающий определенным критериям (например, песни с рейтингом четыре звезды или выше). Изменения, внесенные в свойства файла (такие как рейтинг пользователя и количество воспроизведений файла) на устройстве, могут быть распространены обратно на компьютер при повторном подключении устройства.
Копии файлов, к которым осуществляется доступ через MTP, могут оставаться на хост-компьютере даже после перезагрузки, [ требуется ссылка ] , где они будут доступны для учетной записи пользователя, которая к ним обратилась, а также для любых других учетных записей пользователей, которые могут читать файлы этой учетной записи пользователя, включая любых административных пользователей. Платформа датчиков Windows 7 поддерживает датчики, встроенные в устройства, совместимые с MTP. [19]
В реализации MTP, используемой в проводнике Windows, файлы из выборки , перемещенные из хранилища мобильного устройства, возможно, с целью освобождения места, не удаляются из источника по отдельности после каждого файла, а вместо этого вся выборка удаляется из источника сразу и только после завершения передачи.
В результате несвоевременное прерывание перемещения файлов (вручную или неожиданно) не приведет к освобождению места на исходном устройстве. [20] [21]
Бесплатная и открытая реализация протокола передачи мультимедиа доступна как libmtp. [22] Эта библиотека включает в себя идентификаторы продуктов и устройств из многих источников, [14] и обычно используется в другом программном обеспечении для поддержки MTP.
Приложения GNOME , такие как GNOME Files (ранее называвшийся Nautilus) и Archive Manager (ранее называвшийся File-Roller), используют GVfs на основе GIO для доступа к файлам на устройствах MTP. Надлежащая поддержка MTP была добавлена в GVfs в версии 1.15.2 (2013-01-15) [23] Филиппом Лэнгдейлом. [24] [25] Доступны ранние исправления для GVfs, позволяющие использовать расширения прямого ввода-вывода Google. [26]
Проект KDE разрабатывает MTP KIO Slave с уровнем интеграции, аналогичным GVfs.
Не имеющий отношения к GNOME или KDE графический медиаплеер *NIX с поддержкой MTP — gMTP.
Несколько инструментов предоставляют файловую систему на основе FUSE для монтирования устройств MTP в иерархии файловой системы Unix, что делает ее доступной для любой программы, работающей с файлами и каталогами.
macOS имеет встроенную поддержку MTP (через приложение "Image Capture" [27] ), но нет (сторонних) драйверов для монтирования устройств MTP в качестве дисков. Также для Mac OS X v10.5 и более поздних версий доступно несколько сторонних приложений для передачи файлов:
Более поздние версии нескольких операционных систем, включая AmigaOS , Android , AROS , MorphOS и Symbian OS , поддерживают MTP, иногда с дополнительными драйверами или программным обеспечением.
Недостатком устройств MTP на Android по сравнению с USB-накопителями является то, что хотя временные метки файлов сохраняются при копировании файлов с устройства Android на компьютер, при копировании в обратном направлении временные метки изменения файла заменяются временем, когда было выполнено копирование. [34] [35]
Компании, включая Creative Technology, Intel , iriver и Samsung Electronics , которые производят устройства на основе спецификации Microsoft Portable Media Center , широко приняли MTP. Поддерживающие устройства были представлены на выставке Consumer Electronics Show 2004 года .
После первоначального периода неопределенной реакции несколько крупных производителей медиаплееров, таких как Creative Technology и iriver, приняли протокол MTP вместо своих собственных протоколов.
Многие устройства и аудиоприложения поддерживают MTP.
{{cite web}}
: CS1 maint: unfit URL (link)Устройствам нужны разные PID для каждого альтернативного интерфейса из-за стека USB Windows.