Durante años pensé que el protocolo de comunicaciones MTP (Media Transfer Protocol) era una idea estupenda. La tecnología se desarrolló hace más de 15 años, y desde 2011 se ha convertido en el método estándar para transferir ficheros desde y hacia dispositivos Android.
Su funcionamiento es genial para la mayoría de los casos. Conectas tu (por ejemplo) móvil, Windows lo detecta, y lo puedes abrir en el explorador de ficheros como si fuese una unidad más para copiar ficheros de uno a otro lado. Hasta ahí todo bien.
Lo he usado mucho en Windows, y también lo he echado mucho de menos en mi Mac mini M1: macOS no tiene un soporte tan completo de MTP, así que hago uso de Android File Transfer, que es una app oficial de Google pero que, curiosamente, ha desaparecido de la web oficial.
El problema es que MTP fue creado para facilitar la conexión y transferencia de ficheros, pero no para que esas transferencias fueran rápidas. De hecho la velocidad es, sencillamente, una chusta.
Lo comprobé hace bien poquito, cuando quise pasar las 21.600 fotos que tenía en mi Huawei P40 Pro+ —acumuladas desde 2019, cuando compré el P30 Pro— a mi nuevo Pixel 8 Pro. Como conté en ese post, pasar esas fotos estaba siendo un infierno porque los Huawei son machinarum non gratae en el ecosistema Android. Google tiene una herramienta de migración fantástica que permite llevar todo lo de un viejo móvil al nuevo (fotos incluidas), pero no si este es un Huawei post-veto.
Tenía que buscarme las castañas porque quería seguir pudiendo tener esas 21.600 fotos (unos 90 GB) en el Pixel 8 Pro. Las tengo en otros lados, sí, pero además quería tenerlas en mi móvil. Manías mías, si queréis. La herramienta de Google de migración a sus Pixel no servía, así que probé con alguna otra. Phone Clone de Huawei tampoco me dejaba (esta vez el problema era el contrario, está pensada para que el Huawei sea siempre el destino, no el origen), y otras como ShareIt, que no iba del todo mal en velocidad, metía las fotos en una carpeta que no era la que yo quería y luego organizarlo todo era un follón. Por ahí nada, al menos con mis pruebas.
Así que probé a copiar todas las fotos con MTP al disco duro de mi PC, donde tenía suficiente espacio libre. Abrir la carpeta DCIM/Camera en el móvil ya lleva su tiempo —ahí ya se nota que MTP es lento— pero es que cuando empecé a copiarlas la cosa era terrible. Se tiraba dos o tres segundos por imagen, y la previsión oscilaba de las 7 a las 20 horas cuando empezó la operación, aunque seguramente al final hubiera acabado bastante antes. De todos modos no tenía muchas ganas de esperar tanto y corté. Tenía que haber otra forma.
¿Y con ADB? Pregunté al chatín a ver qué me decía.
La cosa prometía. Me puse manos a la obra y siguiendo sus instrucciones abrí una consola de comandos y me metí en la carpeta donde tenía ADB. Si no lo tenéis, aquí está el ZIP de 6,2 MB con la herramienta y sus componentes. No voy a detallar el proceso, que está explicado por todos lados —ya enlacé este pequeño pero fantástico tutorial— pero baste decir que las siete horas que se estimaban en el mejor de los casos con MTP se transformaron en unos 50 minutos en el caso de ADB. Maravilloso.
O no tanto, porque luego me daría cuenta de una cosa: cuando ejecuté el comando adb pull aún no había visto ese tutorial: precisamente lo encontré intentando averiguar por qué durante la copia no se habían preservado el modo y las marcas de tiempo de cada fichero. Y es justo porque no había puesto un flag clave en el proceso. Se trata del «-a», que preserva esas marcas de tiempo. El «-p», por cierto, es para mostrar el progreso. Así, no era
adb.exe pull «/sdcard/DCIM/Camera/ficheros*.jpg» «C:/carpeta-backup/»
sino
adb.exe pull -a -p «/sdcard/DCIM/Camera/ficheros*.jpg» «C:/carpeta-backup/»
No me di cuenta de eso hasta que fue demasiado tarde, y cuando copié luego las imágenes al pixel con el proceso inverso (adb.exe push), Google me colocó todas en el mismo día: el 10 de junio de 2024, que es cuando hice esa primera copia. Casi me da un telele.
Pero hete aquí que investigando un poco encontré ese pequeño tutorial, y además algo especialmente llamativo: no hacía falta liarse con la consola de comandos: hay utilidades que ofrecen una GUI (interfaz gráfica de usuario) para ADB. La primera que encontré, un pequeño proyectito en GitHub, no sirvió, pero buscando un poco más di con otra fabulosa: ADB Explorer.
El funcionamiento de la aplicación es sencillo. Hay que tener la «Depuración USB» activada en el móvil, por supuesto, y confirmar que quieres conectar el móvil con ADB al PC cuando lo conectas con cable y aparece el mensaje, pero a partir de ahí, todo es muy fácil… aunque no idéntico al explorador de Windows.
Al abrir ADB Explorer aparece una ventana parecida al Explorador de Windows en el que se mostrará tu dispositivo Android, probablemente con algún nombre raro. Si pinchas aparece la opción «Browse», que es la que hace que efectivamente se abra el árbol de directorios del móvil para navegar por él.
A partir de ahí puedes realizar operaciones de transferencia desde el móvil al PC o desde el PC al móvil, pero no exactamente igual que si las hicieras en el explorador. Los atajos tradicionales (Ctrl+C, Ctrl+V) no funcionan aquí, y hay que usar los dos botones de la parte superior que indican que copias desde el móvil o hacia el móvil.
Si seleccionas el primero, por ejemplo, se abrirá una ventana del Explorador de Windows para que selecciones una carpeta donde quieres copiar los ficheros del móvil. Si quieres hacer la operación contraria, primero debes situarte en la carpeta del móvil donde quieres copiar los ficheros, y luego dar al botón de copia desde el PC, donde podrás seleccionar los ficheros que quieres copiar. No es del todo intuitivo porque es algo distinto al explorador de Windows, pero como digo, es muy sencillo.
Y lo mejor de todo: las marcas de tiempo de los ficheros se mantienen, y el progreso de la operación se puede ver en una barrita azul que va progreseando justo debajo de los iconos de la barra de herramientas (no especialmente claro). Otra opción para ver cómo progresa es ir mirando en una ventana del Explorador de Ficheros de Windows cómo en la carpeta destino que habías elegido va aumentando el contador de ficheros copiados. No es ideal, pero algo es algo.
La pregunta, claro, es cómo de rápida es la copia con ADB frente a la copia con MTP. Como digo a mí me salió en esa primera transferencia que ADB mucho más rápida que MTP, pero para comprobarlo de nuevo he querido hacer otra prueba.
He conectado mi Huawei P40 Pro+ al PC y he querido hacer la misma operación de copia de archivos para ver cuánto tardaba MTP y cuánto ADB en dos variantes: una, desde la línea de comandos de Powershell, y otra desde ADB Explorer. Para ello he seleccionado 2.022 de los 21.600 ficheros de la carpeta Camera (los que tenía del año 2019, desde mediados de septiembre, cuando compré el P30 Pro), y los he movido a una carpeta de pruebas en el PC. En el caso de PowerShell, el comando (chivado por ChatGPT, por cierto) ha sido el siguiente:
& «C:\ADB\adb.exe» shell ls «/sdcard/DCIM/Camera/IMG_2019*.jpg» | ForEach-Object { & «C:\ADB\adb.exe» pull -a -p «$($_.Trim())» «C:\pruebasadb» }
Los tiempos fueron de 18 minutos y 13 segundos para MTP, y de 8 minutos y 33 segundos para ADB Explorer y 4 minutos y 50 segundos para ADB desde un comando de Powershell:
Según esta miniprueba, ADB Explorer es dos veces más rápido que MTP, pero es que desde la línea de comandos, por alguna razón, ganas aún más tiempo. Algo raro debe hacer ADB Explorer que no aprovecha toda la capacidad del protocolo, supongo. Mi impresión tras lo del otro día es que debería haber ido incluso más rápido, pero quizás la cosa se nota más solo si hay (bastantes) más ficheros en la transferencia. En mi caso por ejemplo al empezar a copiar los 21.600 el proceso era especialmente lento al principio, pero luego se iba acelerando ligeramente, como si le «costara menos» cuando quedaban menos ficheros. En esa prueba que he hecho la diferencia no parece tan grande, pero
Lo mejor de todo es que en apenas dos horas tenía todas las fotos copiadas del Huawei al móvil y del móvil al Pixel 8 Pro. Luego, eso sí, tocó hacer una última operación importante. En el Pixel 8 Pro tuve que ir a los ajustes, y en Aplicaciones seleccionar Google Fotos, detener la ejecución y borrar tanto la caché como los datos (con un par de toques ahí, a la primera no se borraron del todo, a saber por qué). Una vez hecho esto, lancé Google Fotos, que se inició como si fuera la primera vez, y en un pispas había indexado todas las fotos y las había dejado justo donde correspondían, en sus fechas exactas.
Qué gustirrinín. Y por el camino, algo que he aprendido. Si necesitáis transferir muchos ficheros, atentos, que ADB va (al menos) dos veces más rápido.
Que maravilla de post. Como dicen por otros lares «mis dieses».
Ves? una de las cosas que apple que me ata y a la vez me echa es su gestión de las fotos, no tienes esa preocupación de «donde están las cosas?» pero claro, ay amigo si tienes algún problema!
No es que no se puedan solucionar, es que la comunidad es infinitamente inferior, la comunidad avanzada me refiero, por el contrario en un tema como el que has sufrido tu, hay mucha comunidad detrás para preguntar y solventar y, eso es lo que mas echo de menos de android, el poder tirar de ese tipo de recursos, de poder «toquetear» mucho mas, el acceder a las entrañas de tu dispositivo mas valioso y útil.
Gracias! me has hecho pasar un buen rato con el pos! 😉
Gracias Víctor, me alegro de que te haya gustado. Y en cuanto a las comunidades, yo creo que habrá de todo, pero es cierto que la de Android quizás esté más curtida porque está más acostumbrada a meter mano en el terminal y hacer un poco de todo, cosa que Apple no permite fácilmente. No a todo el mundo le gusta eso, claro: de ahí que el iPhone tenga tanto éxito.
¡Saludos!