Warum funktioniert das Rooten von Apps nicht mehr?

Vor ein paar Jahren war es einfach, jedes Gerät zu rooten: Installieren Sie KingRoot, KingoRoot oder eine ähnliche App, drücken Sie die große ROOT-Taste und lassen Sie es den Rest erledigen. Nach ungefähr 5 Minuten wird ein grünes "Root Succeeded!" Die Eingabeaufforderung wird angezeigt, und wir können wählen, ob wir die Root-App behalten oder sie deinstallieren und eine saubere Root-Manager-App wie SuperSU/Superuser installieren möchten.

Wie arbeiten Sie?
Warum arbeiten sie nicht mehr?
Und wenn sie funktionieren, soll ich sie verwenden oder nicht?

Dies könnte hilfreich sein, insbesondere der VERIFIED / SECURE BOOTAbschnitt: forum.xda-developers.com/android/general/…

Antworten (1)

Ich hatte diese Frage vor ein paar Monaten und fand diese Antwort durch einige Recherchen, also dachte ich, meine Forschung auf dieser Seite zu teilen, indem ich meine Frage beantworte, angesichts der gefälschten Informationen online. (Zum Beispiel sagt die offizielle KingoRoot-Site, dass sie Android Oreo rooten kann , was völlig falsche Informationen sind.)

Wie funktionieren die Rooting-Apps?

Es gibt ziemlich viele Rooting-Apps, KingRoot, KingoRoot, Z4Root, Root Genius, Universal Androot, um nur einige beliebte/früher beliebte Apps zu nennen. Alle nutzen Exploits/Sicherheitslücken/Schlupflöcher im Android-Betriebssystem, um sich Privilegien zu verschaffen, die den System-Apps oder sogar dem Android-Betriebssystem selbst vorbehalten sind. Und dann mounten sie das Verzeichnis mit dem Namen, das die Prozesse enthält, die erforderlich sind, um das System zum Laufen zu bringen, und die System-Apps als Lese-/Schreibzugriff /system, und platzieren eine Binärdatei mit dem Namen suan einer Stelle des Verzeichnisses, nämlich /system/bin/su. Wenn eine App root erfordert, führt die App diese Binärdatei aus, und Sie sehen eine Eingabeaufforderung, ob Sie den Root-Zugriff zulassen oder ablehnen möchten.

Die entdeckten Exploits/Schwachstellen erhalten eine CVEID und werden dann auf der CVE-Website detailliert beschrieben und in den Android Security Bulletins behoben . Ein Beispiel ist die berüchtigte DirtyC0W-Schwachstelle, der die CVEID gegeben wurde CVE-2016-5195, die die älteren Linux-Kernel plagte und immer noch plagt. Fast alle oben genannten Apps nutzen diese Schwachstelle aus.

Warum funktionieren die Root-Apps nicht mehr?

Wie in den obigen Bulletins erwähnt, behebt Google jeden Monat eine Reihe von Problemen in Android. Der Umfang der Schwachstellen nimmt also stark ab. Alle Schwachstellen, die die Rooting-Apps bisher nutzten, wurden irgendwo im Januar 2018 in den Sicherheitspatches behoben .

Aber es kann Probleme geben, die einige Hersteller vergessen haben zu patchen! Was ist mit denen?

Unter Android 6.0.0 oder neuer führt dies nur dazu, dass das Gerät nicht mehr startet. Um den Grund dafür zu verstehen, müssen wir uns ein Konzept namens Chain of Trust ansehen .

Chain of Trust , abgekürzt CoT, ist ein Sicherheitsmechanismus, der eingeführt wurde, um das Android-Betriebssystem vor Viren und unbefugten Modifikationen zu schützen. Es funktioniert wie eine Kette aus Hard- und Software, bei der jeder Teil den nächsten Teil verifiziert. Schritt für Schritt:

  1. Wenn Sie das Gerät einschalten, wird eine Hardwarefunktion (manchmal auch Boot-ROM genannt) gestartet. Das Boot-ROM ist in die Hardware eingebrannt und kann nicht geändert werden.
  2. Das Boot-ROM verifiziert die erste Software im CoT, den Bootloader, bei dem es sich um einen rohen binären Blob handelt, der manchmal als Preloader bezeichnet wird. (Auch das Boot-ROM lädt und verwendet je nach Hersteller manchmal spezielle benutzerdefinierte Partitionen/Binärdateien.) Wenn der Bootloader die Überprüfungen nicht besteht, fährt das Gerät herunter. Wenn es bestanden wird, führt das Boot-ROM den Bootloader aus.
  3. Der Bootloader prüft die ihm vom Boot-ROM übergebenen Optionen und wählt den passenden Boot-Modus aus. Die üblichen Boot-Modi, die auf fast jedem Gerät vorhanden sind, sind der normale Android-Boot, Recovery und Fastboot/Download.

