El Protocolo de transferencia de medios ( MTP ) es una extensión del protocolo de comunicaciones del Protocolo de transferencia de imágenes (PTP) que permite que los archivos de medios se transfieran automáticamente desde y hacia dispositivos portátiles. [1] Mientras que PTP fue diseñado para descargar fotografías de cámaras digitales , el Protocolo de transferencia de medios permite la transferencia de archivos de música en reproductores de audio digital y archivos de medios en reproductores de medios portátiles , así como información personal en asistentes digitales personales . MTP es una parte clave de WMDRM 10-PD, [1] una gestión de derechos digitales(DRM) para la plataforma Windows Media . En 2011, se convirtió en el método estándar para transferir archivos desde / hacia Android. [2]
MTP es parte del marco "Windows Media" y, por lo tanto, está estrechamente relacionado con Windows Media Player . Las versiones del sistema operativo Microsoft Windows de Windows XP SP2 admiten MTP. Windows XP requiere Windows Media Player 10 o superior; [3] Las versiones posteriores de Windows tienen soporte integrado. Microsoft también ha puesto a disposición un kit de portabilidad MTP para versiones anteriores de Windows a Windows 98 .
El grupo de trabajo de dispositivos USB Implementers Forum estandarizó MTP como una clase de dispositivo Universal Serial Bus (USB) en mayo de 2008. [4] Desde entonces, MTP es una extensión oficial de PTP y comparte el mismo código de clase. [5]
Descripción general
El propósito principal de este protocolo es permitir solo la transferencia de archivos multimedia y metadatos asociados hacia y desde dispositivos portátiles, una función de transferencia, dentro o fuera, a la vez. No admite operaciones como abrir, editar y modificar. Una solución alternativa es copiar al sistema de alojamiento para estas operaciones y luego volver a copiar. Un dispositivo móvil que funciona con batería puede informar su nivel de carga de la batería a través de MTP. [6]
El protocolo se implementó originalmente para su uso a través de USB, pero se extendió para su uso a través de TCP / IP y Bluetooth . Windows Vista admite MTP sobre TCP / IP. Windows 7 y Windows Vista con Platform Update para Windows Vista también admiten MTP a través de Bluetooth. [7] El host que se conecta a un dispositivo MTP se denomina Iniciador MTP, mientras que el dispositivo en sí es un Respondedor MTP . [8]
Una razón principal para usar MTP en lugar de, por ejemplo, la clase de dispositivo de almacenamiento masivo USB (MSC) es que este último opera en la granularidad de un bloque de dispositivo de almacenamiento masivo (generalmente en la práctica, un bloque FAT ), en lugar de en la nivel de archivo lógico. En otras palabras, la clase de almacenamiento masivo USB está diseñada para brindar a una computadora host acceso indiferenciado al almacenamiento masivo masivo, como la memoria flash compacta , en lugar de a un sistema de archivos, que podría compartirse de manera segura con el dispositivo de destino (excepto para archivos específicos que el host podría estar modificando / accediendo). En la práctica, por lo tanto, cuando una computadora host USB ha montado una partición MSC, asume el control absoluto del almacenamiento, que luego no puede ser modificado de manera segura por el dispositivo sin riesgo de corrupción de datos hasta que la computadora host haya cortado la conexión. Además, debido a que la computadora host tiene control total sobre el dispositivo de almacenamiento conectado, existe el riesgo de que la computadora host dañe el sistema de archivos, lo reformatee a un sistema de archivos no compatible con el dispositivo USB o lo modifique de otra manera. que el dispositivo USB no puede entenderlo completamente.
MTP y PTP resuelven específicamente este problema al hacer que la unidad de almacenamiento administrado sea un archivo local en lugar de una unidad completa (posiblemente muy grande) de almacenamiento masivo a nivel de bloque. De esta manera, MTP funciona como un sistema de archivos transaccional : se escribe / lee todo el archivo o no se lee nada. El medio de almacenamiento no se ve afectado por transferencias fallidas.
Cuando el dispositivo mantiene una base de datos / índice del contenido del disco, MTP ahorra el costo de volver a escanear todo el disco cada vez que se modifica el contenido.
Además, el MTP permite a los iniciadores de MTP identificar las capacidades específicas de los dispositivos con respecto a los formatos de archivo y la funcionalidad. En particular, los iniciadores de MTP pueden tener que proporcionar contraseñas y otra información para desbloquear archivos o habilitar la gestión de derechos digitales . No hay nada específico de esta naturaleza en el estándar básico, pero las funciones están disponibles a través de extensiones de proveedores. MTPZ, la extensión Zune para MTP niega específicamente el acceso a los archivos hasta que se haya procesado la autenticación, lo que solo es posible con Windows Media Player 10 o superior.
Comparación con el almacenamiento masivo USB
Las ventajas de MTP están marcadas con " (+) " mientras que las desventajas están marcadas con " (-) ".
Orientado a archivos en lugar de protocolo orientado a bloques
Al no exponer el sistema de archivos y el índice de metadatos, la integridad de estos está en total control del dispositivo.
- (+) No hay riesgo de corrupción del sistema de archivos si desconecta el dispositivo mientras escribe. Las transferencias de archivos son atómicas y no es necesario que el usuario desmonte explícitamente el sistema de archivos ("eliminación segura").
- El dispositivo puede acceder a su propio sistema de archivos mientras está conectado:
- (+) Se puede evitar la reindexación después de desconectar. También ayudó la inclusión de metadatos con la transferencia.
- (+) No es necesario un sistema de archivos separado para la exposición del host. Esto evita la inflexibilidad de reservar una partición de tamaño fijo para este sistema de archivos.
- (+) El host no necesita admitir el sistema de archivos del dispositivo. Por el contrario, el fabricante del dispositivo tiene la libertad de elegir un sistema de archivos (generalmente un sistema de archivos Linux no compatible con Windows ) que no sea la familia de sistemas de archivos FAT ampliamente admitida .
- (-) Las herramientas de recuperación y eliminación del sistema de archivos en la computadora no se pueden usar, porque MTP no ofrece acceso a nivel de bloque.
- (-) Muchos dispositivos conectados a MTP, particularmente los más antiguos, no exponen las marcas de tiempo de los archivos a través del protocolo, lo que hace que se pierdan cuando los archivos se copian / mueven hacia o desde una computadora. Los archivos como las fotos JPEG con datos Exif incrustados todavía tienen marcas de tiempo internamente (y existen utilidades para restaurar las marcas de tiempo de los archivos basadas en estas), pero esta solución alternativa no está disponible para otros tipos de archivos sin esos metadatos internos.
Actuación
- (-) Las operaciones MTP no se pueden multiplexar: cualquier operación en curso debe completarse o cancelarse antes de que pueda comenzar otra operación. A diferencia del almacenamiento masivo USB , donde el sistema operativo host es libre de multiplexar transferencias de bloques y las operaciones lógicas son un fenómeno emergente, las operaciones admitidas por MTP son más generales, como la transferencia de archivos completos. Ningún protocolo es paralelo o asíncrono por sí mismo (aparte de la extensión UAS del almacenamiento masivo USB, que agrega múltiples colas de comandos).
- (-) Soporte limitado para transferir partes de archivos, como bloques o rangos de bytes (ver § Funciones de modificación directa y transferencia parcial ).
- (-) Soporte limitado para la modificación directa de archivos (ver § Funciones de modificación directa y transferencia parcial ). Para modificar un archivo o sus metadatos, es posible que sea necesario copiar todo el archivo del dispositivo y volver a cargarlo, lo que lleva mucho tiempo para un archivo o directorio grande y, mientras tanto, bloquea el dispositivo para otras operaciones. La implementación de MTP de Google en Android incluye extensiones para hacer frente a esta limitación; sin embargo, estas extensiones deben ser compatibles con el sistema operativo del host. [9] [10]
- (-) La carga de listas de archivos más largas (miles de elementos) y la "preparación" para la transferencia de archivos puede llevar más tiempo que la transferencia de archivos en sí.
Transparencia al software que no reconoce MTP
(-) Windows no asigna letras de unidad o rutas UNC a los dispositivos MTP porque no los expone de forma nativa como sistemas de archivos virtuales . Sin letras de unidad o rutas UNC, el software que no reconoce MTP no puede acceder a directorios o archivos en estos dispositivos. El usuario tiene que cambiar a una aplicación MTP-conscientes, o de lo contrario el trabajo alrededor mediante el uso de una aplicación MTP-conscientes como Windows Explorer para copiar o mover el archivo a un sistema de archivos que el acceso a las aplicaciones lata.
Una preocupación específica es que el software antivirus en la computadora host puede no ser consciente de los dispositivos MTP, lo que los hace potencialmente menos seguros que los dispositivos de almacenamiento masivo (aunque si los archivos en los dispositivos MTP se copian o se mueven al host antes de su uso, el software antivirus que no reconoce MTP tendrá la oportunidad de escanearlos). [ cita requerida ] El análisis antivirus también puede ser poco práctico debido al bloqueo del uso regular del dispositivo.
Los conductores conocen un conjunto fijo de dispositivos compatibles
(-) A pesar de la identificación por la clase de dispositivo USB PTP / MTP , la documentación de libmtp indica que la combinación de ID de producto y proveedor juega un papel funcional en la identificación de un dispositivo MTP, también por los controladores de Windows. [11] Libmtp incluye una amplia lista de proveedores y números de identificación de productos de los dispositivos que admite, junto con soluciones para errores. [12] [13] Esta metodología no genérica dificulta la compatibilidad de los controladores MTP con los nuevos dispositivos.
La especificación conoce un conjunto fijo de formatos de archivo definidos
La especificación MTP incluye una enumeración de formatos de archivo, denominada formato de objeto . [5] El uso de esta enumeración es para comunicar formatos de archivo compatibles y formatos de archivos transferidos. Aparte de algunos formatos no categorizados al principio, la lista de formatos está agrupada en categorías de formatos de imagen, audio, video y documento, y cada categoría tiene un formato "Indefinido" seguido de formatos específicos. También hay un formato supergenérico de "objeto indefinido".
Jolla citó la falta de compatibilidad con WebM en MTP como una razón para no admitir el formato de video en su sistema operativo móvil Sailfish OS . No está claro si la limitación está en las herramientas o en la especificación, aparte de que WebM no está definido por la especificación MTP 1.1. [14] [ fuente no confiable? ]
Funciones de modificación directa y transferencia parcial
Estas funciones se pueden utilizar como alternativas más eficientes a las transferencias y recargas de archivos completos:
De la especificación MTP 1.1: [5]
Código de operación | Nombre de la operación | Explicación |
---|---|---|
0x9805 | GetObjectPropList | Transferencia de metadatos |
0x9806 | SetObjectPropList | |
0x1019 | MoveObject | Cambiar el nombre de un archivo o directorio |
0x101B | GetPartialObject | Solicitar un rango de bytes de un archivo |
Extensiones de Android
Según go-mtpfs: [10]
Código de operación | Nombre de la operación | Explicación |
---|---|---|
0x95C1 | GetPartialObject64 | Igual que GetPartialObject , pero con desplazamiento de 64 bits |
0x95C2 | SendPartialObject | Igual que GetPartialObject64 , pero copiando el host al dispositivo |
0x95C3 | TruncateObject | Trunca el archivo a una longitud de 64 bits |
0x95C4 | BeginEditObject | Debe llamarse antes de usar SendPartialObject y TruncateObject |
0x95C5 | EndEditObject | Llamado para confirmar los cambios realizados por SendPartialObject y TruncateObject |
Soporte MTP
Ventanas
Adaptación en Windows
MTP es compatible con Windows XP si está instalado Windows Media Player 10 o versiones posteriores. Windows Vista y versiones posteriores tienen compatibilidad con MTP integrada. Para versiones anteriores de Windows, específicamente Windows 2000, Windows 98 y Windows Me, Microsoft ha lanzado el kit de migración MTP. [15] que contiene un controlador de dispositivo MTP. Algunos fabricantes, como Creative Technology , también proporcionan controladores MTP heredados para algunos de sus reproductores; por lo general, consisten en archivos MTP Porting Kit con un archivo INF personalizado que describe sus reproductores específicos. [ cita requerida ]
Soporte por software
Windows no asigna letras de unidad ni nombres de ruta UNC a dispositivos conectados a través de MTP; en su lugar, solo aparecen como dispositivos con nombre en aplicaciones compatibles con MTP, como el Explorador de Windows . En comparación con los dispositivos que implementan almacenamiento masivo USB, estos dispositivos no pueden ser accedidos mediante programación por scripts o programas normales de Windows que dependen de letras de unidad o rutas UNC. En su lugar, los archivos deben manipularse mediante el Explorador de Windows o aplicaciones con soporte MTP especialmente escrito.
En Windows, los dispositivos compatibles con MTP admiten una función llamada Auto Sync, que permite a los usuarios configurar Windows Media Player para transferir automáticamente todo el contenido copiado o recién adquirido a los dispositivos siempre que estén conectados, siempre que el contenido sea compatible con Windows Media Player. La sincronización automática se puede personalizar para que el reproductor transfiera solo contenido que cumpla con ciertos criterios (canciones con cuatro estrellas o más, por ejemplo). Los cambios realizados en las propiedades de los archivos (como la calificación del usuario y los recuentos de reproducción de archivos) en un dispositivo se pueden propagar a la computadora cuando se vuelve a conectar el dispositivo.
Las copias de los archivos a los que se accede a través de MTP pueden permanecer en la computadora host incluso después del reinicio, [ cita requerida ] donde serán accesibles para la cuenta de usuario que accedió a ellos, así como cualquier otra cuenta de usuario capaz de leer los archivos de esa cuenta de usuario, incluyendo cualquier usuarios administrativos. La plataforma de sensores de Windows 7 admite sensores integrados en dispositivos compatibles con MTP. [dieciséis]
Comportamiento de movimiento de archivos
En la implementación de MTP utilizada por el Explorador de Windows, los archivos de una selección que se movieron fuera del almacenamiento de un dispositivo móvil, quizás con el objetivo de liberar espacio, no se eliminan individualmente de la fuente después de cada archivo, sino que toda la selección se elimina en una vez desde la fuente solo después de que la transferencia haya finalizado.
Como resultado, los movimientos de archivos interrumpidos prematuramente, ya sea de forma manual o inesperada, no habrán liberado espacio en el dispositivo de origen. [17] [18]
Sistemas similares a Unix
Una implementación gratuita y de código abierto del Protocolo de transferencia de medios está disponible como libmtp. [19] Esta biblioteca incorpora ID de producto y dispositivo de muchas fuentes, [12] y se usa comúnmente en otro software para soporte MTP.
Gráfico
Las aplicaciones GNOME como GNOME Files (anteriormente llamado Nautilus) y Archive Manager (anteriormente llamado File-Roller) usan GVfs basados en GIO para acceder a archivos en dispositivos MTP. Philip Langdale agregó compatibilidad adecuada con MTP a GVfs en la versión 1.15.2 (15-01-2013) [20] . [21] [22] Los primeros parches para GVfs para habilitar las extensiones de E / S directas de Google están disponibles. [23]
El proyecto KDE desarrolla el MTP KIO Slave con un nivel de integración similar al de GVfs.
No relacionado con GNOME o KDE es el reproductor multimedia gráfico compatible con MTP * NIX, gMTP .
Sistema de archivos virtual
Varias herramientas proporcionan un sistema de archivos basado en FUSE para montar dispositivos MTP dentro de la jerarquía del sistema de archivos Unix, haciéndolo accesible a cualquier programa que opere en archivos y directorios. Los ejemplos incluyen mtpfs , jMTPFS , go-mtpfs y simple-mtpfs . [24]
Mac OS
macOS tiene soporte integrado para MTP (a través de la aplicación "Imágenes digitales") pero no tiene controladores (de terceros) para montar dispositivos MTP como unidades. También hay varias aplicaciones de transferencia de archivos de terceros disponibles para Mac OS X v10.5 y posteriores:
- Android File Transfer es un cliente MTP simple. [25]
- Transferencia de archivos de Android para Linux (y Mac OS X), código abierto, licencia GPL versión 3, interfaz de usuario gráfica, herramienta de línea de comandos, contenedor FUSE: montaje de su dispositivo, [26]
- XNJB también ofrece sincronización de listas de reproducción de iTunes. [27]
- SyncMate Expert afirma que también admite MTP además de otras tareas de sincronización. El soporte no se puede probar en la versión gratuita. [28]
- Commander One PRO Pack: administrador de archivos que permite montar dispositivos MTP en Mac y administrar su contenido. [29]
Otros sistemas operativos
Las versiones posteriores de varios sistemas operativos, incluidos AmigaOS , Android , AROS , MorphOS y Symbian OS son compatibles con MTP, a veces con controladores o software adicionales.
Una desventaja de los dispositivos MTP en Android en comparación con el almacenamiento masivo USB es que, aunque las marcas de tiempo de los archivos se conservan al copiar archivos desde el dispositivo Android a la computadora, al copiar en la otra dirección, las marcas de tiempo de modificación del archivo se reemplazan con la hora en que se realizó la copia. hecho. [30] [31]
Otros fabricantes
Las empresas, incluidas Creative Technology, Intel , iriver y Samsung Electronics , que fabrican dispositivos basados en la " especificación Portable Media Center " de Microsoft , han adoptado ampliamente MTP. Los dispositivos de apoyo se presentaron en el Consumer Electronics Show de 2004 .
Después de un período inicial de reacciones inciertas, varios grandes productores de reproductores multimedia como Creative Technology e iriver adoptaron el protocolo MTP en lugar de sus propios protocolos.
Muchos dispositivos y aplicaciones de software de audio admiten MTP.
Alternativas
- Almacenamiento masivo USB
- Almacenamiento conectado a la red (NAS)
Ver también
- Windows Media
- IEEE 1394 (Firewire)
Referencias
- ^ a b "Detalles de implementación del protocolo de transferencia de medios" . MTP definido en la diapositiva 3. Archivado desde el original el 14 de diciembre de 2005.CS1 maint: URL no apta ( enlace )
- ^ "Ice Cream Sandwich es compatible con el almacenamiento masivo USB después de todo, Galaxy Nexus no" . Engadget. 25 de noviembre de 2011. Archivado desde el original el 5 de febrero de 2020 . Consultado el 5 de enero de 2020 .
- ^ "La disponibilidad final de Windows Media Player 10 brinda más música y más opciones a los fanáticos de la música" (comunicado de prensa). Microsoft. 2 de septiembre de 2004. Archivado desde el original el 18 de octubre de 2019 . Consultado el 18 de octubre de 2019 .
- ^ "¿MTP, estándar de reproductor portátil? McLauchlan de Microsoft nos aclara" . 31 de julio de 2006. Archivado desde el original el 4 de agosto de 2016 . Consultado el 1 de junio de 2016 .
- ^ a b c "Media Transfer Protocol v.1.1 Spec y MTP v.1.1 Adopters Agreement" . 6 de abril de 2011. Archivado desde el original el 29 de septiembre de 2018 . Consultado el 29 de septiembre de 2018 .
- ^ "Miedo y asco en el Protocolo de transferencia de medios" (PDF) . eLinux . Conceptos básicos de PTP / MTP. Archivado (PDF) desde el original el 7 de febrero de 2021 . Consultado el 7 de febrero de 2021 .
- ^ "MTP sobre varios transportes" . Archivado desde el original el 1 de mayo de 2019 . Consultado el 1 de junio de 2016 .
- ^ "Especificación MTP" . Archivado desde el original el 4 de junio de 2011.
- ^ "¡Soporte normal de lectura / escritura de archivos con el backend GVFS MTP!" . 18 de febrero de 2013. Archivado desde el original el 14 de abril de 2016 . Consultado el 1 de junio de 2016 .
- ^ a b "hanwen / go-mtpfs" . Archivado desde el original el 7 de octubre de 2018 . Consultado el 1 de junio de 2016 .
- ^ "libmtp README" . 8 de julio de 2017. Archivado desde el original el 10 de agosto de 2016 . Consultado el 9 de julio de 2017 .
Los dispositivos necesitan diferentes PID para cada interfaz alternativa debido a la pila USB de Windows.
- ^ a b "código fuente de libmtp: music_players.h" . Archivado desde el original el 18 de noviembre de 2015 . Consultado el 26 de noviembre de 2015 .
- ^ "código fuente de libmtp: ptp.h" . Archivado desde el original el 8 de marzo de 2021 . Consultado el 9 de julio de 2017 .
- ^ "Soporte de Webm (VP8, VP9, Opus) para Sailfish - together.jolla.com" . Archivado desde el original el 4 de marzo de 2016 . Consultado el 1 de junio de 2016 .
- ^ "Kit de transferencia de protocolo de transferencia de medios" . Microsoft. Archivado desde el original el 8 de junio de 2016 . Consultado el 1 de junio de 2016 .
- ^ "Sensores y ventanas" . Blog del equipo de dispositivos portátiles de Windows . 17 de diciembre de 2009. Archivado desde el original el 18 de octubre de 2019 . Consultado el 18 de octubre de 2019 .
- ^ guenni (30 de agosto de 2017). "Windows 10 tiene un problema de MTP con los dispositivos Android | Born's Tech y Windows World" . borncity.com . Archivado desde el original el 27 de octubre de 2020 . Consultado el 27 de octubre de 2020 .
- ^ Leonhard, Woody (31 de agosto de 2017). "No use Windows 10 para mover datos en su teléfono Android" . Computerworld . Archivado desde el original el 27 de octubre de 2020 . Consultado el 27 de octubre de 2020 .
- ^ "libmtp" . Libmtp.sourceforge.net. Archivado desde el original el 2 de marzo de 2014 . Consultado el 15 de marzo de 2014 .
- ^ "gvfs-1.15.2.changes" . ftp.gnome.org. 15 de enero de 2013. Archivado desde el original el 29 de marzo de 2021 . Consultado el 6 de junio de 2013 .
- ^ "Backend nativo de gvfs para dispositivos MTP" . 7 de agosto de 2010. Archivado desde el original el 14 de abril de 2016 . Consultado el 1 de junio de 2016 .
- ^ "gvfs - Implementación de sistema de archivos virtual para GIO" . git se compromete a agregar el back-end MTP a GVfs. Archivado desde el original el 18 de octubre de 2019 . Consultado el 1 de junio de 2016 .
- ^ "Error 695984 - Agregar soporte para extensiones de E / S directa de Android" . Archivado desde el original el 23 de diciembre de 2014 . Consultado el 1 de junio de 2016 .
- ^ Arch Linux Wiki (1 de septiembre de 2014). "MTP" . Archivado desde el original el 10 de septiembre de 2014 . Consultado el 23 de octubre de 2014 .
- ^ "Transferencia de archivos de Android" . Android.com. Archivado desde el original el 29 de marzo de 2021 . Consultado el 15 de marzo de 2014 .
- ^ "Transferencia de archivos Android Linux Mac OS X" . whoozle. Archivado desde el original el 22 de febrero de 2017 . Consultado el 2 de diciembre de 2016 .
- ^ "XNJB" . Richard Low. Archivado desde el original el 25 de enero de 2021 . Consultado el 15 de junio de 2014 .
- ^ "SyncMate" . Software ELTIMA. Archivado desde el original el 19 de junio de 2014 . Consultado el 15 de junio de 2014 .
- ^ "Paquete Commander One PRO" . IvanK_Eltima. Archivado desde el original el 9 de abril de 2017 . Consultado el 20 de abril de 2017 .
- ^ "Problema 57065 - Android - Escribir archivos a través de MTP establece la fecha y la hora de las imágenes y los archivos a la fecha actual, no conserva la marca de tiempo. - Proyecto de código abierto de Android - Seguimiento de problemas - Alojamiento de proyectos de Google" . code.google.com . 30 de agosto de 2016. Archivado desde el original el 11 de octubre de 2016 . Consultado el 2 de septiembre de 2016 .
- ^ "Problema 18624 - android - setLastModified () siempre falla en Xoom a menos que se ejecute como root - Proyecto de código abierto de Android - Rastreador de problemas - Alojamiento de proyectos de Google" . code.google.com . 30 de agosto de 2016. Archivado desde el original el 18 de agosto de 2016 . Consultado el 2 de septiembre de 2016 .
enlaces externos
- Especificación MTP 1.1
- Artículo sobre la adopción de Canon en Wayback Machine (archivado el 20 de noviembre de 2008)
- MTP Qué, por qué, cómo. (Función de Android)
- Wiki de ArchLinux: Protocolo de transferencia de medios