Conectar un Android 4.0 o superior vía MTP en Linux

Gabolonte Blasfemus

Android USBPara quien lo haya intentado alguna vez, puede sonar a una misión imposible. El origen de todo ya lo habíamos hablado, y tiene que ver con una decisión que tomó el equipo de desarrollo: En Android no existe más el USB Mass Storage (abreviado UMS), que es el mismo estándar que nos permite ver en cualquier equipo de escritorio, o incluso en algunas tablets y smartphones, el contenido de un pen drive o disco USB ni bien lo enchufamos, como si fuese una unidad de disco más. También sigue siendo el método preferido para ver los contenidos de muchos celulares y smartphones, al menos dejando a un lado a iOS y a Android 4.x, ya que es totalmente compatible con cualquier sistema operativo de PC moderno. ¿El reemplazo? MTP y PTP, dos protocolos de transferencia muy parecidos, ya que PTP se hizo para transferir imágenes desde cámaras digitales y MTP es una versión extendida creada por Microsoft para usarse en reproductores de música; en Android se puede elegir entre usar uno u el otro y es básicamente lo mismo, aunque por defecto se activa MTP.

Pero MTP/PTP tiene algunos pequeños detalles, porque además de que en Windows los dispositivos que lo utilicen no aparecen mapeados como verdaderas unidades de disco del sistema (lo que hace que no se los pueda acceder desde administradores de archivos como Total Commander, sólo desde el Explorador de Windows), el peor problema es la compatibilidad: Sólo en Windows existe compatibilidad nativa, gracias a la cual podemos conectar un androide y ver inmediatamente su contenido. En una Mac habrá que descargar y utilizar una aplicación que felizmente hizo Google para tal efecto, ya que sino jamás funcionaría. Y el camino nos deja finalmente en la tierra de las distros Linux, donde Google no se molestó en absoluto por que exista alguna forma fácil de conectar un Android.

Por supuesto, ante esta situación entró en juego la comunidad Linux, pero ahí el inconveniente radica en que existen varias soluciones, que al menos en la actualidad, están muy lejos de funcionar aceptablemente. Casi todas las recetas involucran la instalación de ciertas librerías para MTP y usar la línea de comandos para montar manualmente el dispositivo, algo bastante poco sexy para el usuario promedio. Pero lo verdaderamente preocupante es que, si alguna vez funcionó, ya no lo hace. También existen aplicaciones para ejecutar en la GUI que prometen acceso, pero debo decir que ninguna tuvo éxito en mis manos.

Se rumorea que la próxima versión 13.04 de Ubuntu, Raring Ringtail, tendrá un soporte nativo para MTP, y ya existen algunos tutoriales para injertar las librerías pertinentes en las versiones actuales de Ubuntu y conseguir lo mismo, pero con un éxito menor que moderado.

Finalmente, existe una forma, que puedo decir que funciona aceptablemente bien, para explorar los contenidos de nuestros Android en una PC con Linux. Se trata de una librería llamada go-mtpfs, hasta el momento, vuelvo a repetir, la única capaz en la realidad desde mi experiencia de efectivamente permitir ver los contenidos de un gadget Android vía MTP.

Si no usamos Ubuntu o algo similar, puede que necesitemos instalarla a la vieja y dura usanza, compilando y los fuentes y resolviendo manualmente las dependencias. Una de las formas, si sale sin errores, puede hacerse simplemente ejecutando los siguientes comandos:

sudo apt-get install golang fuse git-core libmtp-dev libfuse-dev
sudo adduser $USER fuse
mkdir /tmp/go
GOPATH=/tmp/go go get github.com/hanwen/go-mtpfs
sudo mv /tmp/go/bin/go-mtpfs /usr/bin/
mkdir ~/MyAndroid

La otra, aún más fácil, es utilizando los repositorios PPA de Web UPD8, que permiten la actualización automática junto al resto de los paquetes y además viene con un cómodo launcher asociado a un script para evitar tener que usar la línea de comandos en Unity. Este PPA sólo es compatible con las versiones 12.04, 12.10 y la próxima 13.04 de Ubuntu y derivados, aunque para la 13.04 (con suerte) ya no haría falta. Para poder instalarlo debemos ejecutar:

sudo add-apt-repository ppa:webupd8team/unstable
sudo apt-get update
sudo apt-get install go-mtpfs

Si estamos usando Ubuntu con Unity la forma más fácil de usar go-mtpfs es a través del launcher de Web UPD8, tal como lo muestra:

go-mtpfs-quicklists

Para eso debemos instalarlo por separado, ejecutando:

sudo apt-get install go-mtpfs-unity

En caso de que no usemos Unity deberemos recurrir nuevamente a la línea de comandos. Por ejemplo, al conectar mi Galaxy S3 a Linux Mint Nadia con el escritorio Mate, y luego de cerrar algunos mensajes de error relativos a no poder montar directamente el dispositivo, simplemente tipeo en la terminal:

go-mtpfs /media/MyAndroid

Con sólo eso ya tendremos acceso a Android por MTP desde el punto de montaje MyAndroid (el nombre del punto de montaje puede ser el que más nos guste) desde nuestro administrador de archivos de elección, en este caso desde Caja, el que incorpora Mate:

Acceso al contenido de Android en Linux Mint vía MTP

Luego de haber ejecutado el comando anterior, la terminal quedará tomada, e irá mostrando todas las operaciones que hagamos por MTP, como las transferencias de los diversos archivos del teléfono que visualicemos o copiemos.

 go-mtpfs mostrando transferencias en la terminal

Cuando ya sea tiempo de desconectar el teléfono deberemos abrir una nueva terminal para desmontarlo, y ejecutar:

fusermount -u /media/MyAndroid

Luego de eso podemos desconectar el dispositivo.


7 Responses to “Conectar un Android 4.0 o superior vía MTP en Linux”

  • Zurdo despachó:

    Desde KDE, a partir de la versión 4.10 se tiene soporte nativo para visualizar unidades mtp en dolphin


    Usando Google Chrome Google Chrome 26.0.1410.43 en Linux Linux
  • cobal despachó:

    muchas gracias !!!! ahora puedo usarlo con mi s3 y mi ubuntu 12.04 !!!


    Usando Google Chrome Google Chrome 26.0.1410.43 en Linux Linux
  • Javi despachó:

    Más fácil que todo eso, usar ‘gmtp’ que suele venir en los repositorios


    Usando Google Chrome Google Chrome 25.0.1364.160 en Linux Linux
  • andres despachó:

    Excelente aporte, de muchos que hay es el más fácil (nada como unos simples apt-get instal y listo) y efectivo, me funciono muy bien con Ubuntu LTS y android 4.0.


    Usando Mozilla Firefox Mozilla Firefox 20.0 en Ubuntu Linux Ubuntu Linux
  • carlos despachó:

    desde android existe una aplicacion gratis llamada “usb mass storage enabler” permite elegir entre usar el dispositivo como mtp o mass storage mode, haciendo visible la terjeta externa sd como si fuera un pendrive, eso si, debemos tener rooteado el dispositivo,


    Usando Mozilla Firefox Mozilla Firefox 32.0 en Linux Linux
    • Gabolonte Blasfemus despachó:

      Hola Carlos, muchas gracias por el aporte. Estuve mirando la app que mencionaste y, lamentablemente, parece que dejó de funcionar junto con otras como Easy UMS que comentaba en este post. Google hizo imposible este tipo de hack a partir de Android 4.1, lo cual es una pena porque hacía más flexible el pasar archivos a Android. Aunque usando MTP, que ahora está más o menos bien soportada de forma nativa por Ubuntu y derivados, tiene otras garantías, como por ej saber que desconectás el dispositivo y no te quedas con un dirty filesystem. Saludos.


      Usando Google Chrome Google Chrome 38.0.2125.104 en Linux Linux