Tengo un teléfono que al conectarlo a un ordenador aparece como dispositivo MTP. La tarjeta SD y el almacenamiento interno son visibles en el ordenador. También puedo cambiarlo para que sólo monte la tarjeta SD y entonces desmonta la tarjeta SD del teléfono y la conecta directamente como si fuera un adaptador SD a USB.
Quiero poder hacer esto en otro teléfono, pero no con una tarjeta SD, quiero poder usar una parte de la memoria flash interna de la misma manera para poder conectar el teléfono como si fuera una memoria USB y también quiero poder conectarlo como un dispositivo MTP. Sería práctico si pudiera hacer esto con tmpfs también, así que básicamente puedo usar la RAM disponible del teléfono como almacenamiento USB temporal de alta velocidad.
La razón por la que quiero hacer esto es porque MTP es increíblemente lento para cargar los directorios, la transferencia de archivos es un poco más rápido, pero sigue siendo una fracción de lo que USB 2.0 puede lograr. Quiero usar la RAM para que el almacenamiento interno no se vea afectado y se llene sin razón ya que el teléfono no tiene tanto almacenamiento libre. En el otro teléfono, conectarlo en modo adaptador de tarjeta SD hace que Windows lo vea como una tarjeta sd real por lo que Windows no abre el almacenamiento en modo MTP que pierde las propiedades de los archivos y es super lento. Otra razón para usar RAM es que el almacenamiento interno no se puede desmontar mientras Android se está ejecutando en el teléfono por lo que no sería capaz de utilizarlo como almacenamiento USB en cualquier cosa que no sea MTP.
¿Hay alguna forma de hacerlo utilizando busybox, o modificando algunos archivos del sistema?
Sé que esto tiene que ser posible, pero no sé cómo funciona con el modo de adaptador de tarjeta SD en el teléfono ohter y no sé cómo replicarlo para otros medios de almacenamiento. El teléfono está rooteado por lo que puedo hacer lo que quiera en el sistema. Preferiblemente en Android 4 y superiores. ¿Cómo puedo lograr tal resultado?
- Actualización
He conseguido que UMS funcione en el teléfono gracias al comentario de Irfan. Puedo cambiar la unidad que monta editando el archivo "file".
Para ello, primero el comando cat /proc/partitions
. Entonces puedes escribir echo '/dev/block/vold/<major>:<minor>' -n> /sys/devices/virtual/android_usb/android0/f_mass_storage/lun/file
No he terminado todavía, sin embargo, necesito saber ahora cómo reenviar la ruta en "archivo" a tmpfs. No puedo encontrar un archivo de dispositivo para tmpfs como todas las otras particiones. ¿Hay una partición vold para tmpfs, o tal vez puedo enlazar a una carpeta en archivo? ¿Cómo puedo poner la ruta a tmpfs dentro de "file"?