Bootloader unlock / Root / Custom Recoveries / GSI / ROMs / Mods

  1. boot image mit python script extrahieren
  2. image auf dem Telefon ablegen
  3. Magisk 22 starten
  4. auf Magisk "Installieren" klicken
  5. "Eine Datei auswählen und patchen" auswählen
  6. Datei auswählen
  7. Los geht's
Anhang anzeigen 2830

Habe es eigentlich wie du gemacht!

Was sagt dein Log (Bekommst du wenn du oben rechts auf das Diskettensymbol klickst)? Nicht mehr als das was du schon gepostet hast?

Hänge meines mal an!
Ich habe eben extra nochmal ausprobiert und bekomme wieder die gleiche Fehlermeldung. In der Log-Datei steht auch nichts anderes, d.h. genau die folgenden Zeilen:

´´´
- Device platform: arm64-v8a
- Installing: 22.0 (22000)
! Unable to extract files
! Installation failed
´´´

Aufgrund der Fehlermeldung würde ich mal vermuten, dass Magisk nicht in der Lage ist die Datei boot.img zu extrahieren. Da die Datei zumindestens auf meinem PC mit der von Ene übereinstimmt und ich die Datei mindestens viermal per adb pull an zwei verschiedene Stellen auf mein Handy geladen habe, gehe ich davon aus, dass sie auch auf dem Handy korrekt ist. Inzwischen habe ich die Checksumme auch auf dem Handy überprüft. Sie stimmt auch.

Dann könnte es vielleicht noch ein Rechte-Problem sein...

Auch die Rechte der Datei scheinen zu stimmen. Die Datei boot.img gehört der Gruppe sdcard_rw und die Gruppe hat Lese- und Schreibrechte. Da Magisk mit den selben Rechten und der selben Gruppe im selben Verzeichnis die Log-Datei schreiben konnte, gehe ich davon aus, dass es auch kein Rechteproblem sein kann.

Oder sollte meine Magisk-Version eine Macke haben? Ich habe sie über F-Droid installiert und sie später aber auch nochmal über den 2. Install-Button in Magisk neu installiert.
Wie hast Du Dir Magisk auf Deinem Handy installiert?
 
Zuletzt bearbeitet:
Ganz wichtig. Beim nächsten SOS-L update nach der Installation (lokal oder OTA) nicht rebooten, sondern zuerst Magisk in den Inaktiven Slot installieren. Dann rebooten. Sonst geht das ganze von vorne los😁
Danke für den Hinweis.

D.h. einfach direkt nach dem Update auf den ersten Install-Button in Magisk tippen und dann auf die Auswahl "Install to Inactive Slot (After OTA)".

Ein gepatchtes Boot-Image oder irgend etwas anderes wird dann nicht mehr benötigt?
 
Oder sollte meine Magisk-Version eine Macke haben? Ich habe sie über F-Droid installiert und sie später aber auch nochmal über den 2. Install-Button in Magisk neu installiert.
Wie hast Du Dir Magisk auf Deinem Handy installiert?
Seltsam!

Ich hab sie einfach auf die schnelle von Github gezogen!
 
Was muss den für das Script alles vorhanden sein?

Es scheint mir noch was zu fehlen:

Code:
~ $ python Downloads/Shift6mq/extract_android_ota_payload.py Downloads/Shift6mq/SHIFT6MQ.SOS.3.1.L.20210226-RELEASE-OTA.zip Downloads/Shift6mq/image/
Traceback (most recent call last):
  File "Downloads/Shift6mq/extract_android_ota_payload.py", line 13, in <module>
    import update_metadata_pb2
ImportError: No module named update_metadata_pb2
 
Was muss den für das Script alles vorhanden sein?

Es scheint mir noch was zu fehlen:

Code:
~ $ python Downloads/Shift6mq/extract_android_ota_payload.py Downloads/Shift6mq/SHIFT6MQ.SOS.3.1.L.20210226-RELEASE-OTA.zip Downloads/Shift6mq/image/
Traceback (most recent call last):
  File "Downloads/Shift6mq/extract_android_ota_payload.py", line 13, in <module>
    import update_metadata_pb2
ImportError: No module named update_metadata_pb2
Das gehört zum Skript dazu! Sollte also dabei sein. Wahrscheinlich hast du es nicht mit geladen!
 
