[SAMSUNG][TUTORIAL] Single-Step Custom-Recovery & Root & BusyBox

A

Android-Andi34

Enthusiast
1.621
Single-Step
Custom-Recovery & Root & BusyBox

Tutorial für Samsung-Geräte


Disclaimer

Ich habe diese Methode noch nicht auf anderen Geräten getestet - kann also nicht versprechen, dass es auch wirklich auf anderen Geräten klappt! Theorie und Praxis sind manchmal 2 Paar Schuhe - Folgt diesem Tutorial nur dann, wenn ihr wisst, was ihr da eigentlich macht!

Durch diesen Systemeingriff verliert ihr die Garantie auf euer Gerät!
Der Flashcounter steigt (kann ggf. mit Triangle Away zurückgesetzt werden wenn man es braucht).

Weder ich, noch Android-Hilfe.de, übernehmen eine Garantie. Durch das Herunterladen, Installieren und Verwenden dieser Software können Hardware- sowie Softwareschäden entstehen - Diese können bis zum "Totalschaden" führen! Außerdem kann nicht für die Richtigkeit der ausgewiesene Download-Links garantiert werden und das diese frei von Schadsoftware sind.

Ich übernehme diesbezüglich keinerlei Garantien oder Gewährleistung - Ihr handelt voll auf eigene Verantwortung und Risiko!!! Von mir hinzugefügte Angaben und Hilfestellungen habe ich nach bestem Wissen formuliert und eingearbeitet. Für die inhaltliche Richtigkeit übernehme ich keinerlei Verantwortung.

Wenn ihr nicht sicher seid, was ihr macht, könnt ihr hier gerne Fragen stellen, aber wenn ihr danach immer noch nicht genau wisst, was ihr tut: Lasst es bleiben!


Allgemeine Infos
Diese Root-Methode basiert auf der "Singel-Step"-Root-Methode von den XDA-Usern ketut.kumajaya (Entwickler des NEXT Kernels für das Galaxy Tab 2) und Luigi2012SM64DS für das Samsung Galaxy Tab 2 (P31XX) - An dieser Stelle auch hier Danke!

Diese Methode funktioniert auf dem Samsung Galaxy Tab 2 mit Stock Android 4.0.x Android 4.1.x und Android 4.2.2.


Was passiert bei dieser Methode eigentlich?

Für die, die gerne wissen wollen, was hier eigentlich passiert, hier einmal alle wichtigen Infos zu dieser Root-Methode.

In der *.tar.md5 ist enthalten:

  • recovery.img - das Custom-Recovery für euer Gerät
  • cache.img - hier drin ist ein Ordner enthalten mit dem Namen "Recovery"
    • im Recovery Ordner ist eine Datei mit dem Namen "command" - das löst das automatische flashen der ZIP zum Rooten aus, anschließend wird der cache gewipet.
      --update_package=CACHE:recovery/universal-root.zip
      --wipe_cache
    • wie bereits erwähnt ist das ZIP zum rooten ebenfalls in diesem Ordner enthalten - "universal-root.zip".
      Diese ZIP enthält die SuperSu-App, sowie BusyBox.
      Über das Updater-Script werden alte Root-Dateien und BusyBox deinstalliert, danach die Root-Dateien an die richtige Stelle entpackt und die Verlinkungen (symlinks) für BusyBox erstellt, damit dieses anschließend richtig funktioniert.

Soviel zur Theorie!


Features der Root-Methode

  • "Single-Step" für Custom-Recovery und root!
  • Philz Touch Recovery oder TWRP oder ClockworkMod Recovery
  • SuperSU v1.65 von Chainfire, SuperSU: "su" in "adb shell" ohne Rückfrage.
  • BusyBox v1.21.1-stericson
  • automatischer Unroot und Busyboxentfernung bevor neu gerootet wird
  • Fix busybox symlink, prevent it conflict to Android toolbox
  • sysrw und sysro script für remounting /system read write oder read only
  • Backup /etc/install-recovery.sh script to /etc/install-recovery.sh.backup und /system/recovery-from-boot.p patch nach /system/recovery-from-boot.p.backup sofern existiert, lässt sich bei Bedarf also Wiederherstellen


Vorraussetzungen

  1. Linux (z.B. Ubuntu) als Betriebssystem (alternativ in einer Virtuellen Maschiene oder als Live-System auf einem USB-Stick)
  2. Custom-Recovery für euer Gerät (ClockworkMod Recovery oder PhilZ Touch)
  3. Ihr kennt die Partitions-Tabelle für euer Gerät!


