3 votos

¿Dónde está el punto de montaje para una memoria USB en Android 9?

Estoy trabajando en IMX8QM con Android 9. Necesito configurar un usb stick en un punto de montaje estático.

Una vez detectado el usb stick, crear sda1, luego de revisar obtuve:

mek_8q:/sdcard # df
Filesystem                1K-bloques     Usados     Disponibles    Uso%     Montado en
/dev/root                   1777588     1189664     587924     67%         /
tmpfs                       2918920     488         2918432    1%         /dev
tmpfs                       2918920     0           2918920    0%         /mnt
/dev/block/mmcblk0p12       249828      58936       190892     24%        /vendor
/dev/block/mmcblk0p14       9086336     967628      8118708    11%       /data
/data/media                 9086336     967628      967628     11%     /mnt/runtime/default/emulated

/dev/block/vold/public:8,1  3918844     1311400     2607444    34% /mnt/media_rw/2A61-DD07

0 votos

Estrictamente hablando, ¿necesitas un punto de montaje estático, o necesitas una forma estática de acceder a directorios específicos en la memoria USB, sin importar el nombre del punto de montaje?

0 votos

Hola, lo hice usando la guía de Ifran. Gracias. // Utilice UUID como nombre estable, si está disponible
std::string stableName = getId(); if (!mFsUuid.empty()) { stableName = mFsUuid; } mRawPath = StringPrintf("/mnt/media_rw/USB");

4voto

Jack Wade Puntos 231

Lo has entendido correctamente, los USB OTG se montan en /mnt/media_rw/[UUID].
Fuente:

// Use UUID as stable name, if available
    std::string stableName = getId();
    if (!mFsUuid.empty()) {
        stableName = mFsUuid;
    }
    mRawPath = StringPrintf("/mnt/media_rw/%s", stableName.c_str());

Para la familia de sistemas de archivos FAT, el UUID no es el verdadero UUID de 32 dígitos, sino un número de serie (de 8 dígitos). Por lo tanto, el punto de montaje que crea vold no es estático desde Android 6. El UUID (o número de serie) del sistema de archivos cambia cuando cambias de USB stick o lo reformateas (a menos que establezcas explícitamente el mismo UUID al crear o después de crear el sistema de archivos). Para un punto de montaje estático, debes modificar el código fuente de vold o montar manualmente el sistema de archivos. Para más detalles, consulta: ¿Cómo cambiar la etiqueta aleatoria del sistema de archivos en USB OTG?

Las tarjetas SD también se emulan desde /mnt/media_rw/[UUID] a /storage/[UUID], pero el camino aún no es estático. Consulta detalles aquí: ¿Cómo mover archivos a la tarjeta SD externa?

0 votos

Gracias Ifran. Entonces, para que Android monte USB en un punto estático, necesitamos editar en el lado del código fuente. ¿Es correcto?

0 votos

@VKS elige el método que mejor se adapte a tus necesidades 1) siempre establece el mismo UUID al formatear un USB 2) monta manualmente 3) modifica la fuente vold 4) usa las APIs de Android para obtener la ruta de almacenamiento

0 votos

Gracias Ifran. Ahora puedo proporcionar un punto de montaje estático configurando esta línea. mRawPath = StringPrintf("/mnt/media_rw/USB"). ¿Sabes cómo acceder a este camino a través de una aplicación de Android (creando una nueva aplicación)?

1voto

Prasanna Puntos 121

Tengo un Huawei P30 con Android 9 y una tableta Huawei con Android 8: en ambos, el punto de montaje para la unidad interna es: "/storage/emulated/0".

Solo la tableta tiene una tarjeta SD montada, y el punto de montaje es "/storage/0000-0000". No veo razón para que sea diferente para el P30 con Android 9.

Si instalas Termux (una shell de Unix para Android), puedes acceder en ambos con un usuario normal y mover datos aquí y allá :^)

1 votos

/storage/0000-0000 no es el punto de montaje real, es una vista emulada del sistema de archivos real montado en /mnt/media_rw/0000-0000. Las tarjetas SD son emuladas por vold, los USB sticks no lo son. Ver detalles aquí: android.stackexchange.com/a/218338/218526

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X