anddior
Dauer-User
- 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:
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!");
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");
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...");
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.
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");
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 :-)");
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:
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: