Wie bearbeite ich init.rc in Samsung Galaxy S3 i9300?

Ich möchte die init.rc in einem i9300 editieren. Ich verstehe, dass das Bearbeiten der Datei im Ist-Zustand nicht funktioniert, da die Datei bei jedem Start von der Ramdisk des Boot-Images neu geladen wird. Nach einigem Googeln habe ich gelesen, dass ich das Boot-Image entpacken, bearbeiten und neu packen muss. Ich bin auf den folgenden Link gestoßen: http://android-dls.com/wiki/index.php?title=HOWTO%3a_Unpack,_Edit,_and_Re-Pack_Boot_Images

Als ich jedoch den ersten Befehl "cat /proc/mtd" ausprobiere, stelle ich fest, dass mein i9300 nicht einmal ein /proc/mtd hat, also frage ich mich, ob eine der dortigen Anweisungen für dieses Gerät gilt.

/dev/block zeigt mmcblk0p1 bis mmcblk0p12, aber ich bin mir nicht sicher, welches das Boot-Image ist. Nach meinem Googeln scheint es jedoch, dass mmcblk0p6 das Wiederherstellungs-Image ist.

Wie kann ich die init.rc in diesem Gerät bearbeiten?

Danke!

Was wollen Sie damit erreichen? Wenn Sie etwas anderes mounten oder ein Dateisystem neu mounten möchten, können Sie init.ddie Skriptunterstützung verwenden. Das ist viel einfacher und lässt Sie Skripte beim Booten ausführen.
Ich möchte beim Booten einen nativen Dienst starten, bei dem es sich um eine kreuzkompilierte ARM-Binärdatei handelt.

Antworten (1)

Sie haben hier zwei Möglichkeiten:

  1. Bearbeiten Sie den Stock-Kernel (oder den von Ihnen verwendeten Kernel), um die init.d-Unterstützung zu aktivieren, oder bearbeiten Sie die init.rc
  2. Verwenden Sie einen benutzerdefinierten Kernel mit bereits aktivierter init.d-Unterstützung.

Ich würde die zweite Option vorschlagen, da sie viel einfacher zu erreichen ist. Nachdem Sie einen Kernel mit init.d-Unterstützung geflasht haben, können Sie alle gewünschten Skripte zu dem Ordner hinzufügen, der beim Booten ausgeführt wird. Der Ordner befindet sich in /etc/init.dund alle Skripte in diesem Ordner werden der Reihe nach ausgeführt.

Wenn Sie beispielsweise Folgendes haben:

  • /etc/init.d/10-startup-daemon
  • /etc/init.d/50-mount-extra-partition

Sie werden in der gleichen Reihenfolge ausgeführt, in der ich sie eingegeben habe. Sie können die Reihenfolge ändern, indem Sie die Nummer am Anfang der Datei ändern.

Danke. Am Ende habe ich die Ramdisk entpackt/modifiziert/neu gepackt, um die init.rc zu ändern, um den gewünschten Dienst zu starten.