>_ DevTrendsde

Sprache

Start

Sprachen

Bereiche

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicherheit
C

Bootloader-Prüfungen auf dem Snapdragon 8 Elite via ABL-Patching umgehen

Wer in den letzten Jahren aktuelle Android-Smartphones gerootet hat, kennt dieses Problem. Sobald Sie den Bootloader entsperren, streiken die Banking-Apps und Play Integrity-Prüfungen melden fröhlich ein kompromittiertes System. Normalerweise greifen Benutzer zu Modulen wie TrickyStore oder Keystore-Patches, aber Chipsatzhersteller und Google ziehen die Schrauben immer enger an.

Kürzlich bin ich auf ein interessantes Projekt namens gbl_root_canoe vom Entwickler superturtlee gestoßen. Das Repository wurde archiviert, da der Autor die Patch-Logik in einen stabilen Zustand gebracht und die finale Version gesperrt hat. Das Projekt bietet einen unkonventionellen Low-Level-Ansatz zur Lösung des Problems für Snapdragon 8 Gen 5 und 8 Elite Chips.

Was dieses Tool macht

Im Wesentlichen ist gbl_root_canoe ein EDK2-basierter Arbeitsbereich zur Modifikation von EFI-Anwendungen innerhalb von Qualcomm ABL-Images (Android Bootloader).

Die Kernidee des Autors besteht darin, eine Sicherheitslücke im GBL (Generic Bootloader Loader) auszunutzen. Das Standard-ABL lädt eine benutzerdefinierte superfastboot BDS direkt aus der Raw-Partition efisp. Diese BDS scannt dann eine kompatible Partition mit ext4- oder fat32-Dateisystem, findet eine vorbereitete Boot-Eintragsliste und übergibt die Kontrolle an das modifizierte ABL.

Als Ergebnis bootet das Gerät mit einem gefälschten gesperrten Bootloader-Status (Fake Locked Bootloader). Für das Betriebssystem und Hardware-Prüfungen erscheint das Gerät so, als wäre der Bootloader vollständig versiegelt, während Sie in Wirklichkeit vollen Zugriff auf Modifikationen behalten.

Woraus die Lösung besteht

Der gesamte Mechanismus basiert auf einer Kombination mehrerer Komponenten:

  • BDS.efi — ein benutzerdefinierter Bootloader (superfastboot BDS), der direkt auf Partition efisp geflasht wird.
  • boot.efi (auf der PC-Version ABL.efi genannt) — eine gepatchte ABL-Binary mit gefälschtem Sperrstatus. Sie befindet sich im Verzeichnis efisp/ auf Partition persist.
  • BOOTENTRIES — eine Text-Konfigurationsdatei mit einer Liste von Pfaden für die Übergabe der Boot-Kette.
  • LinuxLoader.efi (ABL_original.efi) — das originale unmodifizierte ABL, aufbewahrt für Analyse und Rollback.

Diese Trennung ermöglicht es, direkte Modifikationen an Systempartitionen bei jeder Änderung zu vermeiden und die Bypass-Logik in den Dienstpartitionen efisp und persist zu isolieren.

Wie es aus technischer Sicht funktioniert

Die Projektarchitektur ist an Cross-Compiling von C-Code für UEFI und den Bau von Low-Level-Tools extractfv und patch_abl gebunden.

Wenn Sie das Toolkit aus dem Quellcode selbst erstellen, benötigen Sie einen Linux-Host mit dem Standard-Satz an Tools: Clang oder GCC, LLD, Python 3, MinGW-w64 und Android NDK. Das Build-Skript unterstützt mehrere Ziele:

# Сборка тулкита для Linux
make target_toolkit_linux

# Сборка тулкита под Windows (через MinGW-w64)
make target_toolkit_windows

# Сборка модуля для KernelSU / Magisk / APatch через Android NDK
make target_magisk_module

# Сборка автономного набора утилит для запуска прямо на Android (arm64)
make target_toolkit_android

