0 votes

erreur de permission refusée en essayant d'exécuter un script personnalisé, mais qui fonctionne dans SSHDroid

J'ai écrit ce script pour réinitialiser un contrôleur USB :

echo -n '1-2' | tee /sys/bus/usb/drivers/usb/unbind
sleep 0.5
echo -n '1-2' | tee /sys/bus/usb/drivers/usb/bind

Je peux alors l'exécuter comme suit :

q201:/data # sh foobar.sh
1-21-2q201:/data #

Mais je ne peux pas le faire fonctionner comme ça :

q201:/data # su -c "sh /data/foobar.sh"
tee: /sys/bus/usb/drivers/usb/unbind: Permission denied
1-2tee: /sys/bus/usb/drivers/usb/bind: Permission denied
1-2
1|q201:/data #

Il ne fonctionne que lorsque je suis connecté à SSHDroid sur mon appareil enraciné, d'autres applications telles que Kernel Adiutor, Script Manager ne parviennent pas à exécuter le script et obtiennent la même erreur de permission refusée que j'obtiens lorsque j'essaie de l'exécuter avec su.

Le binaire su fourni avec mon appareil Android ne demande pas d'autorisation. Il la donne simplement à toutes les applications qui la demandent.

Je veux juste que ce script soit exécuté via d'autres applications, et/ou au démarrage.

1voto

Le problème se situe au niveau de SELinux, et en creusant davantage, il semble que j'ai dû ajuster les permissions de ces fichiers pour que cela fonctionne. Je ne comprends pas vraiment, mais cela semble fonctionner.

chmod 644 /sys/bus/usb/drivers/usb/unbind
chmod 644 /sys/bus/usb/drivers/usb/bind

echo -n '1-2' | tee /sys/bus/usb/drivers/usb/unbind
sleep 0.5
echo -n '1-2' | tee /sys/bus/usb/drivers/usb/bind

chmod 200 /sys/bus/usb/drivers/usb/unbind
chmod 200 /sys/bus/usb/drivers/usb/bind

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