¿Cómo puedo usar mi Galaxy Nexus como una unidad de almacenamiento USB externa?

29

Acabo de recibir el Galaxy Nexus y aprendí que no es compatible con el modo de almacenamiento masivo USB. Solo es compatible con MTP y PTP. Regularmente uso mi teléfono como unidad flash USB en el trabajo, así que esto es un problema. Puedo transferir archivos de un lado a otro con MTP, sin embargo , necesito editar archivos directamente en mi teléfono .

Me gustaría encontrar una manera de continuar usando el teléfono como una unidad externa y poder acceder a los archivos en el almacenamiento de mis teléfonos directamente sin transferir los archivos de un lado a otro, sin embargo, tengo varias restricciones: la red en mi trabajo no No está conectado a Internet, no tiene wifi y las computadoras no tienen Bluetooth y esto no va a cambiar. Idealmente, no tendría que instalar nada en la computadora, pero si no hay otras opciones, consideraría esto.

¿Hay algún truco o solución que me permita usar mi Galaxy Nexus como una unidad flash externa de la manera que describí?

¿Puedo crear una partición FAT montable por separado en el almacenamiento de los teléfonos a la que pueda acceder desde una computadora con Windows XP y a través del sistema operativo Android de la manera que sea posible con otros dispositivos que tienen tarjetas de almacenamiento externas?

El teléfono: es un Galaxy Nexus rooteado y desbloqueado en VZW y actualmente ejecuta CM9.

Mate
fuente
No estoy 100% seguro, pero creo que el núcleo de stock ni siquiera es capaz de hacerlo. necesitas un kernel del mercado de accesorios o solo una ROM personalizada para hacerlo. G Nexus GSM: guía de actualización completa para Cyanogenmod9 (4.0.4 atm, 4.1 CM10 aún se encuentra en una etapa muy temprana). Aquí hay una apk que también podría ayudar. Necesita raíz.
ce4
Gracias, ese hilo parece prometedor, excepto por esto . Espero que no sea cierto, de lo contrario tendré un GN a la venta.
Matt
2
Creo que no necesita necesariamente una tarjeta SD aparte para uso UMS, pero creo que no necesita una partición independiente (formato FAT) para que funcione, a la que encienden el fuego, que no tiene una ranura para tarjetas SD externa.
eldarerathis
1
Creo que necesita ampliar un poco sobre por qué MTP / PTP no es adecuado para su uso. A pesar del nombre, MTP puede transferir cualquier archivo arbitrario, no solo archivos multimedia. Las únicas operaciones que no puede hacer en MTP son aquellas que requieren acceso a nivel de bloque, por ejemplo, desfragmentar, formatear, particionar, etc.
Lie Ryan
No quiero transferir archivos, quiero editarlos en su ubicación en mi teléfono como si fuera una unidad flash. No creo que puedas hacer eso con mtp, ¿me equivoco?
Matt

Respuestas:

28

Respuesta corta:

Actualmente, no puede hacer uso de su dispositivo (cualquier dispositivo que se base en MTP) para actuar como un MSC, debido a las especificaciones del protocolo.

Elaborando

Para aclarar, Galaxy Nexus usa una partición masiva para todo el dispositivo, es como decir que: sistema, datos y tarjeta SD están todos juntos.

Se seleccionó MTP para Galaxy Nexus porque permite el uso de esta gran área de almacenamiento, que desde el punto de vista del sistema, asegura una mejor comunicación con los archivos, proporciona un sistema de archivos más seguro y da menos problemas de mantenimiento.

Por qué no puedes hacerlo de la manera que deseas:

No hay particiones separadas en Galaxy Nexus, solo una gran área de almacenamiento. Incluso emulando un sistema de archivos fat32, aún sería necesario poder traducir entre fat32 y ext4 a un nivel bajo. Esto es prácticamente imposible.

Si el Galaxy Nexus tuviera una partición, podría tener acceso a nivel de bloque y, por lo tanto, podría tener acceso de almacenamiento masivo.


Versión larga y aburrida:


Fondo corto

La clase de almacenamiento masivo (MSC), comúnmente conocida como almacenamiento masivo USB (UMS), que todos estamos acostumbrados a usar en nuestros dispositivos, es un protocolo que permite que un dispositivo de bus serie universal (USB) sea accesible para un dispositivo informático host , para habilitar transferencias de archivos entre los dos. En los días dorados, uno solo necesitaba enchufar el teléfono, presionar "Modo USB" y comenzar a mover archivos, editar archivos, etc.


