¿Por qué me denegarían el permiso usando adb para copiar un directorio a un subdirectorio en mi teléfono, cuando podría copiar a su directorio padre y ambos tienen el mismo permiso?
He probado esto desde mi PC a mi Nexus 5 corriendo 6.0.1 (Oct 5):
adb push Dir /sdcard/Dir/Subdir
Falló con
Permission denied
Esto ha funcionado antes, sin cambios que yo sepa.
Lancé adb shell y ejecuté
ls -l
para obtener permisos para /sdcard (storage/emulated/0), /sdcard/Dir y /sdcard/Dir/Subdir:
drwxrwx--x root sdcard_rw
Yo entonces:
cd /sdcard/Dir/Subdir
mkdir XYZ
Tengo
mdkdir: XYZ: Permission Denied
Probado:
su
mkdir XYZ
De nuevo, permiso denegado
Entonces intenté otro empujón
adb push XYZ /sdcard/Dir
Esto funcionó y copió todos los archivos.
¿Por qué funcionaría en /sdcard/Dir y no en /sdcard/Dir/Subdir, cuando ambos tienen los mismos permisos? ¿Por qué se denegaría el permiso para Root?
1 votos
¿Creó ese subdirectorio al navegar en /data/media/0/Dir/? En cualquier caso, facilítenos la salida de
su -c 'ls -l /data/media/0/Dir/Subdir'
y comparar los permisos con el resto de los subdirectorios allí.0 votos
@Firelord No he creado la subdirección cuando se navega allí. Todo el árbol de directorios (/sdcard/Dir) fue creado por un push de adb. Los permisos para Dir son dwrxrwxr-x media_rw media_rw, mientras que Subdir son dwrxrwxr-x Root Root. Cuando uso ls -l en storage/emulated/0, obtengo dwrxrwx--x Root sdcard_rw en Dir?
1 votos
¿Podrías cambiar el permiso de /data/media/0/Dir/Subdir a rwxrwxrwx, o alternativamente, cambiar el grupo de usuarios de Root a media_rw? Asegúrese de ejecutar las operaciones en la ruta /data/media/0/.. y no en /storage/emulated/..
0 votos
@Firelord Funcionó (chmod 777). Gracias. ¿Qué diferencia hay entre /data/media/0 y /storage/emulated o /sdcard? ¿Cada uno parece contener los mismos archivos?
0 votos
/data/media es la ruta real en el sistema de archivos EXT4. /storage aloja el /data/media emulado estilo FAT en el que usted y las aplicaciones pueden leer y escribir. No sé la razón detrás de esta emulación.