Wie erstelle ich Startskripte mit dem init.d-Ordner?

In dieser Antwort auf eine Frage, die ich vor einiger Zeit gestellt habe, sagte er, es sei möglich, ein Skript bei jedem Start auszuführen.

Ich habe eine Datei (ohne Erweiterung) erstellt, die Folgendes enthält:

#!/system/bin/sh

busybox mount -o bind /emmc/Android/data/com.google.android.music/ /sdcard/Android/data/com.google.android.music/

Ich habe sichergestellt, dass der Zielordner vorhanden ist, und die Datei in gespeichert /system/etc/init.d, aber tatsächlich sieht es so aus, als würde das Skript nicht ausgeführt.

PS Die Eigenschaften der Skriptdatei sind: -rwxr-xr-x.

Ich denke, die Antwort ist falsch: „Der Kernel“ ruft niemals etwas aus irgendeinem init.dVerzeichnis auf. Dafür muss es explizite Unterstützung durch die Startskripte geben. Ich müsste mir einen tatsächlichen Startvorgang für Android-Geräte ansehen, um zu sagen, wie / wo dies derzeit nicht möglich ist.

Antworten (3)

In meiner Version von Android (cm11 / LolliKat) gibt es ein 90userinit-Skript init.d, das versucht, ein Skript mit dem Namen auszuführen, /data/local/userinit.shwenn es es findet.

Ich habe das nicht versucht, aber das Benennen Ihres Skripts /data/local/userinit.shkönnte ausreichen.

[Ich weiß, es ist eine alte Frage, aber für die Nachwelt ...]

Wenn Sie Stock-ROM haben, haben Sie wahrscheinlich keinen init.dSupport. Die Berechtigungen der Datei im init.dOrdner sollten 755oder sein 777. Wenn Sie keine init.dUnterstützung haben, können Sie den Kernel-Editor verwenden, der über einen init.dEmulator verfügt

Auf meinem CM13 habe ich das Skript /etc/init.dmit Erweiterung .shmit eingezogen chmod 755und die Unterstützung init.dmit Hilfe der Anwendung Universal eingeschaltetinit.d