0 votes

L'autorisation de l'émulateur de terminal est refusée pour les commandes complexes

Je porte un script qui fonctionne bien sous Android 4.0.4 vers Android 4.4.2.

En simplifiant, cela donne ceci :

ls *.a | ./busybox xargs ./busybox rm -f

J'utilise un binaire busybox dans le dossier de mon application.

L'erreur que je reçois est la suivante :

xargs : ./busybox : Permission refusée

Cependant, si je lance ./busybox rm -f x.a ça marche.

Je suis rooté et je peux exécuter des commandes simples en tant que Root, le problème est qu'une commande contient une commande imbriquée.

la même chose se produit avec rsync -e.

J'ai testé cela sur Samsung galaxy note 10.1 Android 4.0.4 où cela fonctionne bien, et Samsung galaxy note 10.1 2014 edittion Android 4.4.2 où cela échoue.

Je sens que cela a quelque chose à voir avec le problème : Article sur l'émulateur de terminal concernant su et ping mais ça n'aide pas à trouver une solution.

0voto

Rombus Points 121

J'ai confirmé que c'était une erreur de SELinux. L'exécution en tant qu'utilisateur de l'application linux au lieu de Root m'a permis d'aller plus loin, mais "rsync -e ./ssh" ne fonctionnait toujours pas.

J'ai flashé un noyau personnalisé sans SELinux (getenforce renvoie Disabled) et maintenant ça marche bien.

Pour cela, vous devez savoir comment décompresser une image Android officielle et changer le fichier boot.img avec celui du noyau personnalisé, puis compresser à nouveau et flasher avec odin.

Toute tentative de désactivation de selinux n'a rien donné, seul le changement de noyau a fonctionné.

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