9 votes

Comment exécuter un script au démarrage dans CM12.1?

La plupart des questions que je trouve à ce sujet datent de 2011, il n'est donc peut-être pas surprenant que les choses aient changé depuis. J'ai essayé toute une série de choses, sans aucun résultat.

Il y a quelques scripts dans /system/etc/init.d (qui apparaît également sous /etc/init.d sur mon appareil). En particulier, il y a un script 00banner censé enregistrer un message de bienvenue. Le message de bienvenue n'apparaît jamais dans logcat.

J'ai placé mon propre script ici, qui a finalement été réduit à rien d'autre que ceci:

#!/system/bin/sh
log -t mytest Testing

Rien. N'apparaît jamais dans logcat sauf s'il est exécuté manuellement via le terminal. Ensuite, ça fonctionne.

Il y a aussi un fichier 90userinit ici, qui appelle /data/local/userinit.sh s'il existe. Je l'ai créé avec les mêmes contenus que ci-dessus. Encore une fois, rien n'apparaît jamais dans logcat. Ce qui n'est pas surprenant, vraiment, puisque si 00banner ne fonctionne pas, celui-ci ne le sera pas non plus.

J'ai cherché quelque chose appelé "init.rc" mais rien de tel n'existe nulle part sur mon appareil.

Tous mes scripts ont des autorisations 755.

Que puis-je essayer d'autre? (autre que des applications qui exécutent des scripts pour moi)

0 votes

Quel script vous voulez exécuter, et pourquoi ?

0 votes

Malheureusement, la petite quantité de fouilles que j'ai faites a abouti à "Ne fonctionnera pas sur des ROM personnalisées". Apparemment, CM a sa propre manière de faire les choses. Pas sûr que vous vouliez vous en mêler. Mais apparemment, vous pouvez construire votre propre fichier boot.img et y ajouter vos scripts personnalisés. Peut-être que cela fonctionnera pour vous.

0 votes

@jer3my Je suis parfaitement heureux d'accepter cela comme réponse et d'attribuer la prime si vous avez des liens qui me convaincront/auront de l'autorité.

-1voto

Alexander Temerev Points 226

Suivre les étapes suivantes pour exécuter des scripts au démarrage. (adb requis)

  1. adb root
  2. adb remount
  3. adb pull /init.rc
  4. modifier init.rc ajouter une ligne pour exécuter le script comme sh test.sh
  5. adb push init.rc /
  6. adb shell
  7. chmod 755 init.rc
  8. adb reboot

Cela a fonctionné pour moi. J'espère que cela vous aidera.

1 votes

Cette méthode ne devrait pas du tout fonctionner. Le contenu de la racine initiale comme init.rc fait partie du ramdisk qui est restauré à partir de la mémoire flash de votre appareil à chaque démarrage. Vous devez modifier le ramdisk directement dans la partition appropriée de la mémoire flash de votre appareil.

0 votes

Ensuite, vous pouvez ajouter dans /system/etc/init.qcom.wifi.sh

1 votes

Cette méthode ne fonctionnera pas, init.d ne peut pas être poussé ! Cela fait partie de l'initramfs, ils doivent être édités sur le boot.img puis à nouveau flashés, et pour init.qcom.wifi.sh, c'est spécifique à l'appareil, vous ne pouvez pas en faire une règle générale.

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