Es scheint, dass mein Gerät keine init.d-Unterstützung hat, aber ich habe eine Reihe von init.*-Dateien. Kann ich den gleichen Ansatz irgendwie verwenden?

-rwxr-x---    1 root     root          3265 Jan  1  1970 init.class_main.sh
-rwxr-x---    1 root     root          1730 Jan  1  1970 init.mdm.sh
-rwxr-x---    1 root     root          3347 Jan  1  1970 init.mmi.boot.sh
-rwxr-x---    1 root     root           325 Jan  1  1970 init.mmi.dtv.sh
-rwxr-x---    1 root     root           562 Jan  1  1970 init.mmi.early_boot.sh
-rwxr-x---    1 root     root          6341 Jan  1  1970 init.mmi.touch.sh
-rwxr-x---    1 root     root          8592 Jan  1  1970 init.mmi.usb.sh
-rwxr-x---    1 root     root          7054 Jan  1  1970 init.qcom.class_core.sh
-rwxr-x---    1 root     root          6920 Jan  1  1970 init.qcom.early_boot.sh
-rwxr-x---    1 root     root          6987 Jan  1  1970 init.qcom.sh
-rwxr-x---    1 root     root          2962 Jan  1  1970 init.qcom.syspart_fixup.sh
-rwxr-x---    1 root     root          2844 Jan  1  1970 init.rc
-rwxr-x---    1 root     root          1327 Jan  1  1970 init.recovery.usb.rc
-rwxr-x---    1 root     root           683 Jan  1  1970 init.surnia.sh

Dies sind alle Dateien, die in meiner /Partition mit init.* beginnen. In /system/etchabe ich auch welche:

-rw-r--r--    1 root     root          2767 Mar 26  2015 init.ath3k.bt.sh
-rw-r--r--    1 root     root          1773 Mar 26  2015 init.crda.sh
-rw-r--r--    1 root     root          4987 Mar 26  2015 init.qcom.audio.sh
-rw-r--r--    1 root     root          9938 Mar 26  2015 init.qcom.bt.sh
-rw-r--r--    1 root     root          3651 Mar 26  2015 init.qcom.coex.sh
-rw-r--r--    1 root     root          3791 Mar 26  2015 init.qcom.debug.sh
-rw-r--r--    1 root     root          1725 Mar 26  2015 init.qcom.efs.sync.sh
-rw-r--r--    1 root     root          3083 Mar 26  2015 init.qcom.fm.sh
-rw-r--r--    1 root     root          4023 Mar 26  2015 init.qcom.modem_links.sh
-rw-r--r--    1 root     root         54877 Mar 26  2015 init.qcom.post_boot.sh
-rw-r--r--    1 root     root          2767 Mar 26  2015 init.qcom.sdio.sh
-rw-r--r--    1 root     root         19105 Mar 26  2015 init.qcom.wifi.sh

Sind diese der init.d-Funktion ähnlich? Wie kann ich überprüfen, ob diese init.* beim Booten ausgeführt werden? Wenn ja, wie kann ich diese Struktur verwenden, um ein benutzerdefiniertes Skript hinzuzufügen, das beim Booten ausgeführt wird?

Du kannst es wahrscheinlich nicht. Nur weil die Dateien initihren Namen tragen, bedeutet das nicht, dass das Gerät sie unterstützt init.d– wenn es so wäre, wären sie lieber drin /system/etc/init.dund hätten nicht das initin ihren Namen. Wenn Sie init.dUnterstützung auf einem Gerät wünschen, das es nicht hat, sehen Sie sich meine Liste der init.d- Apps an :)
Wenn ich mich richtig erinnere, wird beim Booten nur die init.rc ausgeführt. Ich glaube, dass Sie durch weitere Untersuchung der Syntax eine ähnliche Datei am selben Ort erstellen könnten, die von der init.rc eingeschlossen werden muss. Bitte bedenken Sie, dass ich nie getestet habe, was ich gesagt habe.
Ich habe einen Schnelltest gemacht. Was ich getan habe, war, eine kleine Datei ( init.dms.rc ) zu erstellen, die dazu gedacht war, eine leere Textdatei auf /data mit touch zu erstellen . Ich habe dann die Datei in die Hauptdatei init.rc eingefügt , mit der Syntax /include /init.dms.rc . Nach dem Neustart wurde nicht nur die leere Datei nicht erstellt, sondern alle meine Änderungen (Einbindung in init.rc und die gesamte init.dms.rc ) wurden rückgängig gemacht.

Antworten (1)

In meinem Szenario gibt es keinen "einfachen Weg". Meine Suche hat bisher viele Optionen gefunden:

Verwandte: Wie kann ich ein Skript beim Booten ausführen?

http://forum.xda-developers.com/showthread.php?t=2287540

http://iamcmotc.blogspot.com.br/2015/04/android-how-to-run-script-or-system.html

Boot-Images neu packen, um benutzerdefinierte Skripte hinzuzufügen: http://forum.xda-developers.com/showthread.php?t=443994

Bootvorgang: http://bootloader.wikidot.com/linux:boot:android

Der einfachere Weg ist die Verwendung einer APK zur Emulation von init.d: ​​https://github.com/Androguide/Universal-init.d oder https://github.com/Grarak/KernelAdiutor