Protocolo de transferencia de medios (MTP)

Las cosas han cambiado mucho, cuando hablamos del nuevo método de transferencia que se está utilizando en su dispositivo, el Protocolo de transferencia de medios (MTP):

1 Introducción vea la página 15 zip a continuación

El Protocolo de transferencia de medios, o MTP, es un protocolo diseñado para el intercambio de contenido y el comando y control de dispositivos de almacenamiento transitorio. Fue desarrollado como una extensión de PTP, o Protocolo de transferencia de imágenes, y está dirigido principalmente a cámaras digitales, reproductores multimedia portátiles y teléfonos celulares.

Si bien la introducción aún deja margen para la duda, este protocolo fue desarrollado e implementado con un propósito muy específico: facilitar la transferencia de archivos multimedia y metadatos asociados entre dispositivos:

1.1 Propósito ver página 15 zip abajo

El propósito principal de este protocolo es facilitar la comunicación entre dispositivos de medios que tienen conectividad transitoria y una capacidad de almacenamiento significativa. Esto incluye el intercambio de objetos binarios y la enumeración de los contenidos de ese dispositivo conectado.


Tipos de archivo compatibles?

En este punto, ya sabemos que esto es para archivos multimedia y dispositivos basados ​​en medios, pero una pregunta que he visto en los comentarios sigue siendo: ¿podemos copiar archivos que no sean archivos multimedia (audio / video)? Si podemos:

1.3 Modelo de objetos MTP, consulte la página 15 zip a continuación

El término "medios" en el "Protocolo de transferencia de medios" se utiliza para identificar datos binarios, y no se limita a los formatos de audio / video a los que se aplica comúnmente. Algunos ejemplos de objetos que no son de audio / video incluyen contactos, programas, eventos programados y archivos de texto.


¿Qué pasa con "edición en vivo"?

Su pregunta se refiere especialmente al uso de su dispositivo (Galaxy Nexus) como una unidad de almacenamiento USB externa. ¿Por qué no se puede hacer? El protocolo MTP limita los datos a una operación unidireccional, también explicó que el almacenamiento del dispositivo es utilizado por la computadora como un archivo local:

4.2 Flujo de datos unidireccionales ver página 29 zip a continuación

El flujo de datos en MTP es siempre unidireccional. Al iniciar una operación, los datos fluyen solo del Iniciador al Respondedor. Al responder a la operación solicitada, los datos fluyen solo del Respondedor al Iniciador. Durante la fase de intercambio de datos binarios, los datos pueden fluir del Respondedor al Iniciador o del Iniciador al Respondedor, pero nunca ambos. El intercambio bidireccional de datos binarios debe realizarse mediante múltiples operaciones.


Ventajas vs inconvenientes

Ventajas

El MTP tiene algunas ventajas, principalmente en relación con la seguridad e integridad de los datos del usuario:

Descripción general de implementación de Microsoft MTP

Cuando una computadora host USB ha montado una partición MSC, asume el control absoluto del almacenamiento, lo que permite, por ejemplo, que el sistema de archivos se corrompa o se formatee a un tipo no compatible.

Mientras tanto, el MTP supera esto al convertir la unidad de almacenamiento administrado en un archivo local que se puede escribir o leer.

Inconvenientes

El MTP no se trata como una unidad extraíble tradicional, por lo que no se pueden utilizar herramientas de recuperación para salvar el día.

El soporte todavía está en marcha, algunos sistemas operativos aún requieren software de terceros.

Los estándares MTP (como se mencionó anteriormente) no permiten la modificación directa de objetos. En cambio, los objetos modificados se deben volver a cargar en su totalidad.


Referencias

Espero que esto aclare por qué MTP es bueno (mejora) , pero OTOH malo (el usuario tendrá que cambiar los hábitos) .

Aquí está el material de lectura utilizado para sintetizar la respuesta:

La respuesta anterior se acredita a los contenidos y autores de estos enlaces de referencia.

Zuul
fuente
3
Aprecio la descripción muy detallada de mtp, sin embargo, ya he aceptado el hecho de que no puedo usar mtp como quiero. Lo que me interesa es encontrar una forma de evitar la limitación. Por ejemplo, volver a particionar el almacenamiento interno para crear una partición montable separada. ¿Alguna sugerencia sobre cómo puedo sortear las limitaciones de mtp?
Matt
@Matt El comentario se estaba volviendo demasiado grande, agregué una aclaración en la sección de "respuesta corta". Lo siento si no me dejé claro antes.
Zuul
Gracias por la información agregada, pero nuevamente ya estaba al tanto de la mayoría de esto. Lo que me interesa saber es, a falta de otras soluciones, ¿se puede volver a particionar el teléfono con una partición FAT separada que admita UMS? ¿Si es así, cómo?
Matt
Terminé otorgando la recompensa a ce4 porque su código era lo más parecido a una solución, pero gracias por la información detallada y la ayuda que nos brindó.
Matt
7

Es posible exportar un archivo de imagen en bucle a través de USB como UMS / MSC.

Definitivamente necesitarás:

  • raíz
  • soporte de kernel : loopback (/ dev / block / loop0) y UMS (/ sys / devices / platform / usb_mass_storage /)
  • aplicación personalizada para habilitar / deshabilitar esto o un script de inicio personalizado para exportar siempre el archivo de imagen
    Aquí hay un ejemplo para una aplicación fácil de hackear, aunque se necesita un poco de desarrollo ... Se necesita cambiar el dispositivo de bloqueo predeterminado (/ dev / block / mmcblk0pX ) al loop0 y también perder el loop0 de antemano, luego construir. Además, podría ser posible montarlo en el dispositivo Android si no se exporta, por ejemplo, en / sdcard / fat

Aquí hay una breve prueba en mi Galaxy Nexus (en modo de recuperación):

#create a 10mb image file and format it with FAT, name it testFat:
me@workstation:~$ dd if=/dev/zero of=/tmp/fat.img count=10 bs=1M
10+0 records in
10+0 records out
10485760 Bytes (10 MB) copied, 0,00699535 s, 1,5 GB/s
me@workstation:~$ mkfs.vfat -n fatTest /tmp/fat.img 
mkfs.vfat 3.0.9 (31 Jan 2010)
me@workstation:~$ file /tmp/fat.img
/tmp/fat.img: x86 boot sector, [...], label: "fatTest    ", FAT (16 bit)

#Push it to my phone, create loop0 from it and export it via UMS
me@workstation:~$ adb push /tmp/fat.img /sdcard/fat.img
5215 KB/s (10485760 bytes in 1.963s)
me@workstation:~$ adb shell
root@android # ls /sys/devices/platform/usb_mass_storage/lun0
file    power   ro      uevent
root@android # losetup /dev/block/loop0 /sdcard/fat.img
root@android # losetup
/dev/block/loop0: 0 /sdcard/fat.img
root@android # echo /dev/block/loop0 > /sys/devices/platform/usb_mass_storage/lun0/file 
root@android # exit

#See that it works. Yay!
me@workstation:~$ 
me@workstation:~$ mount
[...]
/dev/sdg on /media/fatTest type vfat (rw,nosuid,nodev,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush,uhelper=udisks)
me@workstation:~$ dmesg
[137805.009285] sd 27:0:0:0: [sdg] 20480 512-byte logical blocks: (10.4 MB/10.0 MiB)
[137805.010024] sd 27:0:0:0: [sdg] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[137805.013446]  sdg:
me@workstation:~$
ce4
fuente
No tengo ningún dispositivo de prueba (GNexus) a mano en este momento, ¿alguien sería tan amable y miraría si UMS está incluido en CM9? Solo vea si esto está disponible: / sys / devices / platform / usb_mass_storage / lun0 / file
ce4
1
A principios de CM10 no parece, así que supongo que CM9 tampoco.
eldarerathis
@eldarerathis: ¡Gracias por mirar! Podría compilarse en un kernel diferente o uno tendría que habilitarlo para que funcione.
ce4
@ ce4 Esto parece prometedor, pero me encantaría ver más detalles que expliquen cómo lograr esto. ¿Está volviendo a particionar el almacenamiento del teléfono de forma permanente o es un tipo diferente de solución? ¿Hay algún inconveniente en este método, como la integridad del sistema de archivos?
Matt
Yo uso mi teléfono como una unidad flash. Lo conecto a una computadora compartida en el trabajo, edito un documento, luego lo guardo y listo. Transferir el archivo a la computadora y viceversa realmente no funciona para mí. Entraré en el chat un poco más tarde.
Matt
3

Esta es la versión TL; DR.