Hab jetzt das ganze ZIP geladen und entpackt. Unter Code -> Download as ZIP.

Jetzt ist es ein anderes Modul.

Code:
~ $ python Downloads/Shift6mq/extract_android_ota_payload-master/extract_android_ota_payload.py Downloads/Shift6mq/SHIFT6MQ.SOS.3.1.L.20210226-RELEASE-OTA.zip Downloads/Shift6mq/image/
Traceback (most recent call last):
  File "Downloads/Shift6mq/extract_android_ota_payload-master/extract_android_ota_payload.py", line 13, in <module>
    import update_metadata_pb2
  File "/home/username/Downloads/Shift6mq/extract_android_ota_payload-master/update_metadata_pb2.py", line 7, in <module>
    from google.protobuf import descriptor as _descriptor
ImportError: No module named google.protobuf

Hier der Inhalt des Ordners:

Code:
 ~ $ ls Downloads/Shift6mq/extract_android_ota_payload-master
extract_android_ota_payload.py  requirements.txt        update_metadata_pb2.pyc
README.md                       update_metadata_pb2.py
 
Zuletzt bearbeitet:
Hab jetzt das ganze ZIP geladen und entpackt. Unter Code -> Download as ZIP.

Jetzt ist es ein anderes Modul.
Äh ja das brauchst du auch noch ;)

Unter Linux sollte es evtl. mit deiner Distri mitkommen. Also nachinstallieren. Ansonsten über PIP holen wäre dann auch unter Windows nötig!

Die Antwort ist aber eigentlich schon da :unsure:
 
Zuletzt bearbeitet:
Danke!

Nachinstalliert hab ich es:

Code:
~ $ python3 --version
Python 3.8.5
~ $ sudo apt install python3-pip

Er scheint dies aber nicht zu finden:

Code:
~ $ pip3 install pip
Requirement already satisfied: pip in /usr/lib/python3/dist-packages (20.0.2)
~ $ pip3 install google.protobuf
ERROR: Could not find a version that satisfies the requirement google.protobuf (from versions: none)
ERROR: No matching distribution found for google.protobuf
~ $ pip3 install protobuf
Requirement already satisfied: protobuf in /usr/lib/python3/dist-packages (3.6.1)
 
Das Skript benötigt python3! pip3 install protobuf sagt dir das es ja anscheinend für python3 schon installiert ist.

Probier mal python3 extract_android_ota_payload.py anstatt python extract_android_ota_payload.py

Vermutlich wird mit python noch python2 aufgerufen!

Hättest also vermutlich pip eigentlich nicht benötigt!
 
Zuletzt bearbeitet:
Hat es jemand von Euch geschaft mit ShiftOS-L, MicroG und einem mit Magisk gerootetem Handy das Google SaftyNet zu aktivieren?

Ich habe irgendwo gelesen, dass das nicht mehr geht. Stimmt das?
 
Geht so Semi.
Mit viel Aufwand hatte ich den Magisk-Manager so weit, dass der nen bestandenen Safety-Net Test angezeigt hat. Die App Safety-Net-Checker hat aber weiterhin ein Missmatch angezeigt.
Da ich keine Safety-Net abhängigen Apps Nutze konnte ich es auch nicht testen.


Wir brauchen Magisk (bereits versteckt mit anderem Paketnamen und anderer Signatur).
Dazu das Modul
- Universal SafetyNet Fix.

Außerdem müssen wir unter "Magisk Hide" mindestens die MicroG-App "MicroG Droidguard Helper", besser alle MicroG-Apps verstecken.
Screenshot_20210403-164512_Root_01.png

Wenn noch EdXposed installiert ist brauchen wir aus dessen Repo noch das Modul "HiddenCore Modul" und müssen in den Einstellungen des EdXposed-Managers den Regler bei "Pass SafetyNet" aktivieren.
Screenshot_20210403-164436_EdXposed_Manager_01.png
Dann zeigt ein Basic SafetyNet-Test die Verifizierung als bestanden an.
Ein tiefergehender (Hardware)-Test über SafetyNet wird nicht bestanden. Ich denke das liegt daran, dass (bei mir) der Bootloader entsperrt ist.
Screenshot_20210403-164347_Root_01.pngScreenshot_20210403-174521_SafetyNet_Test_01.png
In Verbindung mit Safety-Net kommt es jetzt also drauf an, obspäter mit SafetyNet genutzte App nur die Basic-Ebene (bestanden) oder auch die Hardwareebene (nicht bestanden wegen offenem Bootloader) testet.

Wer jetzt wegen Safety-Net extra den Bootloader wieder schließt riskiert
a) eine Löschung aller Daten (ganz sicher)
b) nicht mehr die Möglichkeit zu haben nach dem Softwareupdate zu Rooten (auch sicher)
c) besteht wegen fehlender AVB-Verifizierung (aufgrund geändertem Kernel) die Möglichkeit, dass das System gar nicht mehr startet (ist nur ne Vermutung, hab ich nicht getestet und auch nicht vor)...

Greetz
 
Zuletzt bearbeitet:
Geht so Semi.
Mit viel Aufwand hatte ich den Magisk-Manager so weit, dass der nen bestandenen Safety-Net Test angezeigt hat. Die App Safety-Net-Checker hat aber weiterhin ein Missmatch angezeigt.
Da ich keine Safety-Net abhängigen Apps Nutze konnte ich es auch nicht testen.


Wir brauchen Magisk (bereits versteckt mit anderem Paketnamen und anderer Signatur).
Dazu das Modul
- Universal SafetyNet Fix.

Außerdem müssen wir unter "Magisk Hide" mindestens die MicroG-App "MicroG Droidguard Helper", besser alle MicroG-Apps verstecken.
Anhang anzeigen 2868

Wenn noch EdXposed installiert ist brauchen wir aus dessen Repo noch das Modul "HiddenCore Modul" und müssen in den Einstellungen des EdXposed-Managers den Regler bei "Pass SafetyNet" aktivieren.
Anhang anzeigen 2869
Dann zeigt ein Basic SafetyNet-Test die Verifizierung als bestanden an.
Ein tiefergehender (Hardware)-Test über SafetyNet wird nicht bestanden. Ich denke das liegt daran, dass (bei mir) der Bootloader entsperrt ist.
Anhang anzeigen 2870Anhang anzeigen 2871
In Verbindung mit Safety-Net kommt es jetzt also drauf an, obspäter mit SafetyNet genutzte App nur die Basic-Ebene (bestanden) oder auch die Hardwareebene (nicht bestanden wegen offenem Bootloader) testet.

Wer jetzt wegen Safety-Net extra den Bootloader wieder schließt riskiert
a) eine Löschung aller Daten (ganz sicher)
b) nicht mehr die Möglichkeit zu haben nach dem Softwareupdate zu Rooten (auch sicher)
c) besteht wegen fehlender AVB-Verifizierung (aufgrund geändertem Kernel) die Möglichkeit, dass das System gar nicht mehr startet (ist nur ne Vermutung, hab ich nicht getestet und auch nicht vor)...

Greetz
Anmerkung zu EdXPosed: Von dessen Machern gibt es jetzt auch LSPosed welches standardmäßig nicht alle Apps hooked und auch keine Globalen Ressourcen hooked. Aktuell müssen XPosed Module geupdated werden damit diese auf Anhieb funktionieren. Alternativ muss eine Allow-List gepflegt werden, welche Apps/Ressourcen gehooked werden dürfen. Das hilft bei SafetyNet (auf Software Ebene)
 
  • Like
Reaktionen: Uli und Martin S.
Umso wichtiger wäre es natürlich zu verstehen, warum das mit dem extrahieren des Boot.img aus der aktuellen SOS-L nicht geklappt hat.
Da mir das auch schon mal passiert ist wäre ich dir für die Lösung dankbar👍
Ich bin in genau das gleiche Problem rein gelaufen (mit SHIFT6MQ.SOS.3.2.L.20210415-BETA-LIGHT-OTA.zip).
Und das obwohl alle Checksums und Berechtigungen gepasst haben.

Nachdem ich eine Weile rum gespielt habe, habe ich rausgefunden, dass die Version von Magisk, die man ueber F-Droid laden kann, nicht richtig funktioniert.
Die Version von Github direkt klappt jedoch problemlos.