Vorbereitung

Öffnet einen Terminal und erstellt einen Ordner mit dem Name "cache" und darin einen Ordner "recovery"
Code:
sudo mkdir -p cache/recovery
Erstellt eine Datei mit dem Namen "command" unter cache/recovery.
Code:
touch cache/recovery/command
Öffnet die "command" Datei mit gedit
Code:
gedit cache/recovery/command
Fügt in gedit nun folgende Zeilen ein (3 Zeilen, 3 Zeile bleibt leer!):
Code:
--update_package=CACHE:recovery/universal-root.zip
--wipe_cache
Datei Speichern und gedit schließen.



Das Updater-Script vorbereiten

Updater-Script erstellen und mit gedit bearbeiten:
Code:
touch updater-script
gedit updater-script
Die ersten Zeilen bitte folgende (Credits für ketut.kumajaya bitte stehen lassen!):
Code:
ui_print("***********************************");
ui_print("         Universal Root by            ");
ui_print("ketut.kumajaya @ xda-developers.com");
ui_print("***********************************");
Anschließend fügt ihr die passenden "getprop" lines für euer Gerät ein, um sicherzustellen, dass kein Anderes Gerät schaden nimmt, wenn diese Datei geflasht wird!
Als Beispiel dient das Samsung Galaxy Tab 2
Code:
[COLOR=Red]assert(getprop("ro.product.model") == "GT-P3100" || 
       getprop("ro.product.model") == "GT-P3110" || 
       getprop("ro.product.model") == "GT-P3113" ||
       getprop("ro.product.model") == "GT-P5100" || 
       getprop("ro.product.model") == "GT-P5110" || 
       getprop("ro.product.model") == "GT-P5113");[/COLOR]
