J'essaie d'exécuter un script qui s'exécute lorsque le périphérique a fini de démarrer. Ce périphérique particulier ne prend pas en charge l'exécution de scripts à partir d'un répertoire init.d, c'est pourquoi j'utilise init.rc.
Le fichier init.rc a été modifié pour inclure le code suivant
on property:sys.boot_completed=1
start initAsic
service initAsic /data/local/tmp/runn.sh
user root
group root
oneshot
L'image de démarrage a ensuite été reconstruite et flashée sur le dispositif. Les changements peuvent être confirmés en consultant le fichier init.rc situé à l'adresse suivante /
Actuellement, je n'utilise qu'un simple script de test (testScript.sh) qui lance la commande suivante
echo hi >> /data/local/tmp/test.txt
Le fichier testScript.sh et text.txt a 777
et les deux ont été poussés vers l'appareil en utilisant la fonction adb push
. Leur emplacement actuel est le suivant /data/local/tmp/
Pour une raison quelconque, il semble que mon script ne fonctionne pas, car je ne vois pas de texte écrit dans test.txt.
Est-ce que je rate quelque chose ? Serait-ce un problème avec SELinux ?
Mon appareil a actuellement SElinux réglé sur permissif. Cela a été fait en modifiant le fichier BoardConfig.mk et en reconstruisant le fichier boot.img.
1 votes
Cela répond-il à votre question ? Comment lancer un exécutable au démarrage et le maintenir en activité ?
0 votes
Ajouter
disabled
mot-clé pour le service. Après le redémarrage, vérifiez le journal :dmesg | grep -C5 initAsic
.0 votes
Je m'excuse pour la réponse tardive et je vous remercie pour vos suggestions. @alecxs J'ai vu ce message et j'ai reproduit la plupart des étapes de l'un des processus décrits, mais pas étape par étape - la seule différence étant l'emplacement des fichiers qui sont exécutés. Je n'ai pas réussi. @IrfanLatif J'ai ajouté le mot clé disabled aux services et j'ai lancé la commande dmesg. Il semble que ma supposition était correcte, puisqu'elle renvoie
service initAsic does not have a SELinux domain defined
. Je devrais être en mesure de résoudre le problème maintenant - je vous ferai savoir comment je procède et je publierai une réponse. Je vous tiendrai au courant de l'évolution de la situation et publierai une réponse.