@Ene:
Vielen Dank fuer deine Anleitung!
Vielleicht waere es sinnvoll, das in deine Anleitung mitaufzunehmen?
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Martin S. und danielp
Ich bin in genau das gleiche Problem rein gelaufen (mit SHIFT6MQ.SOS.3.2.L.20210415-BETA-LIGHT-OTA.zip).
Und das obwohl alle Checksums und Berechtigungen gepasst haben.

Nachdem ich eine Weile rum gespielt habe, habe ich rausgefunden, dass die Version von Magisk, die man ueber F-Droid laden kann, nicht richtig funktioniert.
Die Version von Github direkt klappt jedoch problemlos.

@Ene:
Vielen Dank fuer deine Anleitung!
Vielleicht waere es sinnvoll, das in deine Anleitung mitaufzunehmen?
Nun, in meiner Anleitung verlinke ich auf die Github Variante von Magisk ¯\_(ツ)_/¯
Und ich habe die Anleitung zum selber patchen auch nicht erstellt, evtl sollte dieser Post editiert werden?
Ich vermute, dass zum patchen closed source libs verwendet werden, welche beim FDroid release fehlen.
 
  • Like
Reaktionen: Martin S. und danielp
Nun, in meiner Anleitung verlinke ich auf die Github Variante von Magisk ¯\_(ツ)_/¯
Und ich habe die Anleitung zum selber patchen auch nicht erstellt, evtl sollte dieser Post editiert werden?
Ich vermute, dass zum patchen closed source libs verwendet werden, welche beim FDroid release fehlen.
Ich verweise darin auch auf das Github release. Habe noch nie die Version von F-Droid verwendet!
Generell würde ich vorschlagen das jeder sein image selber patched. Erhöht den Lerneffekt ungemein ;)

Edit: Habe einen Hinweis auf Probleme mit der F-Droid Version hinzugefügt!
 
Ich verweise darin auch auf das Github release. Habe noch nie die Version von F-Droid verwendet!
Generell würde ich vorschlagen das jeder sein image selber patched. Erhöht den Lerneffekt ungemein ;)

Edit: Habe einen Hinweis auf Probleme mit der F-Droid Version hinzugefügt!
Wieso, findet sich eine Seriennummer im boot image? Die geräte sollten doch gleich sein? Muss ich immer alles lernen was ich haben will? Ich verzichte momentan drauf weil ich keine zeit habe sowas zu lernen. :/
 
Wieso, findet sich eine Seriennummer im boot image? Die geräte sollten doch gleich sein? Muss ich immer alles lernen was ich haben will? Ich verzichte momentan drauf weil ich keine zeit habe sowas zu lernen. :/
Die Geräte und Images sollten immer gleich sein!

Das heißt du lässt einfach andere die Arbeit machen? Oder machst du es beim nächsten Update und stellst dann das Image für alle bereit?

Prinzipiell macht es schon Sinn das es einer macht und alle anderen verwenden einfach das vorbereitet Image. Alleine schon deshalb weil dann nicht jeder das komplette Image ziehen muss um das boot Image zu extrahieren. Es schadet aber nie es mal selbst gemacht zu haben. Bei Problemen kann man sich dann in der Regel leichter selbst helfen! Sollte eine Sache von ein paar Minuten sein!
 
Na wenn ich andere die Arbeit machen lassen würde, würde ich ja die Person fragen ob sie dasss für mich macht. Ich hatte darauf vertraut, das eine Person das macht und anderen zur verfügung stellt, dass wenn zB ich mal danach suchen würde vielleicht auch was finde. Aber wie gesagt fordern würde ich das natürlich nie. Wenn es so etwas nicht gibt und ich es aber unbedingt brauche würde ich auch erst mal gucken ob ich es geschissen bekomme bevor ich frage. Ich weiß nur, dass ich nicht in die Android Coder Szene absteigen werde sollte ich mal ein Image extrahiert haben und einzeln flashen :)
 
  • Like
Reaktionen: NoG....eFan
An sich keine lange Sache ein Image zu extrahieren wenn man erstmal Root hat. Dafür braucht es nur Root, ein Terminal, Wissen in welchem Slot man aktuell ist und einen dd Befehl.