Wenn der Bootloader gesperrt ist, überprüft er, ob der nächste auszuführende Teil von CoT intakt ist, und wenn dies der Fall ist, führt der Bootloader ihn aus. Wenn dies nicht der Fall ist, kann es je nach Gerätemodell heruntergefahren, neu gestartet oder in einem speziellen Bootloader-Modus hängen bleiben.

Wenn der Bootloader entsperrt ist, überprüft er den nächsten Teil von CoT nicht, sondern lädt ihn direkt.

  1. Der nächste Teil wird Bootpartition genannt . Es übernimmt die Art und Weise, wie das System selbst gestartet wird. In Android-Versionen ab/neuer als 6.0.0 (Lollipop) überprüft es auch, ob das System intakt ist, und wenn es modifiziert wird, fährt es herunter.

Wie zuerst erwähnt, nutzen diese Root-Apps die Schwachstellen aus, um zu modify /system, was von der Boot-Partition verifiziert wird, wie in Stufe 4 oben erwähnt. Jede Änderung führt also dazu, dass das Gerät nicht startet. Dieser Zustand wird allgemein als "Soft-Brick" bezeichnet, der nur durch einen erneuten Blitz behoben werden kann.

Die neueren Geräte erfordern also, dass der Bootloader entsperrt wird, wenn Sie Ihr Gerät rooten möchten. Diese Geräte werden gerootet, indem eine Wiederherstellung mit mehr Optionen als die normale Wiederherstellung (wie TWRP, ClockWorkMod), die normalerweise als benutzerdefinierte Wiederherstellung bezeichnet wird, geflasht und damit die Startpartition geändert (und die Systemüberprüfung deaktiviert) wird. Es ist auch möglich, die Startpartition ohne eine benutzerdefinierte Wiederherstellung direkt zu ändern.

Einige Hersteller bieten eine Möglichkeit, den Bootloader zu entsperren, andere nicht. Die beliebten Geräte mit gesperrten Bootloads (z. B. Samsung S-Geräte mit Sperrung durch den US-Netzbetreiber) werden von der Android-Modding-Community ausgenutzt.

Mein Gerät ist noch Android 5.1.1 oder älter! Soll ich diese zum Rooten verwenden?

Die meisten dieser älteren Geräte können durch die Rooting-Apps gerootet werden. Du könntest also. Sollten Sie? Das hängt von Ihren Vorlieben ab. Root-Zugriff gewährt die Macht über alles im Betriebssystem, und mit Root-Zugriff dauert es normalerweise nicht einmal eine Mikrosekunde, um sicherzustellen, dass Ihr Gerät nie wieder bootet. Es ist sehr wahrscheinlich, dass die Rooting-Apps das nie tun werden, aber sie könnten es. Außerdem könnte eine App mit Root auf alles zugreifen, was Ihr Gerät tut, und alles, was es in seinem Speicher hält, einschließlich Ihrer Kreditkarteninformationen, Passwörter usw. Wenn das für Sie nach einer ernsthaften Bedrohung der Privatsphäre klingt, verwenden Sie vielleicht nicht die Root-Apps. Wem das egal ist, der kann es versuchen.

Wenn Sie schlau genug sind, gibt es die Quellen fast aller Exploits, die diese Root-Apps verwenden. Sie können versuchen, sie per CVEID zu suchen, in Git nach ihnen zu suchen, sie zu kompilieren und auszuführen und zu versuchen, eine Root-Shell zu erhalten, und Sie können die suBinärdatei und die anderen Abhängigkeiten selbst installieren.

Außerdem ist KingoRoot dafür bekannt, hochsensible Daten wie IMEI und Seriennummer an seine Server zu senden. Die Chancen stehen gut, dass sie sie nie verwenden werden, aber das ist am Ende Ihre Entscheidung. Und KingRoot ist dafür bekannt, eine Hintertür in seinem SDK zu installieren, die es einigen Apps ermöglichte, vom Benutzer nicht autorisierten Root-Zugriff zu erhalten.

Abschluss

Die Ära der Rooting-Apps ist längst vorbei. Die Root-Apps funktionieren nicht mehr und wenn Sie sie auf neueren Android-Versionen verwenden, riskieren Sie, dass Ihr Gerät weich gemauert wird und wahrscheinlich alle Ihre Daten verloren gehen. Wenn Sie sie auf unterstützten Android-Versionen verwenden, funktionieren sie die meiste Zeit, aber es gibt Datenschutz- und Sicherheitsbedenken, die Sie berücksichtigen sollten, bevor Sie fortfahren.

Ich hoffe, meine Forschung würde in Zukunft jemandem helfen, der das gleiche Problem hat wie ich. :)