Ich habe mehrere Samsung-Geräte gerootet und das zugrunde liegende "Ziel" scheint sozusagen darin zu bestehen, die su
Binärdatei einzuspielen /system/xbin
und Superuser.apk zu installieren .
Meine Frage ist, warum muss man durch all diese Reifen springen, um das Telefon zu rooten (benutzerdefinierte Wiederherstellung installieren und vorgerootetes ROM flashen oder die aktuelle Installation ausnutzen)? Könnte man nicht einfach ein vorkompiliertes su herunterladen, auf die SD-Karte verschieben und über adb ausführen? Die Sache, die ein ROM "pre-rooted" zu machen scheint, ist, dass es Superuser und die su-Binärdatei in ihren jeweiligen Systempfaden hat. Ich verstehe nicht, warum es so wichtig ist, dass es davon gerannt wird /system/xbin
.
Die su-Binärdatei benötigt sowohl das Ausführungs- als auch das setuid-Berechtigungsbit gesetzt. Das erste ist erforderlich, damit die Datei ausgeführt werden kann, und das zweite, dass sie automatisch mit den Rechten des Dateibesitzers ausgeführt wird (gesetzte Benutzer-ID oder Setuid. In diesem Fall ist der Besitzer root. Lesen Sie hier mehr ).
Für Dateien auf dem externen Speicher sind die Berechtigungsbits für ausführbare Dateien und setuid nicht gesetzt, und sie können ohne Root-Rechte nicht gewährt werden. Beachten Sie auch, dass die SD-Karte mit dem Flag „noexec“ gemountet wird, um die Ausführung generell beim Booten zu verhindern:
shell@android:/sdcard $ ./su
/system/bin/sh: ./su: can't execute: Permission denied
126|shell@android:/sdcard $ chmod 4755 su
Unable to chmod su: Operation not permitted
10|shell@android:/sdcard $ mount | grep /mnt/sdcard
/dev/block/mmcblk0p1 /mnt/sdcard vfat [...],noexec,[...]
Das ist im Grunde der Grund, warum Sie nicht einfach su
auf die SD-Karte kopieren und sie dann ausführen können, um sich selbst Root zu gewähren.
Beim Rooten wird die Schwachstelle je nach Android-Version ausgenutzt, daher " springen Sie durch alle Reifen, um das Telefon zu rooten " .
Es ist ein Huhn und Ei!
Um root auszunutzen, benötigen Sie einen ungesicherten ADB-Daemon (dh die Fähigkeit zum erneuten Einhängen /system
) auf dem Mobilteil, und um einen ungesicherten ADB zu haben, benötigen Sie Root! UND außerdem benötigen Sie einen entsperrten Bootloader.
Sehen Sie sich einen Exploit namens zergRush an, der auf github gefunden wurde; Die interessierende Funktion wird aufgerufen, do_fault()
wenn ein Versuch unternommen wird, den Stack-Frame des vold
's-Daemons zu "brechen", indem eine Verbindung zu der Pipe hergestellt wird, die ihm gehört, und ihn zum Absturz bringt, indem der Stack-Zeiger so überschrieben wird, dass er auf eine Kopie zeigt Version der Shell boomsh
, die dann von ausgeführt wird /data/local/tmp
.
Nachdem Sie den Quelltext gelesen haben, werden Sie nun erkennen, warum das Kopieren der su
Binärdatei nicht ausreicht, um das Mobilteil "zu rooten", und warum Hoops durchgesprungen werden müssen. Und da das ausführbare Bit auf Dateisystemebene für die SD-Karte blockiert ist, gehen Sie nicht dorthin - das ist aus offensichtlichen Gründen da! :)
chmod
-ding die Berechtigungen der SD-Karte, um dies zu tun! :)/system/xbin
ist das Verzeichnis, in das die Busybox-Dienstprogramme gehen, und ... in einem gerooteten Mobilteil ergibt die Ausgabe echo $PATH
von /sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin <- Beachten Sie es! Es liegt im Weg! Um das da drin zu haben, braucht man root, also viele Henne-Eier-Situationen ... :D
Benutzer974896
Eldarerathis
passwd
odershadow
-Dateien. Sie brauchen buchstäblich root, umsu
einen ausführbaren Speicherort zu erstellen, weshalb Root-Methoden entweder einen Privilegien-Eskalations-Exploit beinhalten oder in eine benutzerdefinierte Wiederherstellung einsteigen (bei der im Grunde alles ausgeschlossen ist).iOS
Lüge Ryan
Lüge Ryan