Um Root-Manager-Module zu erstellen, benötigen Sie nicht einmal den originalen Boot-Image-Dump abl.img Ihres Smartphones. Der Patcher cross-kompiliert für die Android-Architektur und assembliert in ein ZIP-Archiv, bereit für die Installation über KernelSU, Magisk oder APatch.

Installations-Tücken und Fallstricke

Die Arbeit mit Low-Level-Bootloader-Partitionen ist riskant, daher hat der Autor ein interaktives Installationsszenario direkt in das Modul-Skript eingebettet.

Beim ersten Flashen des Archivs über Magisk oder KernelSU wird die Steuerung über physische Lautstärketasten gehandhabt:

  1. Lauter (primäre Installation): Das Skript extrahiert .abl aus dem aktuellen Slot, patched es zu boot.efi, platziert die Dateien boot.efi, LinuxLoader.efi und BOOTENTRIES im Pfad /mnt/vendor/persist/efisp/ und flasht dann BDS.efi auf Partition efisp.
  2. Anschließend müssen Sie in die Recovery booten und ein vollständiges Format Data durchführen.
  3. Nach dem Systemstart wird das Modul erneut installiert, aber diesmal wählen Sie Leiser, um Patches für die Aufrechterhaltung der Funktionalität durch zukünftige OTA-Updates anzuwenden.

Wenn Sie es vorziehen, alles manuell von einem Computer aus zu erledigen, ermöglicht das Toolkit das Entpacken des Stock-abl.img, das Durchführen durch die Skripte build.sh oder build.bat und das Erhalten eines gepatchten ABL.efi.

Übrigens, wenn das Protokoll patch_log.txt eine Warnung zeigt, dass der GBL-Patch nicht angewendet werden konnte, hat der Hersteller diese Sicherheitslücke in Ihrer aktuellen Firmware-Version bereits geschlossen. In diesem Fall müssen Sie Partition abl auf einen früheren Build zurücksetzen, wo der Bug noch existiert.

Manuelles Flashen von BDS.efi erfolgt über einen Standard-Block-Schreibvorgang:

dd if=BDS.efi of=/dev/block/by-name/efisp bs=4M

Arbeiten mit Superfastboot

Wenn OEM Unlocking aktiviert ist, können Sie beim Einschalten des Geräts, wenn der Warnbildschirm erscheint, die Leiser-Taste gedrückt halten. Das Gerät wechselt in den Superfastboot-Modus (jene BDS).

Von dort aus sind die vertrauten Fastboot-Befehle verfügbar, jedoch mit erweiterten Fähigkeiten:

# Временный запуск любого EFI-файла без прошивки
fastboot boot custom.efi

# Блокировка загрузчика со сбросом данных
fastboot flashing lock

# Разблокировка загрузчика без вайпа данных
fastboot flashing unlock

Hier müssen Sie vorsichtig mit Verschlüsselungsschlüsseln sein. Wenn der TEE-Status desynchronisiert wird, verweigert der Secure Chip die Freigabe des Entschlüsselungsschlüssels für Benutzerdaten, und die Data-Partition bleibt unzugänglich.

Wem dieses Projekt nützen wird

Das gbl_root_canoe-Projekt ist unwahrscheinlich für Anfänger geeignet, die nur ein paar Tweaks auf ihrem Telefon installieren möchten. Dies ist ein Tool für fortgeschrittene Enthusiasten, Custom-ROM-Betreuer und diejenigen, die mit der Snapdragon-Boot-Architektur und der Android-Partitionsstruktur bestens vertraut sind.

Wenn Sie ein Snapdragon 8 Gen 5 oder 8 Elite Gerät besitzen und es leid sind, die Erkennung des entsperrten Bootloaders auf OS-Ebene zu bekämpfen, bietet dieses Repository einen fertigen und technisch eleganten Weg, das Problem im frühen EFI-Initialisierungsstadium zu umgehen. Der Quellcode ist unter der GPL v3-Lizenz offen, sodass Sie den Code für Ihre eigenen individuellen Szenarien frei forken und anpassen können.

Ähnliche Projekte