Anschließend müsst ihr "system" und "data" mounten, auch hier müsst ihr wieder an euer Gerät anpassen, ohne diese Anpassung besteht die Gefahr eines Bricks!!!:
Code:
show_progress(1.000000, 0);
[COLOR=Red]mount("ext4", "EMMC", "/dev/block/mmcblk0p9", "/system");
mount("ext4", "EMMC", "/dev/block/mmcblk0p10", "/data");[/COLOR]
Den Rest einfach wieder komplett übernehmen:
Code:
set_progress(0.200000);
ui_print("- Remove existing root");
ui_print("- Mounting filesystem");
package_extract_file("system/xbin/busybox", "/tmp/busybox");
set_perm(0, 0, 0755, "/tmp/busybox");
package_extract_file("cleaner", "/tmp/cleaner");
set_perm(0, 0, 0755, "/tmp/cleaner");
run_program("/tmp/cleaner");
set_progress(0.300000);
ui_print("- Extracting files");
package_extract_dir("system", "/system");
set_progress(0.500000);
symlink("busybox", "/system/xbin/[", "/system/xbin/[[",
        "/system/xbin/adjtimex", "/system/xbin/arp", "/system/xbin/ash",
        "/system/xbin/awk", "/system/xbin/base64", "/system/xbin/basename",
        "/system/xbin/bbconfig", "/system/xbin/blkid", "/system/xbin/blockdev",
        "/system/xbin/brctl", "/system/xbin/bunzip2", "/system/xbin/bzcat",
        "/system/xbin/bzip2", "/system/xbin/cal", "/system/xbin/cat",
        "/system/xbin/catv", "/system/xbin/chattr", "/system/xbin/chgrp",
        "/system/xbin/chmod", "/system/xbin/chown", "/system/xbin/chroot",
        "/system/xbin/clear", "/system/xbin/cmp", "/system/xbin/comm",
        "/system/xbin/cp", "/system/xbin/cpio", "/system/xbin/crond",
        "/system/xbin/crontab", "/system/xbin/cut", "/system/xbin/date",
        "/system/xbin/dc", "/system/xbin/dd", "/system/xbin/depmod",
        "/system/xbin/devmem", "/system/xbin/df", "/system/xbin/diff",
        "/system/xbin/dirname", "/system/xbin/dmesg", "/system/xbin/dnsd",
        "/system/xbin/dos2unix", "/system/xbin/du", "/system/xbin/echo",
        "/system/xbin/ed", "/system/xbin/egrep", "/system/xbin/env",
        "/system/xbin/expand", "/system/xbin/expr", "/system/xbin/false",
        "/system/xbin/fdisk", "/system/xbin/fgrep", "/system/xbin/find",
        "/system/xbin/flash_lock", "/system/xbin/flash_unlock",
        "/system/xbin/flashcp", "/system/xbin/flock", "/system/xbin/fold",
        "/system/xbin/free", "/system/xbin/freeramdisk", "/system/xbin/fsync",
        "/system/xbin/ftpget", "/system/xbin/ftpput", "/system/xbin/fuser",
        "/system/xbin/getopt", "/system/xbin/grep", "/system/xbin/groups",
        "/system/xbin/gunzip", "/system/xbin/gzip", "/system/xbin/halt",
        "/system/xbin/head", "/system/xbin/hexdump", "/system/xbin/id",
        "/system/xbin/ifconfig", "/system/xbin/inetd", "/system/xbin/insmod",
        "/system/xbin/install", "/system/xbin/iostat", "/system/xbin/ip",
        "/system/xbin/kill", "/system/xbin/killall", "/system/xbin/killall5",
        "/system/xbin/length", "/system/xbin/less", "/system/xbin/ln",
        "/system/xbin/losetup", "/system/xbin/ls", "/system/xbin/lsattr",
        "/system/xbin/lsmod", "/system/xbin/lsusb", "/system/xbin/lzcat",
        "/system/xbin/lzma", "/system/xbin/lzop", "/system/xbin/lzopcat",
        "/system/xbin/man", "/system/xbin/md5sum", "/system/xbin/mesg",
        "/system/xbin/mkdir", "/system/xbin/mke2fs", "/system/xbin/mkfifo",
        "/system/xbin/mkfs.ext2", "/system/xbin/mkfs.vfat",
        "/system/xbin/mknod", "/system/xbin/mkswap", "/system/xbin/mktemp",
        "/system/xbin/modinfo", "/system/xbin/modprobe", "/system/xbin/more",
        "/system/xbin/mount", "/system/xbin/mountpoint", "/system/xbin/mpstat",
        "/system/xbin/mv", "/system/xbin/nanddump", "/system/xbin/nandwrite",
        "/system/xbin/netstat", "/system/xbin/nice", "/system/xbin/nohup",
        "/system/xbin/nslookup", "/system/xbin/ntpd", "/system/xbin/od",
        "/system/xbin/patch", "/system/xbin/pgrep", "/system/xbin/pidof",
        "/system/xbin/ping", "/system/xbin/pkill", "/system/xbin/pmap",
        "/system/xbin/poweroff", "/system/xbin/printenv", "/system/xbin/printf",
        "/system/xbin/ps", "/system/xbin/pstree", "/system/xbin/pwd",
        "/system/xbin/pwdx", "/system/xbin/rdev", "/system/xbin/readlink",
        "/system/xbin/realpath", "/system/xbin/renice", "/system/xbin/reset",
        "/system/xbin/resize", "/system/xbin/rev", "/system/xbin/rm",
        "/system/xbin/rmdir", "/system/xbin/rmmod", "/system/xbin/route",
        "/system/xbin/run-parts", "/system/xbin/rx", "/system/xbin/sed",
        "/system/xbin/seq", "/system/xbin/setconsole", "/system/xbin/setserial",
        "/system/xbin/setsid", "/system/xbin/sh", "/system/xbin/sha1sum",
        "/system/xbin/sha256sum", "/system/xbin/sha512sum",
        "/system/xbin/sleep", "/system/xbin/sort", "/system/xbin/split",
        "/system/xbin/stat", "/system/xbin/strings", "/system/xbin/stty",
        "/system/xbin/sum", "/system/xbin/swapoff", "/system/xbin/swapon",
        "/system/xbin/sync", "/system/xbin/sysctl", "/system/xbin/tac",
        "/system/xbin/tail", "/system/xbin/tar", "/system/xbin/taskset",
        "/system/xbin/tee", "/system/xbin/telnet", "/system/xbin/telnetd",
        "/system/xbin/test", "/system/xbin/tftp", "/system/xbin/tftpd",
        "/system/xbin/time", "/system/xbin/timeout", "/system/xbin/top",
        "/system/xbin/touch", "/system/xbin/tr", "/system/xbin/traceroute",
        "/system/xbin/true", "/system/xbin/ttysize", "/system/xbin/tune2fs",
        "/system/xbin/umount", "/system/xbin/uname", "/system/xbin/uncompress",
        "/system/xbin/unexpand", "/system/xbin/uniq", "/system/xbin/unix2dos",
        "/system/xbin/unlzma", "/system/xbin/unlzop", "/system/xbin/unxz",
        "/system/xbin/unzip", "/system/xbin/uptime", "/system/xbin/usleep",
        "/system/xbin/uudecode", "/system/xbin/uuencode", "/system/xbin/vi",
        "/system/xbin/watch", "/system/xbin/wc", "/system/xbin/wget",
        "/system/xbin/which", "/system/xbin/whoami", "/system/xbin/xargs",
        "/system/xbin/xz", "/system/xbin/xzcat", "/system/xbin/yes",
        "/system/xbin/zcat");
