Custom Recovery (selbst kompilieren?)

Marbles

Original poster
Beta Tester
23 Juli 2021
3
Hallo Shift-Community und Entwickler,
ich habe seit wenigen Tagen nun ein Shift 6m und suche nach einer Custom Recovery-Lösung.
Nachdem es keine offizielle gibt, versuch ich meine eigene zu machen, wobei ich folgenende Frage hätte:

Wo/wie finde ich das Stock recovery.img?

Wäre für Hilfe sehr dankbar

Marbles
 
Du kannst es aus dem Image extrahieren!
Die sind momentan ein wenig verstreut und hier und hier zu finden.
 
  • Like
Reaktionen: Webbi1264
Logo. Kannst du mir da evtl. sagen wie?
Ich hab's bisher nicht hinbekommen, im scatter-file steht auch nichts von recovery.
Hab mich auch an anderen Artikeln zu dem Thema versucht (der zum Beispiel: https://forum.xda-developers.com/t/...-recovery-img-from-an-android-device.2027311/
oder der hier: https://forum.xda-developers.com/t/extracting-stock-boot-recovery-and-persist-images.4058447/ ),
hab's aber bisher nicht gefunden (ind den OTA-Dateien finde ich auch kein recovery.img).

Stell ich mich nur besonders doof an? :D

Freue mich über jede Hilfe
 
Kenne mich nicht so gut mit den Shift6m/5me aus, glaube aber das in den Flashtool Zip Dateien die Images direkt enthalten sind. Beim Shift6mq müssen die Images extrahiert werden. Gibt Python Skripte dafür. Könnte evtl. auch für 6m/5me für die Full OTA funktionieren.

Ich frage jetzt erst mal anders. Wenn du das Recovery hast weißt du Bescheid wie es weiter geht? Hast du Erfahrung mit Android und der Erstellung eines Custom Recovery? Frage deshalb weil dann solche, ich nenne es mal Basics, kein Problem sein sollten.
 
  • Like
Reaktionen: @Lhotze
Hab's noch nie gemacht😅
Hab in der Flashool-OTA-Zip kein recovery.img gefunden, nur das boot.img.
Hab auch mit dem Flashtool nichts gefunden...

Grüße
 

Anhänge

  • Screenshot (140).png
    Screenshot (140).png
    81,7 KB · Aufrufe: 10
  • Screenshot (141).png
    Screenshot (141).png
    58,5 KB · Aufrufe: 10
Kurzantwort:
Das "Recovery" ist in sehr wahrscheinlich in der boot.img Datei und muss von Hand herausarbeitetet werden. Die boot.img ist in der payload.bin für ein OTA-Update. Payload.bin kann wie bereits erwähnt mit einem Python Skript entpackt werden. Die boot.img sollte ein ext4 Dateisystem enthalten. Das sollte unter Windows komplizierter werden. Zudem würde ich nicht Empfehlen irgentwas auf das Gerät zu schreiben. Stadtessen sollte fastboot verwendet werden wenn möglich.

Wenn was falsch ist gerne korrigieren. Schreibe das aus dem Gedächtnis. Werde wahrscheinlich die Nachrich auch so noch ein paar mal bearbeiten.

Nun folgt eine Ausschweifung.

Ich wollte irgend wann einmal ein eigenes OS machen.
Hatte mal mit Android 2.3 herum gespielt.
Einiges hat sich geändert, aber das Konzept ist das gleiche.

Beim Start des Systems wird in der CPU ein Programm ausgeführt.
Dieses sucht an einer vorgegeben Stelle nach einem vom Hersteller abgelegtem Programm.
Welches meist ein modifiziertes UBoot ist. An Desktop-Rechnern ist dies zutage UEFI.
Das Programm des Herstellers bindet nun den internen Speicher ein und lädt das Betriebssystem.

Nun das Recovery ist ein BIOS, welches im Notfall das Hauptsystem aus einer Sicherungskopie wiederherstellen soll.
Im Gegensatz zu Desktops ist in Mobilgeräten mittlerweile eine zweite Kopie des Systems vorhanden.
Mit dem A/B-Partitionen bin ich nicht recht vertraut.
Bei einem OTA-Update wird die BIN-Datei entpackt.
Die entpackten IMG-Dateien werden in die B Partition geschrieben.
Nach einem Neustart wird von nun von A nach B gewechselt.
Wenn B nicht startet, dann war das Update fehlerhaft und es wird mit A versucht. und dann mit dem Recovery.

IMG-Dateien sind meist Kopien von Dateisystemen oder Partitionen welche 1 zu 1 auf Speichermedien geschrieben werden können.
Diese Dateisysteme enthalten dann einen Kernel. Je nach System werden weitere bestimmte Dateien an bestimmten Orten benötigt.
Beim starten schaut das Programm des Herstellers nun auf den Internen Speicher und wenn es den Kernel findet wird dieser gestartet.
Im Grunde könnte alles auch auf einer Partition sein es ist nur wichtig wo in dieser Partition der Kernel abgelegt ist.

Nun wenn kein recovery.img vorhanden ist, dann ist der Kernel meist in dem boot.img.
Ich wollte die Tage mal genauer schauen da ich bis jetzt nur die IMG-Dateien habe und noch nicht nachgeschaut wo genau das Recovery nun liegt.

P.s. 1 Ich würde Empfehlen erst einmal fastboot zu verwenden, da dies extra zum testen von Kernen gemacht wurde ohne diese auf das Gerät schreiben zu müssen.
P.s. 2 Je nach dem was für ein Programm von Shift genutzt wird um die Signatur des Kernels zu prüfen sollte es doch möglich sein eigene Schlüssel zu importieren.