Wie erstelle ich ein ClockworkMod-Installationspaket?

Ich bin ein erfahrener Linux-Veteran und habe kürzlich ein Samsung Galaxy S2 von T-Mobile gekauft. Ich habe den Bastelfehler gespürt, also habe ich mich entschieden, den Quellcode von der Samsung-Website herunterzuladen und mit dem Fummeln zu beginnen.

Mein Problem ist, dass ich ClockworkMod bereits auf meinem Handy installiert habe, also möchte ich keinen neuen Kernel flashen und dadurch ClockworkMod beschädigen, also suche ich nach Details zum Erstellen eines richtigen ClockworkMod-Installationspakets (im Allgemeinen /immer eine Zip-Datei?), damit ich die neu kompilierten Kernel testen kann.

Meine Suche bei Google hat bisher nichts gebracht. Die ClockworkMod-Seite scheint ziemlich undokumentiert zu sein. Kann mir jemand auf eine Dokumentation zum Erstellungsprozess des Installationspakets verweisen?

Das Flashen eines Kernels mit Odin bricht CWM?
Ich dachte, es würde, da ODIN den Hauptbootblock des Telefons zu flashen scheint, aber ich könnte dort völlig falsch liegen. Ich wollte es nicht ausprobieren, ohne es genau zu wissen. Mein Verständnis war, dass CWM ein dünner Kernel des Mittelsmanns ist, der zum richtigen Kernel wechseln würde, aber wiederum völlig falsch sein könnte.

Antworten (2)

Der erforderliche Teil einer Kernel-ZIP-Datei sieht folgendermaßen aus:

META-INF
    com
        google
            android
                update-binary
                updater-script

Sie sollten die Kernel- zImageDatei auch woanders haben, am einfachsten, wenn Sie sie nur im Stammverzeichnis des Archivs haben.

updater-scriptenthält mindestens Folgendes (wird zImagein der Wurzel vorausgesetzt):

assert(package_extract_file("zImage", "/tmp/zImage");
       write_raw_image("/tmp/zImage", "/dev/block/mmcblk0p8");
       delete("/tmp/zImage")
);

Sie können auch Dinge tun, wie z. B. einen Fortschrittsbalken anzeigen, Nachrichten drucken, löschen /cacheund so weiter.

Sie update-binarysollten von einem anderen Kernel-Paket für den SGS2 greifen. Eine zufällige ist an diesen XDA-Beitrag angehängt .

Ich habe diese Methode auf meinem SGS Vibrant ohne Probleme getestet, indem ich einen Kernel aus einem Odin-Paket und einen update-binaryaus einem anderen Vibrant-Kernel .zip verwendet habe. Beachten Sie, dass dies absolut sicher ist, solange Sie auf die richtige Partition schreiben - für das Vibrant war es bml17, für das SGS2 scheint es so zu sein mmcblk0p5(basierend auf dem Kernel von XDA, den ich oben verlinkt habe) oder mmcblk0p8wenn Sie eine flashen gesamtes Boot-Image (siehe Kommentare unten). Sie werden es sicher überprüfen wollen. Im schlimmsten Fall funktioniert Ihr Kernel nicht und Sie flashen einen bekanntermaßen guten Kernel.

Für das Samsung Galaxy S2 (T-Mobile) SGH-T989 zeigt die richtige Anweisung (von einem bekannten guten Rom, das ich bereits installiert habe) an, dass der Boot-Block in /dev/block/mmcblk0p8 und nicht in p5 geht. Vielleicht möchten Sie das sicherheitshalber bearbeiten. Ich habe einen Reißverschluss basierend auf diesem Beitrag erstellt und es hat wie ein Zauber funktioniert! Vielen Dank!
@PeterGrace Ah, das Boot-Image ist mehr als nur der Kernel, deshalb ist es anders.
Gibt es eine Möglichkeit sicherzustellen, dass ich /dev/block/mmcblk0p8 verwenden sollte? Ich habe ein Galaxy S2 von Virgin Mobile Canada (dasselbe wie Bell Canada), es ist also nicht von T-Mobile und ich habe kein bekanntes gutes ROM (außer CM7, aber es schreibt ein Boot-Image, kein zImage). Sollte ich davon ausgehen, dass mein Virgin Mobile GS2 genauso funktioniert wie Ihr T-Mobile GS2, oder gibt es eine Möglichkeit, dies sicher zu überprüfen?
@Rognon Sie könnten versuchen zu laufen mount, um zu sehen, welche Blöcke wo zugeordnet sind. Andernfalls finden Sie ein ROM.
@MatthewRead mountzeigt weder p8 noch p5 an. Googeln scheint darauf hinzudeuten, dass das zImage auf p5 geschrieben werden sollte, ebenso wie diese Seite: forum.xda-developers.com/showthread.php?t=1691867 . Ich habe versucht, den Inhalt des im Thread erwähnten Ordners aufzulisten, aber er existiert nicht auf meinem Telefon ...

Ich habe festgestellt, dass Sie Fastboot verwenden können, ohne CWM zu beeinträchtigen.

sudo /path/to/fastboot boot boot.img

oder

sudo /path/to/fastboot flash:raw boot /path/to/zImage /path/to/ramdisk.img