8 votos

No se puede utilizar chmod para modificar los permisos en el teléfono emulado

Así que, estoy tratando de hacer una aplicación en Android studio y necesito hacer referencia a un archivo en particular en la aplicación, cascade.xml. Lo he metido en el teléfono emulado sin problemas usando adb (está en la carpeta storage/sdcard). Sin embargo, la app sigue sin poder acceder a él y creo que es porque los permisos del archivo son -rwxrwx--- (lo que significa que no hay acceso global). Estos permisos se verifican en ADM y utilizando ls -l <filename>

Intento cambiar los permisos de ese cascade.xml volviendo a entrar en el shell ( adb shell ) utilizando chmod 777 /storage/sdcard/cascade.xml pero falla en silencio y no hace nada. He probado a hacer otros chmods y no le pasa nada en absoluto. Si hago su y luego chmod 777 /storage/sdcard/cascade.xml lo mismo. Tratando de hacer otras chmod s como chmod 700 y similares tampoco hacen nada (falla silenciosa).

Ahora, si intento hacer un directorio en la carpeta, puedo hacerlo usando mkdir - mkdir /storage/sdcard/cascades funciona bien, y los permisos de archivo de la carpeta son drwrwx--- . Sin embargo, si intento utilizar mkdir chmod para crear la carpeta y terminar con los mismos permisos - como mkdir chmod 770 /storage/sdcards/cascades2 - la cáscara dice mkdir failed for chmod, Read-only file system . También puedo hacer archivos de texto haciendo algo como echo 'Hello World.' > /storage/sdcard/foo.txt (que lo crea con permisos de -rwxrwx--- ), pero si se intenta chmod después, no pasa nada. Si intento hacer `echo 'Hello World.' > storage/sdcard/foo2.txt chmod 777, es el mismo permiso pero el tamaño del archivo es 24 en lugar de 14.

He hecho todas las iteraciones de mount y remount que se me ocurren, y sigo sin conseguir que chmod funcione correctamente. He probado a ejecutar su frente a todo, y nada. He probado a empezar con adb root y dice que ya estoy en Root. También puedo empujar cosas el emulador usando ADM y adb push . Por desgracia, todo mi entorno está en un dispositivo con Windows 7, por lo que no puedo hacer un archivo con -rwxrwxrwx y simplemente transferirlo (a menos que haya una configuración de permisos en Windows que haga que se transfiera como un permiso 777 que desconozco).

Editar: Se olvidó de mencionar, el teléfono emulado se ejecuta la API 19, objetivo de Google APIs (Sistema x86), corriendo KitKat.

13voto

user148405 Puntos 11

Parece que no se pueden cambiar los permisos de los archivos en sdcard . Lo he trasladado a data/local y chmod funcionó a las mil maravillas.

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