3 votos

¿Cómo enlazar-montar las carpetas "data" y "obb" de la tarjeta SD externa en "/sdcard/Android"?

Puede alguien ayudarme a montar mi Android/data y Android/obb en mi almacenamiento interno desde mi almacenamiento portátil? Estoy en una ROM Pie. He encontrado esto: ¿Cómo se puede montar una carpeta dentro de /sdcard con los permisos correctos? pero no sé qué debo hacer.

Cuando escribo:

ls -dZ /sdcard

Me sale

u:object_r:rootfs:s0 /sdcard

1voto

Jack Wade Puntos 231

Subdirectorios en /sdcard/Android/data o /sdcard/Android/obb (llamados directorios privados de las aplicaciones en el almacenamiento externo primario) tienen permisos sintetizados basados en la estructura de directorios . Mientras que los directorios públicos en el resto de /sdcard tienen permisos fijos. Ver detalles en El viaje de almacenamiento de Android y ¿Qué es /storage/emulated/0/? .

Mi respuesta a su pregunta vinculada: ¿Cómo se puede montar una carpeta dentro de /sdcard con los permisos correctos? aborda el último caso, es decir, el montaje de directorios públicos que se comparten con todas las aplicaciones. Sin embargo, los directorios privados no pueden ser montados desde un almacenamiento externo con permisos fijos. Sin embargo, utilizando el mismo enfoque se puede bind-mount el directorio privado de cada aplicación por separado.

Tomemos como ejemplo la aplicación Termux. Sus directorios privados ( Android/data/com.termux y Android/obb/com.termux ) son propiedad del UID de la aplicación Termux asignado en el momento de la instalación. Las formas más comunes de obtener el valor del UID es leer de /data/system/packages.list o hacer ls -ld /sdcard/Android/data/com.termux o utilizando stat mando. Un enfoque sencillo es montar el directorio como "world-writable" para que todas las aplicaciones puedan escribir en él. Pero no es una buena idea establecer permisos tan abiertos. Así que vamos por el camino de Android; bind-mount un directorio desde la tarjeta SD externa usando FUSE:

~# bindfs -u $(stat -c %u /sdcard/Android/data/com.termux) -g 9997 -p a-rwx,ug+rw,ug+X /mnt/media_rw/[UUID]/Android/data/com.termux /mnt/runtime/write/emulated/0/Android/data/com.termux
  • Para conocer más opciones de montaje y detalles, consulte la respuesta del enlace anterior.
  • Sustituir /mnt/media_rw/[UUID] con /mnt/expand/[UUID]/media/0 si la tarjeta SD está formateada como Almacenamiento Adoptable pero los datos no están migrado .
  • De la misma manera obb los directorios pueden ser montados en bind.
  • Si su dispositivo es compatible con sdcardfs , el mismo montaje debería propagarse a default y read emulado VER también. De lo contrario, si su dispositivo es más antiguo puede bind-mount de la misma manera a otros VER .
  • Algunas aplicaciones prefieren por defecto escribir los datos privados en el almacenamiento externo secundario (es decir, la tarjeta SD externa), por lo que no es necesario bind-mount su data o obb directorios.

0 votos

cuando uso el código obtengo "No es un ID de usuario válido: 10187" , encontré el mismo ID de usuario en "ls -n /sdcard/Android/obb"

0 votos

@mahanr por favor revisa la respuesta enlazada una vez, no quiero copiar y pegar todo. Necesitas touch archivos /etc/passwd y /etc/group .

0 votos

@mahanr según el nuevo cambio a bindfs , /etc/passwd y /etc/group ya no es necesario. Estoy añadiendo el enlace al nuevo binario en la respuesta vinculada.

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