5 votos

¿Cómo puedo acceder a ``Casa/almacenamiento`` fuera de Termux (con un explorador de archivos)?

¿Cómo puedo acceder $HOME/storage ¿Directorio de Termux en el pastel de Android con un explorador de archivos GUI?

En Termux imprimo el directorio de trabajo con pwd y muestra $HOME/storage como:

/data/data/com.termux/files/home

Mi almacenamiento interno se ve así:

.
├── Alarms
├── Android
|   ├──data
|   |  ├── ...
|   |  ├── com.termux
|   |  |   └── files
|   |  |       └── 0 items
|   |  └── ...
|   └── ...
├── DCIM
├── Download
└── ...

Mi almacenamiento externo se ve así:

.
├── Android
|   ├──data
|   |  ├── ...
|   |  ├── com.termux
|   |  |   └── files
|   |  |       └── 0 items
|   |  └── ...
|   └── ...
└── LOST.DIR

Ni mi almacenamiento interno, ni mi tarjeta SD, contienen un /data/ en el nivel de root. ¿Dónde está este /data/ ¿Directorio? En realidad, ¿dónde está root /storage/ ¿Directorio? ¿Dónde está root /emulated/ ¿Directorio? ¿Dónde están estos directorios y por qué no puedo acceder a ellos?

5voto

Jack Wade Puntos 231

Si lo hiciste termux-setup-storage previamente, crear random_file.txt archivar en $HOME/storage/shared . Eso se creará en /sdcard/ . Pero no necesitas hacer esa molestia. Sólo concede el permiso de almacenamiento de Termux y guarda directamente a /sdcard/ por ejemplo.

echo xyz >/sdcard/random_file.txt

$HOME/storage es en realidad /data/data/com.termux/files/home/storage que no es accesible para otras aplicaciones sin acceso a root. Así es como está diseñada la seguridad de Android.

¿Dónde está esto? /data/ ¿Directorio?

Es una partición llamada userdata montado en las root en /data . Para más detalles ver ¿Cómo se utiliza el espacio del disco en el dispositivo Android?

¿Dónde está root /storage/ ¿Directorio?

También es un directorio en rootfs donde tmpfs está montado. El contenido de este directorio se ve diferente a las diferentes aplicaciones debido a los espacios de nombres montados y a la emulación del sistema de archivos.

¿Dónde está root /emulated/ ¿Directorio?

Está en los siguientes tres lugares:

/mnt/runtime/default/emulated
/mnt/runtime/read/emulated
/mnt/runtime/write/emulated

¿Dónde están estos directorios y por qué no puedo acceder a ellos?

Estos directorios son lo que ves cuando abres una aplicación de explorador de archivos. La ruta del sistema de archivos emulada es /sdcard .

En Android 6+, /data/media es emulada a tres VISTAS mencionado anteriormente. Uno de ellos está montado en el /storage/emulated dependiendo del estado del permiso de almacenamiento de la aplicación. emulated El directorio contiene los User_ID de todos los usuarios (si hay varios usuarios o perfiles). El propietario del dispositivo siempre es 0 . Así que /sdcard apunta a /storage/emulated/0 . Es el almacenamiento que las aplicaciones pueden leer y escribir.

Además, las aplicaciones pueden leer y escribir en su directorio privado de datos en /data/user/<User_ID>/ (que es /data/data/ para el propietario del dispositivo). Para más detalles, véase ¿Qué es /almacenamiento/emulado/0/? y ¿Qué es el UID "u#_everybody"? .

Por su comentario:

¿Puede el Termux escribir en la tarjeta SD insertada físicamente en mi teléfono? Si es así, ¿cómo?

Las aplicaciones no tienen acceso de escritura a nivel de sistema de archivos a una tarjeta SD externa, excepto las que utilizan API SAF. Cita de documentación oficial Termux no tiene apoyo para el SAF:

¿Por qué Termux tiene acceso de sólo lectura a la tarjeta SD externa?

En las últimas versiones de Android, el acceso de escritura a la tarjeta SD externa se realiza a través de Storage Access Framework. No es posible proporcionar su API a los programas de línea de comandos .

Sin embargo, las aplicaciones siempre pueden (con y sin permiso de almacenamiento) leer y escribir en sus directorios privados en el almacenamiento compartido, es decir, en Android/data/ (y algunos otros) en /sdcard/ y una tarjeta SD externa. Para más detalles ver ¿Cómo mover archivos a una tarjeta SD externa en un Android sin root?

Por su comentario:

Así que, básicamente, no tengo acceso a mis propios dispositivos. Directorio root, sin rootear el dispositivo. ¿Sólo puedo empezar en el tercer nivel? Eso es frustrante.

/data La partición también contiene configuraciones del sistema que incluyen datos sensibles como bases de datos de contraseñas (aunque no se guardan como texto plano). Así que /data no es accesible sin Root para hacerlo:

  • Proteger los datos privados de las aplicaciones de otras aplicaciones (cada aplicación es un usuario UNIX con un UID único)
  • Proteger los datos y la configuración del sistema contra las malas aplicaciones y el malware
  • Aislar a los usuarios/perfiles de otros usuarios/perfiles
  • No permitir que las aplicaciones accedan al almacenamiento compartido sin el permiso de almacenamiento concedido
  • Hacer cumplir las API por el marco de Android para que las aplicaciones no puedan utilizar los recursos del sistema y leer/manipular la información y la configuración del dispositivo sin los permisos adecuados

Y posiblemente hay otras razones. Para más detalles ver ¿Están los usuarios múltiples protegidos unos de otros de manera diferente a las aplicaciones?

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