HOW TO CWM update zips erstellen

anddior

anddior

Dauergast
376
TEIL 1 (löschen)

Ein super Vorteil etwas aus CWM zu erledigen ist das eure Android System zu diesem Zeitpunkt nicht hochgefahren ist.
Demensprechend ist es fast alles möglich ohne das A1 etwas meckert.

Für Anfang möchte ich zeigen wie einfach man etwas aus A1 löschen kann.

ich habe für diese Zweck eine zip Datei vorbereitet:

A1_deleteSomething.zip

Diese zip Datei ist die Basis für ein update Paket.
Es hat diese Aufbau:

updateZip.JPG


An diese Struktur ist nichts zu ändern!
Für andere Aufgaben können zusätzliche Ordner erstellt werden aber dass hier ist ein Minimum.

Die Datei "update-script" im Ordner "android" beinhaltet unsere Befehle.
Diese soll auf jeden Fall angepasst werden, je nach dem was ihr machen wollt.

In unseren Beispiel stehet drin:

Code:
ui_print("Delete something");
ui_print("By anddior");
ui_print("Mounting system...");
run_program("/sbin/busybox", "mount", "/system");
show_progress(1, 15);
ui_print("Deleting");
delete("/system/app/xxx.apk", "/system/app/xxx.odex");
ui_print("Unmounting system...");
run_program("/sbin/busybox", "umount", "/system");
ui_print("Removal complete!");
So, falls irgendwo am Zeilenanfang eine Raute (#) stehet dann gilt diese Zeile nicht als Befehl (Auskomentierung)
z.B:
# ui_print("By anddior");

So und jetzt Stück für Stück :

Code:
ui_print("Delete something");
ui_print("By anddior");
ui_print("Mounting system...");

ui_print Befehl schreibt einfach ein Text auf dem Display

Code:
run_program("/sbin/busybox", "mount", "/system");

Hier wird das /system gemountet

Code:
show_progress(1, 15);

show_progress bewegt unsere Display Balken

Code:
ui_print("Deleting");
wieder nur ein Info Text

Code:
delete("/system/app/xxx.apk", "/system/app/xxx.odex");

delete löscht die daten.
Hier ist die schreibweise zu beachten:
innerhalb Anführungszeichen "xxx/xx" schreibt man den absoluten Pfad und die Dateinahme die man löschen möchte.
Mehrere Datein werden mit "," getrennt.
In genannten Beispiel wird xxx.apk und xxx.odex aus dem Ordner /system/app gelöscht.

Code:
ui_print("Unmounting system...");
wieder nur ein Info Text

Code:
run_program("/sbin/busybox", "umount", "/system");

Hier wird das /system freigegeben

Code:
ui_print("Removal complete!");

wieder nur ein Info Text

So und wie ändert man nun die Script?
es gibt 2 Möglichkeiten.

1:
Extrahiert einfach die update-script aus die zip datei und passe diese an.
Dann kopiere es wieder in zip Datei und übeschreibt die alte.

So kann es euch nicht passieren dass ihr ein falsches zip macht.

2:
Einfach alles Extrahieren, update-script anpassen und wieder alles zippen.
Wobei zum Schluß die Struktur wie oben auf mein Bild aussehen muss.
Hier passiert öffter das man den Extrahierten Ordner zippt so dass zum Schluss ein Ordner zuviel in zip ist und update.zip funktioniert nicht mehr.

Anmerkung:
Es ist nicht nötig die zip Datein zu signieren soweit man aus CWM Ausführen will.
Ich mache dies Trotzfdem aber es ist nicht zwingend erforderlich.

Der ursprüngliche Beitrag von 15:21 Uhr wurde um 15:53 Uhr ergänzt:

TEIL 2 (kopieren)

Jetzt wollen wir etwas auf unsere A1 kopieren / hinzufügen.

Dafür nehme ich die A1_restoreBuildProp Datei als Beispiel.

Der Aufbau ist ähnlich wie im ersten Beispiel, nur dass ein Ordner mit ein Unterordner dazugekommen ist.

updateZip2.JPG


ich habe also im "root / Hauptordner" unsere zip datei ein "system" Ordner hinterlegt und meine "build.prop" Datei reinkopiert.
Der Aufbau entspricht dem Pfad in A1 !!

Jetzt schauen wir uns die "update-script" an:
Code:
ui_print("Restore Build.prop");
ui_print("Mounting system...");
run_program("/sbin/busybox", "mount", "/system");
show_progress(1, 15);
ui_print("Restoring Build.prop");
package_extract_dir("system", "/system");
set_perm(0, 0, 06755, "/system/build.prop");
ui_print("Unmounting system...");
run_program("/sbin/busybox", "umount", "/system");
ui_print("Fertig :-)");

Und wieder Stück für Stück:

Code:
ui_print("Restore Build.prop");
ui_print("Mounting system...");
run_program("/sbin/busybox", "mount", "/system");
show_progress(1, 15);
ui_print("Restoring Build.prop");

Diesen ersten 5 Zeilen habe ich schon im ersten Beitrag erklärt.

Code:
package_extract_dir("system", "/system");
hier entpacken / extrahieren und kopieren wir den inhalt aus unsere zip und "system" Ordner in "system" Ordner auf A1.

Code:
set_perm(0, 0, 06755, "/system/build.prop");

hier verteile ich die Rechte für die kopierte Datei auf A1

Code:
ui_print("Unmounting system...");
run_program("/sbin/busybox", "umount", "/system");
ui_print("Fertig :-)");
und die letzte 3 Zeilen habe ich in ersten Beitrag erklärt.

weiteres Beispiel zu kopieren
Um sicher zu stellen dass alle es verstehe, gebe ich hier noch ein beispiel von kopieren:

wir wollen die "Phone.apk" wiederherstellen / kopieren.
Diese datei befindet sich auf A1 in Ordner "/system/app"
Demensprechend erstelle ich in meine zip Datei genau diese Aufbau.
Also im root / Hauptordner ein Ordner "system" und drin ein Ordner "app" und da kopiere ich meine Datein "Phone.apk" und "Phone.odex"

Script ist fast identisch wie schon im oberen Beispiel.

Code:
package_extract_dir("system", "/system");
set_perm(0, 0, 06755, "/system/app/Phone.apk");
set_perm(0, 0, 06755, "/system/app/Phone.odex");

weiteres Beispiel "A1_rooter.zip"

Und als Sahne zum Schluss hier noch die beliebste A1_rooter.zip Paket.
Das ist das erste von mir erstellte und meist runtegeladene von allem.

Der Aufbau ist ähnlich wie im Beispiel davor:

updateZip3.JPG


Um A1 zu rooten brauche ich ein "SuperUser.apk" app und eine "su" Script.
"SuperUser.apk" kommt in Ordner "system/app"
"su" kommt in Ordner "/system/xbin"

und hier noch Sript dazu:

Code:
ui_print("Rooting LENOVO A1");
ui_print("By anddior");
ui_print("Mounting system...");
run_program("/sbin/busybox", "mount", "/system");
show_progress(1, 15);
package_extract_dir("system", "/system");
set_perm(0, 0, 06755, "/system/xbin/busybox");
set_perm(0, 0, 06755, "/system/xbin/su");
ui_print("Unmounting system...");
run_program("/sbin/busybox", "umount", "/system");
ui_print("Installation complete, have fun!");

Ich denke ihr braucht keine weitere Erklärung zu diese Script da alles schon bescrieben wurde.


Und ja, so einfach kann das rooten sein....
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: solaris63, Forwarder78, Skelli und 8 andere
Bei mir steht da nur

Code:
E:Error in /sdcard/test.zip
(Status 6)
Installation aborted.
 
Zeig mal deine script.
Oder noch besser, lade deine zip Datei hoch
 
Ich habe jetzt das Dateiformat der bearbeitenden Datei auf ein Unix Format geändert in notepad++. Jetzt kommt das Gleiche mit Status 4

Das ganze ist erstmal ein Testscript. Da steht noch nicht viel drin.
 

Anhänge

  • test.zip
    127,5 KB · Aufrufe: 297
Ich habe jetzt deine Test.zip runtergeladen , entpackt, die Endung. sh aus Dateiname upater-script gelöscht, als wieder gezipt und mit cwm gestartet.
Alles bestens, läuft durch bei mir.
Anhang anzeigen test.zip
 
Zuletzt bearbeitet:
ok dann hast du wohl ein anderes Android oben. Oder geht das nicht weil ich ne Custom ROM oben hab? Hab die Lite'ning ROM 3.6 (basierend auf Android 4.0.3) Oder muss ich einen anderen Kernel nehmen oder gleich ne Samsung Stock Firmware flashen?
 
Ich habe es nur mit Lenovo probiert. Aus cwm heraus.
 
aso das wird heißen mit nem Samsung Galaxy S2 wird das nicht funktionieren
 
1:1 ehe nicht.
 
wie kann ich die update-binary ändern? Glaub dass es an dieser Datei liegt.
 
Code:
ui_print("Meine Bootanimation");
ui_print("created by XXX");
mount("ext4", "EMMC", "/dev/block/mmcblk0p9");
delete("/system/media/bootanimation.zip");
package_extract_dir("ani", "/system/media");
unmount("ext4", "EMMC", "/dev/block/mmcblk0p9");
ui_print("Installation Beendet");

Installation Aborted
 
Hi kann mir einer sagen wie ich die ordner in die rom bekomme ?
Gruß Blackjubel
 

Anhänge

  • update.rar
    18 MB · Aufrufe: 178
Kann mir keiner helfen, wie ich den script machen muss ,das die Ordner samt Inhalt extrahiert werden .
Gruß Blackjubel
 
Bekomme ich die so rein die Ordner ,samt Daten ,oder was muss ich da andern .

Code:
ui_print("Restore Build.prop");
ui_print("Mounting system...");
run_program("/sbin/busybox", "mount", "/system");
show_progress(1, 15);
ui_print("Restoring Build.prop");
package_extract_dir("system", "/system");
package_extract_dir("system/app", "/system/app");
package_extract_dir("system/lib", "/system/lib");
package_extract_dir("system/etc", "/system/etc");
package_extract_dir("system/vendor", "/system/vendor");
package_extract_dir("system/cameradate", "/system/cameradate");
package_extract_dir("system/bin", "/system/bin");
set_perm(0, 0, 06755, "/system/build.prop");
ui_print("Unmounting system...");
run_program("/sbin/busybox", "umount", "/system");
ui_print("Fertig :-)");
 

Ähnliche Themen

J
Antworten
3
Aufrufe
2.180
bhf
bhf
dawkon13
Antworten
5
Aufrufe
3.821
BanaSplit
B
J
  • jensemann69
Antworten
1
Aufrufe
1.409
jensemann69
J
Zurück
Oben Unten