2 votes

Impossible de copier des fichiers d'un répertoire /data/data/ à un autre (Root)

J'essaie de copier un fichier de /data/data/com.application1/myfile a /data/data/com.application2/myfile

Le fichier arrive avec le propriétaire et le groupe définis par l'application d'où il provient. J'ai ensuite changé le propriétaire et le groupe de l'application qui l'exécute (une application SSH).

Les permissions changent, mais l'accès est toujours refusé. J'ai essayé d'utiliser chattr -i myfile mais le problème est toujours là. Même chmod 777 donne toujours accès refusé.

user@htc_m8:/data/data/org.galexander.sshd/home $ /system/bin/whoami
u0_a149

user@htc_m8:/data/data/org.galexander.sshd/home $ /system/bin/ls -la
-rwx------ u0_a149  u0_a149        10 2018-06-23 16:23 myfile

user@htc_m8:/data/data/org.galexander.sshd/home $ /system/bin/echo test > testfile

user@htc_m8:/data/data/org.galexander.sshd/home $ /system/bin/ls -la
-rwx------ u0_a149  u0_a149        10 2018-06-23 16:23 myfile
-rw------- u0_a149  u0_a149         5 2018-06-23 16:37 testfile

user@htc_m8:/data/data/org.galexander.sshd/home $ /system/bin/cat testfile
test

user@htc_m8:/data/data/org.galexander.sshd/home $ /system/bin/cat myfile
cat: myfile: Permission denied

J'ai installé busybox, mais dans l'exemple j'utilise des commandes natives, cependant les commandes busybox donnent le même résultat.

Je n'arrive pas à voir ce qui est différent dans le fichier que j'ai créé par rapport à celui que j'ai copié. Même propriétaire/groupe/permissions.

1voto

SKerkewitz Points 111

Android fonctionne en mode "SELinux". Plus d'informations ici Concepts SELinux

Cela signifie qu'en plus des permissions standard de Linux, des attributs supplémentaires sont attachés.

Running attr -l myfile a montré ce qui suit Attribute "selinux" has a 38 byte value for myfile

Utilisation de /system/bin/ls -alZ vous pouvez voir la valeur de l'attribut selinux.

-rwx------ u0_a141  u0_a141           u:object_r:app_data_file:s0 myfile
-rw------- u0_a141  u0_a141           u:object_r:app_data_file:s0:c512,c768 testfile

Le fichier que j'ai copié manquait de données supplémentaires à la fin, c512,c768 Je suppose que c'est quelque chose comme un AppID.

Running su -c restorecon myfile a corrigé ce problème et restauré le fichier avec la valeur d'attribut correcte. Réf : Explication de la commande chcon - Post

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X