Die meisten Fragen, die ich diesbezüglich finden kann, stammen aus dem Jahr 2011 und so, daher ist es vielleicht nicht allzu überraschend, dass sich die Dinge seitdem geändert haben. Ich habe eine ganze Reihe von Dingen ausprobiert, ohne jegliche Ergebnisse.
Es gibt einige Skripte in /system/etc/init.d
(die auch unter /etc/init.d
auf meinem Gerät erscheinen). Insbesondere gibt es ein 00banner
Skript, das eine Willkommensnachricht protokollieren soll. Die Willkommensnachricht erscheint nie in Logcat.
Ich habe hier mein eigenes Skript platziert, das schließlich auf nichts anderes reduziert wurde:
#!/system/bin/sh
log -t mytest Testing
Gar nichts. Erscheint nie in Logcat, es sei denn, es wird manuell über das Terminal ausgeführt. Dann funktioniert es.
Es gibt hier auch eine 90userinit
Datei, die aufgerufen wird, /data/local/userinit.sh
falls sie existiert. Ich habe es mit dem gleichen Inhalt wie oben erstellt. Auch hier wird in logcat nie etwas angezeigt. Was eigentlich nicht verwunderlich ist, denn wenn 00banner
es nicht läuft, würde dies auch nicht funktionieren.
Ich habe nach etwas namens "init.rc" gesucht, aber auf meinem Gerät existiert nichts dergleichen.
Alle meine Skripte haben 755-Berechtigungen.
Was kann ich noch versuchen? (außer Apps, die Skripte für mich ausführen)
Es gibt eine einfache Methode, um init.d-Unterstützung zu jedem gerooteten Android für die Versionen 4.0 und höher hinzuzufügen. Google hat ein Skript erstellt, das beim Booten als Superuser ausgeführt wird. Das Skript wird install-recovery.sh
verwendet, um die Bestandswiederherstellung bei jedem Start neu zu flashen, den sie für gut hielten Sicherheit, um benutzerdefinierte Wiederherstellungen zu verhindern, aber es öffnete eine neue Lücke, die von Benutzern ausgenutzt werden kann, um die init.d-Funktion zu fälschen. Abhängigkeiten : Damit diese Methode funktioniert, benötigen Sie Folgendes
run-parts
Symlink zu Ihrem Pfad wie/system/xbin
/system
Fähigkeit, als zu mountenrw
Methode I: (Der einfachste Weg!)
Methode II : (Schwierigkeit: mittel)
Laden Sie diese Zip -Datei herunter, entpacken Sie sie und legen Sie init.sh auf Ihrer SD-Karte ab (in diesem Beispiel /sdcard
kann sie sich von Gerät zu Gerät ändern.
Öffnen Sie jetzt ein Terminal oder verwenden Sie adb shell
es vom Computer und führen Sie das Skript aus.
su
cp /sdcard/init.sh /data/tmp/init.sh
chmod 777 /data/tmp/init.sh
/data/tmp/init.sh
Das Skript wird ausgeführt und fordert Sie auf, zweimal neu zu starten. Das ist es, was Sie offiziell init.d-Unterstützung haben: D
Bearbeiten: Ich habe das Ende des Beitrags gesehen. Auf diese Weise werde ich versuchen, so schnell wie möglich ohne Apps hinzuzufügen (nicht zu Hause, Veröffentlichung mit dem Handy), aber Sie können dies verwenden, wenn etwas anderes nicht funktioniert.
Sie können versuchen, die App Tasker zu verwenden .
Es kostet 3,29 $ und erfordert Root-Zugriff, kann aber Shell-Skripte ausführen. Außerdem gibt es eine Testversion, damit Sie es vor dem Kauf ausprobieren können.
Erstellen Sie zuerst eine Aufgabe. Gehen Sie zur Registerkarte Aufgabe, tippen Sie auf + Zeichen, geben Sie den Namen der Aufgabe ein. Gehen Sie jetzt erneut + Zeichen und geben Sie shell
Filter ein. Sie finden die Option Run Shell
, wählen sie aus und konfigurieren sie nach Ihren Bedürfnissen.
Gehen Sie danach zurück zum ersten Tab - Profile, tippen Sie auf + Zeichen, um ein neues zu erstellen. Wählen Sie Ereignis als Typ, gehen Sie zu System und wählen Sie Gerätestart. Gehen Sie zurück und Sie werden aufgefordert, eine Aufgabe auszuwählen. Wählen Sie nun die zuvor erstellte Aufgabe aus und Sie können loslegen!
Dies erfordert, dass Sie eine Zip-Datei flashen, aber dann können Sie Ihre Skripte in /system/etc/startup ablegen, und dann sollten sie automatisch mit dem Telefon gestartet werden.
http://forum.xda-developers.com/showthread.php?t=2664645
Auch aus meinem Kommentar unter der Frage. Ich habe versucht, in meinem Verlauf zu suchen, aber ich konnte den Link nicht finden, wo Leute behaupteten, dass CM ihre eigene Art hatte, Skripte beim Booten auszuführen.
Bearbeiten. Nach einigem mehr Graben ist es nicht CM, sagen wir, das macht sein eigenes Ding für Skripte. Es ist der Kernel. Nicht alle Kernel unterstützen init.d für Android. Wenn Sie posten, welches Gerät Sie verwenden. Ich kann mich nach einem Kernel umsehen, der benutzerdefinierte Skripte beim Booten für Sie unterstützt.
Ich habe auch das gleiche Problem beim Ausführen der Skriptdatei im Terminal in CM12.1. Die Lösung besteht darin, das Skript in den /data
Ordner zu kopieren und auszuführen. Ich denke also, CM 12 erlaubt nur Skripts, die von bestimmten Orten ausführbar sind.
Einfacher Weg (Arbeiten):
Bereiten Sie Ihre Post-Boot-Befehle in einem Skript vor, sagen Sie /system/xbin/post-boot (set exec perm)
Fügen Sie den obigen benutzerdefinierten Skriptpfad am Ende von /system/etc/init.qcom.post_boot.sh hinzu
Z.B:
Getan!
(Wenn Sie qcom post_boot (Qualcomm-Geräte) nicht finden können, suchen Sie nach post_boot-Skripten.)
Befolgen Sie die Schritte zum Ausführen von Skripts beim Booten. (erforderlich)
es funktioniert für mich. Ich hoffe, das hilft Ihnen.
unvergesslichidUnterstütztMonica
jer3my
RomanSt
jer3my
Rachid Boudjelida
RomanSt
Rachid Boudjelida
RomanSt
Rachid Boudjelida