A
Android-Andi34
Enthusiast
- 1.621
Single-Step
Custom-Recovery & Root & BusyBox
Tutorial für Samsung-Geräte
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.
- 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.
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
- Linux (z.B. Ubuntu) als Betriebssystem (alternativ in einer Virtuellen Maschiene oder als Live-System auf einem USB-Stick)
- Custom-Recovery für euer Gerät (ClockworkMod Recovery oder PhilZ Touch)
- 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
Code:
touch cache/recovery/command
Code:
gedit cache/recovery/command
Code:
--update_package=CACHE:recovery/universal-root.zip
--wipe_cache
Das Updater-Script vorbereiten
Updater-Script erstellen und mit gedit bearbeiten:
Code:
touch updater-script
gedit updater-script
Code:
ui_print("***********************************");
ui_print(" Universal Root by ");
ui_print("ketut.kumajaya @ xda-developers.com");
ui_print("***********************************");
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]
Code:
show_progress(1.000000, 0);
[COLOR=Red]mount("ext4", "EMMC", "/dev/block/mmcblk0p9", "/system");
mount("ext4", "EMMC", "/dev/block/mmcblk0p10", "/data");[/COLOR]
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 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
Das cache.img packen wir mit folgendem Befehl: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.
Code:
/home/EUERBENUTZERNAME/make_ext4fs -s -l 512M -a /home/EUERBENUTZERNAME/cache cache.img cache
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
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!
Über eine Rückmeldung würde ich micht freuen!
Anhänge
Zuletzt bearbeitet: