2 votes

Comment puis-je exécuter un script sur la carte SD et être capable de lui passer des arguments ?

J'ai essayé d'exécuter un script sur la carte SD telle quelle car sur FAT, tout est 777.

./.profile
./.profile: permission denied

Je l'ai ajouté comme commande initiale pour le shell Android et il l'exécute sans problème :

eval "$(cat /sdcard/.profile)"

Ce que je me demande, c'est s'il existe un moyen d'exécuter un script sur la carte SD (autre que celui que j'ai trouvé) et de lui passer des arguments ou dois-je le faire de la manière normale de BTEP (dans son répertoire de données) ?

2voto

Milner Points 533

Vous serez probablement incapable d'exécuter directement des scripts à partir de votre carte SD. Au moins sans Root. La raison est que, avec la plupart des ROMs, les sdcards sont montées en utilisant la fonction noexec drapeau - ce qui signifie, comme le terme l'indique : "no exec from here". Bien sûr, en ayant Root, vous pourriez simplement remonter la sdcard tout en supprimant cette option.

Pourquoi cette option pourrait-elle être forcée ? Je dirais pour des raisons de sécurité. Alors que sur le stockage interne, les applications sont assez limitées quant à l'endroit où elles peuvent écrire, sur les cartes SD, elles peuvent écrire partout. Cela pourrait donc être utilisé par certains "méchants" pour placer leurs scripts malveillants - mais ce n'est qu'une supposition.

1voto

Thej Points 655

Déplacé des commentaires et élargi.

Appeler le script avec le shell directement sh .profile arg1 arg2 devrait fonctionner. S'il devient fastidieux d'invoquer le shell et de taper les arguments, vous pouvez également créer un alias, la plupart des émulateurs de terminal vous permettent de spécifier une commande initiale à exécuter au début d'une session.

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