Folgende Schritte sind Notwendig:
1. Update manuell herunterladen
2. Update aus der Update-App installieren
3. Nicht neustarten. Stattdessen Terminal App öffnen. Und folgende Befehle eingeben:
"su"
und dann gefolgt von
"dd if=/dev/block/sde11 of=/storage/emulated/0/Documents/boot_a.img"
(bei laufendem System aus Slot B) bzw
"dd if=/dev/block/sde33 of=/storage/emulated/0/Documents/boot_b.img"
(bei laufendem System aus Slot A).
4. Mit Magisk Manager das Image im inaktiven Slot patchen (kein Neustart)
5. In Terminal App nachfolgende Befehle ausführen:
"su"
und dann gefolgt von
"dd if=/dev/block/sde11 of=/storage/emulated/0/Documents/boot_a_patched.img"
(bei laufendem System aus Slot B) bzw
"dd if=/dev/block/sde33 of=/storage/emulated/0/Documents/boot_b_patched.img"
(bei laufendem System aus Slot A).

Das sorgt dafür, dass ich im Order Dokumente jetzt zwei Boot-Images habe. Eines ungepatcht als Backup und ein gepatchtes.
Jetzt kann man auch Neustarten.

Ich mache mir die Arbeit hier übrigens unter anderem deshalb, weil mir das Backup des Stock-Boot-Image schon zweimal den Popes gerettet hat. So mußte ich nur etwa 12mb aus'm Netz runterladen und per Fastboot flashen statt ein komplettes Update.Zip runterzuladen und die Payload zu entpacken 🤷🏼‍♂️.

Greetz und im Anhang Boot SHIFT6MQ.SOS.3.2.L.20210507
 

Anhänge

  • Stock_Boot_SHIFT6MQ.SOS.3.2.L.20210507.img
    12,2 MB · Aufrufe: 5
  • magisk_boot_SHIFT6MQ.SOS.3.2.L.20210507.img
    12,5 MB · Aufrufe: 17
Zuletzt bearbeitet:
Hier werden die Images in Zukunft raufgeladen: https://downloads.shiftphones.com/public/SHIFT6mq/IMAGES/

Heute ist Feiertag, hab also nur wegen einem Notfall mal Boot und Recovery Images für die neueste G OTA raufgeladen.
Der Rest von G und die aktuellste stable L kommen dann nach.

Braucht ihr die Images von den Beta Versionen auch oder reichen die Stable Releases?
 
Hier werden die Images in Zukunft raufgeladen: https://downloads.shiftphones.com/public/SHIFT6mq/IMAGES/

Heute ist Feiertag, hab also nur wegen einem Notfall mal Boot und Recovery Images für die neueste G OTA raufgeladen.
Der Rest von G und die aktuellste stable L kommen dann nach.

Braucht ihr die Images von den Beta Versionen auch oder reichen die Stable Releases?
Also ich würde auch die Beta Images sehr begrüßen, bevorzugt in der Struktur:
├───IMAGES
│ ├───L VERSION
│ │ ├───STABLE
│ │ ├───BETA
│ ├───G VERSION
│ │ ├───STABLE
│ │ ├───BETA
 
Ich habs jetzt mal so angeordnet:
Code:
.
└── Modell
    ├── beta
    ├── beta-light
    ├── release
    │   └── Version
    │       ├── OTA
    |       |   ├── DOWNGRADE.zip
    │       │   └── FULL-OTA.zip
    │       └── IMAGES
    │           ├── boot.img
    │           ├── dtbo.img
    │           ├── recovery.img
    │           ├── xxxx.img
    │           ├── vbmeta.img
    │           ├── vbmeta_system.img
    │           └── vbmeta_vendor.img
    └── release-light

Und werde es demnächst auffüllen :)
 
Guten Morgen,
könnte mir bitte jemand das stock boot image von SHIFT6MQ.SOS.3.1.L.20210226 zur Verfügung stellen? Gerade für diese eine Version wurde in den Beiträgen leider nur die magisk gepatchte Variante hochgeladen und sie wäre im Moment sehr hilfreich für mich😅

+ Zusatzfrage: könnte ich dieses Bootimage dann auch per "fastboot boot [image]" booten ohne es zu flashen oder funktionieren diese nur, wenn sie tatsächlich im Flash liegen?