La plupart des questions que je peux trouver à ce sujet datent de 2011 et des alentours, il n'est donc pas trop surprenant que les choses aient changé depuis. J'ai essayé tout un tas de choses, sans aucun résultat.
Il y a des scripts dans /system/etc/init.d
(qui apparaissent également sous /etc/init.d
sur mon appareil). En particulier, il existe un 00banner
script qui est 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. Alors ça marche.
Il y a aussi un 90userinit
fichier ici, qui invoque /data/local/userinit.sh
s'il existe. Je l'ai créé avec le même contenu que ci-dessus. Encore une fois, rien n'apparaît jamais dans logcat. Ce qui n'est pas surprenant, vraiment, car si 00banner
ne fonctionne pas, cela ne le sera pas non plus.
J'ai recherché quelque chose nommé "init.rc" mais rien de tel n'existe nulle part sur mon appareil.
Tous mes scripts ont 755 autorisations.
Que puis-je essayer d'autre? (autres que les applications qui exécutent des scripts pour moi)
la source
Réponses:
il existe une méthode simple pour ajouter le support init.d à tout Android rooté pour les versions 4.0 et supérieures, google a fait un script qui s'exécute au démarrage en tant que superutilisateur le script est-
install-recovery.sh
il utilisé pour reflasher la récupération de stock à chaque démarrage, ils pensaient que c'était un bon sécurité pour empêcher les récupérations personnalisées, mais il a ouvert un nouveau trou qui peut être exploité par les utilisateurs pour falsifier la fonction init.d. Dépendances : pour que cette méthode fonctionne, vous avez besoin des éléments suivantsrun-parts
lien symbolique vers votre chemin comme/system/xbin
/system
capable de monterrw
Méthode I: (La manière la plus simple!)
Méthode II: (difficulté: moyenne)
Téléchargez ce zip, décompressez-le et mettez init.sh sur votre carte SD (dans cet exemple,
/sdcard
ça peut changer d'un appareil à l'autre.ouvrez maintenant un terminal ou utilisez-le
adb shell
depuis un ordinateur et exécutez le script.su
cp /sdcard/init.sh /data/tmp/init.sh
chmod 777 /data/tmp/init.sh
/data/tmp/init.sh
le script s'exécutera et vous demandera de redémarrer deux fois, c'est tout, vous avez officiellement le support init.d: D
Référence: [MOD] [APK + SCRIPT + ZIP] Activez Init.d pour tous les téléphones sans besoin de noyaux personnalisés !!!
la source
Edit: J'ai vu la fin du post, d'une manière, j'essaierai d'ajouter sans applications dès que possible (pas à la maison, publier à l'aide d'un mobile), mais vous pouvez l'utiliser, si quelque chose d'autre ne fonctionne pas.
Vous pouvez essayer d'utiliser l'application appelée Tasker .
Il coûte 3,29 $ et nécessite un accès root, mais il peut exécuter des scripts Shell. En outre, il a une version d'essai afin que vous puissiez essayer avant d'acheter.
Créez d'abord une tâche. Accédez à l'onglet Tâche, appuyez sur + signe, saisissez le nom de la tâche. Maintenant, allez à nouveau + signe et tapez
shell
filtre. Vous trouverez une optionRun Shell
, sélectionnez-la et configurez-la selon vos besoins.Après cela, revenez au premier onglet - Profils, appuyez sur + signe pour en créer un nouveau. Sélectionnez Event comme type, allez sur System et sélectionnez Device Boot. Revenez en arrière et il vous sera demandé de sélectionner la tâche. Maintenant, sélectionnez la tâche créée précédemment et vous êtes prêt à partir!
la source
Cela vous oblige à flasher un zip mais vous pouvez ensuite mettre vos scripts dans / system / etc / startup et ils devraient alors démarrer automatiquement avec le téléphone.
http://forum.xda-developers.com/showthread.php?t=2664645
Aussi de mon commentaire sous la question. J'ai essayé de regarder dans mon histoire mais je n'ai pas trouvé le lien où les gens prétendaient que CM avait sa propre façon d'exécuter des scripts au démarrage.
Éditer. Après avoir creusé un peu plus, ce n'est pas CM, disons, qui fait sa propre chose pour les scripts. C'est le noyau. Tous les noyaux ne prennent pas en charge init.d pour Android. Si vous postez quel appareil vous utilisez. Je peux chercher un noyau qui prend en charge les scripts personnalisés au démarrage pour vous.
la source
J'ai également le même problème lors de l'exécution du fichier de script dans le terminal dans CM12.1. La solution consiste à copier le script dans un
/data
dossier et à l'exécuter. Je pense donc que CM 12 autorise uniquement les scripts exécutables à partir d'un certain emplacement.la source
Manière simple (travail):
Préparez vos commandes post boot dans un script, par exemple / system / xbin / post-boot (set exec perm)
Ajoutez le chemin de script personnalisé ci-dessus à la fin de /system/etc/init.qcom.post_boot.sh
Par exemple:
echo / system / xbin / post-boot >> /system/etc/init.qcom.post_boot.sh
Terminé!
(Si vous ne trouvez pas le qcom post_boot (périphériques Qualcomm), recherchez les scripts post_boot)
la source
Étapes suivantes pour exécuter des scripts au démarrage. (Adb requis)
ça marche pour moi. j'espère que cela vous aide.
la source