Je construis un système « intégré », basé sur Android, et pour le moment je suis en train de mettre en œuvre la mise à jour du firmware d'un module audio.
Il y a un binaire qui fait, mais la prise est qu'il a besoin d'un accès root pour le faire (il ne peut pas accéder GPIO autrement).
Le problème est maintenant déplacé à donner l'exécutable (et juste que l'exécutable, ne doit pas faire racine complète) un accès root.
Je suis là depuis quelques jours et j'ai essayé plein de choses, sans succès.
choses que j'ai déjà essayé:AOSP - Comment faire fonctionner un exécutable avec un accès root?
- https://stackoverflow.com/a/13892057/3801327 (. Je l'ai fait, mais toujours pas de racine, je pense à cause de son No setuid/setgid programs on since Android 4.3)
- lu quelque part que vous pouvez créer un service de système, vous appel, et avoir le code qui nécessite la racine courir là. Suivi this guide pour créer un service système, mais il s'avère qu'il n'a pas d'accès root.
Je n'ai plus d'idées ou de choses à essayer. Que puis-je faire d'autre ?
EDIT
je n'étais pas en mesure de faire fonctionner binaire en tant que root, mais a été en mesure d'exécuter un script shell après le démarrage de init.rc, où il y a un accès root et exporter/modifier les autorisations du gpio spécifique dont j'avais besoin. Cela a permis d'y accéder sans l'accès root nécessaire plus tard.
Je ne suis pas un expert linux mais avez-vous essayé de changer simplement le propriétaire de votre exécutable (chown) à la racine via un fichier init.rc? – IIIIIIIIIIIIIIIIIIIIII
Vérifiez le premier point. Ajouter l'entrée à android_filesystem_config.h fait que la racine soit le propriétaire. ls -l pour cela retourne: "-rwsr-sr-x root root" –