set_progress(0.700000);
ui_print("- Backup OTA recovery");
package_extract_file("backup-recovery", "/tmp/backup-recovery");
set_perm(0, 0, 0755, "/tmp/backup-recovery");
run_program("/tmp/backup-recovery");
set_progress(0.800000);
set_perm(0, 0, 0644, "/system/app/Superuser.apk");
set_perm_recursive(0, 2000, 0755, 0755, "/system/xbin");
set_perm(0, 0, 06755, "/system/xbin/su");
set_progress(0.900000);
set_progress(1.000000);
ui_print("- Done!");
unmount("/system");
unmount("/data");
Das updater-script speichern und schließen.

Das updater-script liegt in eurem Home-Verzeichnis, nehmt das "updater-script" und fügt es in die "universal-root.zip" aus dem Anhang ein:

Öffnet hierfür die "universal-root.zip"
Navigiert in der ZIP nach "META-INF/com/google/android/"
Seht ihr die Datei "update-binary" ? Hier das "updater-script" einfügen.

Kopiert nun die "universal-root.zip" in /home/EUERBENUTZERNAME/cache/recovery

Die Vorarbeiten sind nun Fertig.


Cache.img packen

"make_ext4fs" und "simg2img" selbst compilieren oder herunterladen (z.B. hier) und in euer Home-Verzeichnis kopieren. Anschließend die die beiden Dateien ausführbar machen.
Code:
sudo chmod +x make_ext4fs
sudo chmod +x simg2img
Jetzt müssen unseren "cache"-Ordner als cache.img umwandeln.
Tipp: Macht nochmal eine letzte Kontrolle im Dateimanager. Öffnet den "cache" Ordner.
--> hier sollte nur ein Ordner mit dem Namen "recovery" sein.
Öffnet den "recovery" Ordner.
--> hier habt ihr die "universal-root.zip" und die "command" Datei.

Habt ihr noch anderen Dateien dort, dann habt ihr etwas falsch gemacht.
Das cache.img packen wir mit folgendem Befehl:
Code:
/home/EUERBENUTZERNAME/make_ext4fs -s -l 512M -a /home/EUERBENUTZERNAME/cache cache.img cache
In eurem Home-Verzeichnis habt ihr nun das "cache.img".



Odin-Flashbare *tar.md5 erstellen

Kopiert nun euer "recovery.img" in euer Home-Verzeichnis wo auch das "cache.img" liegt.

Über folgenden Befehl machen wir das cache.img mit dem recovery.img zusammen Odin-Flashbar:
Code:
tar -H ustar -c cache.img recovery.img > [COLOR=Red]GERAET-Recovery-Busybox-Root-Single-Step[/COLOR].tar
md5sum -t [COLOR=Red]GERAET-Recovery-Busybox-Root-Single-Step[/COLOR].tar >> [COLOR=Red]GERAET-Recovery-Busybox-Root-Single-Step[/COLOR].tar
mv [COLOR=Red]GERAET-Recovery-Busybox-Root-Single-Step[/COLOR].tar [COLOR=Red]GERAET-Recovery-Busybox-Root-Single-Step[/COLOR].tar.md5
Natürlich passt ihr den Namen noch an euer Gerät an, dafür alle "GERAET-Recovery-Busybox-Root-Single-Step" mit eurem Text ersetzen - in allen Zeilen!

Eine *.tar.md5 darf nicht nachträglich umbenannt werden, da Odin sonst an der md5-Prüfung scheitert!

In eurem Home-Verzeichnis liegt nun eure *.tar.md5 - diese lässt sich nun über Odin als PDA einspielen!



Ich hoffe es hat alles geklappt und hoffe, dass mein Tutorial nicht all zu schwer zu verstehen ist!
Über eine Rückmeldung würde ich micht freuen!
 

Anhänge

  • universal-root.zip
    1,5 MB · Aufrufe: 121
Zuletzt bearbeitet:
  • Danke
Reaktionen: Darkman

Ähnliche Themen

M
  • Mops21
Antworten
3
Aufrufe
240
Mops21
M
D
Antworten
4
Aufrufe
392
hagex
hagex
JohnyV
Antworten
8
Aufrufe
335
JohnyV
JohnyV
Zurück
Oben Unten