Lo sentimos, el almacenamiento masivo USB es simplemente imposible con el Galaxy Nexus.

La razón de esto es que el almacenamiento masivo USB brinda a la PC acceso de nivel de bloque al sistema de archivos, y para mantener la integridad del sistema de archivos, debe ser un acceso exclusivo. Esta es la razón por la cual los teléfonos Android desmontan la tarjeta SD y las aplicaciones no pueden usar datos en la tarjeta SD mientras el teléfono está en modo de almacenamiento masivo USB.

El Galaxy Nexus, sin embargo, no tiene una tarjeta SD. Se está accediendo al voluminoso almacenamiento interno del teléfono.

MTP (vea la excelente explicación de @ Zuul) lo soluciona y permite que tanto el teléfono como la PC accedan a los archivos sin tener que bloquear el teléfono. Lo malo es que no obtienes acceso exclusivo a nivel de bloque, y el soporte del sistema operativo para MTP aún no está ahí.

Si esta es una característica sin la cual simplemente no puede vivir, entonces su mejor opción es usar un teléfono diferente. No es coincidencia, esta es una de las razones por las que me deshice del Galaxy Nexus y obtuve un DROID RAZR MAXX.

Michael Hampton
fuente
1
"Esta es la razón por la cual los teléfonos Android desmontan la tarjeta SD ..." ¿Qué pasa con las aplicaciones que permiten el montaje dual del sd (y el almacenamiento interno) en la computadora y el sistema operativo Android simultáneamente? Tenía una aplicación de este tipo en mi Rezound y funcionó bastante bien.
Matt
Nunca he oído hablar de ninguna aplicación como esa. ¿Tienes evidencia de su existencia?
Michael Hampton
¡Eso sonó muy duro! google.hu/…
RR
1
¿Y nunca perdiste ningún dato? Eres muy afortunado, entonces.
Michael Hampton
3
Sí, eso es exactamente por qué el sistema no lo permite en primer lugar.
Michael Hampton
1

Parece que AOKP JB build 4 tiene:

"Emulación de almacenamiento masivo USB para ciertos dispositivos (i9 *)"

Todavía no lo he usado.

Ηλίας
fuente
0

Puede probar esta aplicación XDA-Developers :

Nota: Esta aplicación se desarrolló en los primeros días de Ice Cream Sandwich Ports. En este momento, ninguno de los puertos tenía soporte nativo de almacenamiento masivo USB y, sin embargo, esta aplicación estaba pensada como una solución temporal para usar UMS. Por lo tanto, esta aplicación no será interesante para usted, a menos que el puerto ICS o JB que utilice aún no sea compatible con UMS de forma nativa. Si ese es el caso, aquí viene ayuda:

La aplicación se inicia automáticamente después de arrancar el dispositivo y detecta automáticamente cuándo se está conectando el dispositivo a través de USB a una computadora. Luego aparece una notificación en la barra de notificaciones y al tocar la notificación, abrirá una GUI para habilitar / deshabilitar el almacenamiento masivo USB; simplemente / casi como la característica original de UMS.

Suena bastante bien hasta ahora: solo su Galaxy Nexus no se menciona explícitamente en la lista de dispositivos compatibles conocidos. Esto no significa necesariamente que no funcionará, pero por el momento no se sabe. Debería valer la pena intentarlo.

Izzy
fuente
Esto ya ha sido discutido, ver los comentarios de OP. Por desgracia, también es un callejón sin salida. :(
ce4
No pude encontrar los comentarios a los que se refiere, pero si ya es una opción conocida, me disculpo. ¿Y "callejón sin salida" significa que ya no funciona? Oh dios, supongo que me salto las próximas actualizaciones;)
Izzy
¡Sin ofender! :) se refería más a "FYI". El "aquí hay un apk" se refiere al mismo hilo que su enlace XDA.
ce4
Tuvimos una conversación bastante larga en el chat principal de Android sobre eso. No sé si hay una historia lo suficientemente larga, pero tiene más información si aún puede acceder a ella
ce4
Gracias por la información, ce4: desafortunadamente, actualmente pierdo el tiempo para profundizar en ella. Solo veo que MTP aún no está tan completo como debería estar para desactivar UMS por completo, así que estaba bastante seguro de que todavía debe haber una solución disponible. Y recordé algunos hilos sobre habilitar UMS nuevamente en ICS y hasta. Esperemos que haya algo pronto, ya que MTP parece no ser la respuesta para todos.
Izzy