Fairphone 3 - Bootloop nach TWRP-Installation

Ich habe mein Fairphone 3 beim Installieren von TWRP in einen Bootloop versetzt, der Bootloader ist offen und USB-Debugging ist aktiviert. Es kommt nur noch folgende Seite,

aus der ich mit meinem begrenzten Wissen nicht herauskomme, kann mich nur mit folgenden Möglichkeiten im Kreis drehen: START - Power off - Recovery node - Restart bootloader.
Allerdings erscheint bei einer Verbindung mit dem Terminal in Ubuntu eine Reaktion auf den Befehl “fastboot devices” mit der Antwort "A209L8RY020 fastboot , also das Gerät samt Seriennummer wird immerhin erkannt.
Für hilfreiche Hinweise bin ich sehr dankbar.

Nach welcher Anleitung?

Welcher Schritt in der Anleitung wurde als letztes vor der jetzigen Situation ausgeführt?

Folgende Anleitungen wurden verwendet:
https://doc.e.foundation/pages/install-twrp.html

Schritte vor dem Bootloop:
Ausgangslage war die Version 1.1 von /e / OS, die ich per factory reset erstellte.
Die Datei „twrp-3.6.2_9-0-FP3.img“ bzw. „trwp.img“ war/ist auf der Festplatte des Ubuntu-Rechners im Ordner usr/lib/android-sdk/platform-tools, im persönlichen Ordner (~/) und im Download-Ordner sowie auf dem Fairphone 3 im internen Speicher und auf der externen SD-Karte.

Dennoch wurde die Datei nach dem Terminal-Befehl „fastboot flash recovery twrp.img“
(= twrp-3.6.2_9-0-FP3.img) entweder
nicht gefunden oder es kamen folgende Meldungen: „partition flashing is not allowed“ bzw. „partition table doesn‘t exist“.
Meine Adressierungsversuche scheiterten jeweils sowohl in Linux als auch in Windows.

Daraufhin änderte ich den Befehl um in „fastboot flash boot twrp.img“ und jetzt ging der Installationsvorgang voran, aber – wie ich nachträglich vermute – auf falsche Weise. Das Abschluss-Kommando „fastboot reboot“ misslang, es ließ sich im Terminal nicht ausführen.

In dem so „installierten“ TWRP machte ich als erstes eine Sicherung von System, Daten und Boot auf der externen SD-Karte. In gewisser Weise hatte ich hier vielleicht schon so eine Art Bootloop, denn es gelang mir nicht, das System aus TWRP heraus zu starten.

Danach machte ich aus Verzweiflung weitere Fehler: so startete ich eine
Wiederherstellung der zuvor erstellten Sicherung, die mit der Meldung
„extractTarFork process endet with ERROR: 255“ wohl fehlerhaft abschloss.

Wie ich von dieser misslungenen TWRP-Installation zu dem dargestellten Zustand kam, weiß ich leider nicht mehr, das Ganze fand tief in der letzten Nacht statt.

1 Like

Die Anleitung auf twrp.me ist die richtige Anleitung.
Die TWRP-Anleitung in der /e/-Dokumentation sollte eigentlich nirgendwo verlinkt sein, wo es um das Fairphone 3 geht, denn sie gilt nicht für das Fairphone 3.
Nicht jedes Android-Gerät ist gleich und verträgt die gleichen Vorgehensweisen.

Kann so nicht funktionieren, da das Fairphone 3 keine recovery-Partition hat.
Die Anleitung bei twrp.me erklärt, wie man eigentlich vorgehen muss.

Sinnfrage: Warum möchtest Du TWRP installieren?
Normalerweise wird es auf Geräten wie dem Fairphone 3 zum Gebrauch einfach nur per Fastboot gebootet, siehe Anleitung auf twrp.me.
Das nächste /e/OS-Update wird ein installiertes TWRP wieder mit der /e/ recovery überschreiben, wenn man nicht zusätzliche (halbwegs komplexe) Maßnahmen dagegen ergreift.

Stimmt. Damit wurde die originale boot-Partition mit TWRP ersetzt, das OS kann so nicht mehr booten.
Dazu sagt die Anleitung auf twrp.me:

“WARNING: If you accidently flash TWRP to your device using fastboot instead of temporarily booting the image, you will need to download the latest factory image for your device and reflash the boot image.”

Das heißt, man müsste die Imagedatei der boot-Partition aus den OS-Installationsdateien wieder in die boot-Partition flashen, um das zu reparieren …

… durch den Factory Reset sind aber ohnehin keine Benutzerdaten mehr da, also wäre es am einfachsten, einfach /e/OS wieder nach Anleitung mit Fastboot zu installieren (fastboot devices funktioniert ja), damit wäre dann die funktionierende boot-Partition auch wiederhergestellt … https://doc.e.foundation/devices/FP3/install … Schritte “Downloads for the FP3” und “Installing /e/ from the bootloader”.

1 Like

Zuerst einmal vielen Dank für die rasche und ausführliche Antwort.

Zur Sinnfrage: "Warum möchtest Du TWRP installieren?
Vor dem Fairphone 3 hatte ich fünf Jahre lang das SHIFT 5 (shiftphones.com), das ich relativ leicht rooten konnte. Auf diesem Gerät war es möglich, ohne ein anderes Gerät Backups sowie Recoveries vorzunehmen. Das konnte ich so nebenbei machen und hatte in Notfällen die Möglichkeit, Backups des Systems von der externen SD-Karte auf das Gerät zurückzuspielen. Ich habe das sehr geschätzt. Beim Fairphone 3 fand ich sowohl mit dem StockROM (Android 10) als auch mit eOS dazu keine vergleichbare Möglichkeit. Deshalb mein Versuch mit TWRP.
Die Schwierigkeiten mit TWRP, das bei jedem neuen System-Update - ohne entsprechende Gegenmaßnahmen - überschrieben wird , habe ich erst jetzt verstanden.

So wollte ich daraufhin jetzt gleich die letzte Version Q 1.1 von eOS installieren, aber da gibt es leider Schwierigkeiten, wie man im Folgenden sehen kann:

marc@Perotin:~$ adb reboot bootloader

  • daemon not running; starting now at tcp:5037
  • daemon started successfully
    error: no devices/emulators found
    marc@Perotin:~$ fastboot flashing unlock

    (bootloader) Device already : unlocked!
    OKAY [ 0.030s]
    finished. total time: 0.030s
    marc@Perotin:~$ cd Downloads
    marc@Perotin:~/Downloads$ unzip IMG-e-1.1-q-20220705201319-stable-FP3.zip
    Archive: IMG-e-1.1-q-20220705201319-stable-FP3.zip
    extracting: ramdisk.img
    inflating: mdtp.img
    inflating: dsp.img
    inflating: tz.img
    inflating: aboot.img
    inflating: system.img
    inflating: cmnlib64.img
    inflating: boot.img
    inflating: modem.img
    inflating: vbmeta.img
    inflating: keymaster.img
    inflating: cmnlib.img
    inflating: userdata.img
    inflating: dtbo.img
    inflating: lksecapp.img
    inflating: sbl1.img
    inflating: ramdisk-recovery.img
    inflating: devcfg.img
    inflating: rpm.img
    inflating: vendor.img
    marc@Perotin:~/Downloads$ fastboot -w
    wiping userdata…
    Invalid erase-block-size 512: must be a power of 2 and at least 4096.
    Invalid logical-block-size 512: must be a power of 2 and at least 4096.
    mke2fs 1.45.5 (07-Jan-2020)
    /tmp/TemporaryFile-KdDPbC: Nicht implementierte Ext2-Bibliotheksfunktion beim Erstellen des Superblocks
    /usr/lib/android-sdk/platform-tools/mke2fs failed with status 1
    mke2fs failed: 1
    error: Cannot generate image for userdata

Was läuft da schief?

1 Like

Sieht nach einer inkompatiblen Version des fastboot-Kommandos aus.
Was sagt fastboot --version ?

Im Zweifelsfall sollte man die Fastboot-Version aus den aktuellen Android SDK Platform Tools probieren.
Dabei muss man darauf achten, dass diese heruntergeladene aktuelle Version dann auch wirklich verwendet wird, und nicht einfach eine schon installierte Version (die das Betriebssystem vorrangig verwendet, weil es dank der vorherigen Installation weiß, wo sich das Kommando befindet). Dazu arbeitet man am besten im Verzeichnis, wohin man die aktuelle Version aus den Platform Tools entpackt hat, und stellt beim Aufruf des Kommandos auf Linux noch ./ davor, um Linux dazu zu zwingen, im aktuellen Verzeichnis zu bleiben, also dann jeweils ./fastboot usw..

Ansonsten … Das fehlschlagende Kommando fastboot -w löscht nur die Benutzerdaten. Das hat der Factory Reset aber schon erledigt.

fastboot --version
fastboot version 1:8.1.0+r23-5ubuntu2
Installed as /usr/lib/android-sdk/platform-tools/fastboot

Neue Version:
marc@Perotin:~/Downloads/platform-tools$ ./fastboot --version
fastboot version 33.0.2-8557947
Installed as /home/marc/Downloads/platform-tools/fastboot

So neu ausgestattet versuchte ich die neueste Version von eOS zu installieren:

marc@Perotin:~/Downloads/platform-tools$ ./fastboot devices
A209L8RY0202 fastboot

marc@Perotin:~/Downloads/platform-tools$ ./fastboot -w
Erasing ‘userdata’ OKAY [ 0.613s]
mke2fs 1.46.2 (28-Feb-2021)
Creating filesystem with 12777209 4k blocks and 3194880 inodes
Filesystem UUID: a654b473-9ddc-4581-bb1b-8f8a53a77bfb
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424

Allocating group tables: done
Writing inode tables: done
Creating journal (65536 blocks): done
Writing superblocks and filesystem accounting information: done

Sending ‘userdata’ (316 KB) OKAY [ 0.050s]
Writing ‘userdata’ OKAY [ 0.028s]
Finished. Total time: 0.891s
marc@Perotin:~/Downloads/platform-tools$ ./fastboot flash system_a system.img -S 522239K
Sending sparse ‘system_a’ 1/5 (515840 KB) OKAY [ 24.714s]
Writing ‘system_a’ OKAY [ 4.994s]
Sending sparse ‘system_a’ 2/5 (514704 KB) OKAY [ 23.060s]
Writing ‘system_a’ OKAY [ 4.961s]
Sending sparse ‘system_a’ 3/5 (515456 KB) OKAY [ 24.063s]
Writing ‘system_a’ OKAY [ 4.985s]
Sending sparse ‘system_a’ 4/5 (516208 KB) OKAY [ 23.948s]
Writing ‘system_a’ OKAY [ 4.968s]
Sending sparse ‘system_a’ 5/5 (288444 KB) OKAY [ 13.211s]
Writing ‘system_a’ OKAY [ 2.787s]
Finished. Total time: 131.973s
marc@Perotin:~/Downloads/platform-tools$ ./fastboot flash boot_a boot.img
Sending ‘boot_a’ (65536 KB) OKAY [ 3.047s]
Writing ‘boot_a’ OKAY [ 0.650s]
Finished. Total time: 3.799s
marc@Perotin:~/Downloads/platform-tools$ ./fastboot flash vendor_a vendor.img -S 522239K
Sending ‘vendor_a’ (445600 KB) OKAY [ 19.908s]
Writing ‘vendor_a’ OKAY [ 4.295s]
Finished. Total time: 24.337s
marc@Perotin:~/Downloads/platform-tools$ ./fastboot flash dtbo_a dtbo.img
Sending ‘dtbo_a’ (8192 KB) OKAY [ 0.441s]
Writing ‘dtbo_a’ OKAY [ 0.098s]
Finished. Total time: 0.606s
marc@Perotin:~/Downloads/platform-tools$ ./fastboot flash vbmeta_a vbmeta.img
Sending ‘vbmeta_a’ (4 KB) OKAY [ 0.030s]
Writing ‘vbmeta_a’ OKAY [ 0.021s]
Finished. Total time: 0.123s
marc@Perotin:~/Downloads/platform-tools$ ./fastboot flash system_b system.img -S 522239K

Leider war hier ein Ende erreicht, auf den letzten Befehl hin erfolgte NICHTS.
Nach über einer halben Stunde habe ich dann den Vorgang beendet.
Auf dem Smartphone-Display war übrigens immer nur die gleiche Anzeige (START usw. s.o.)

1 Like

Das ist der Fastboot-Modus (auch Bootloader genannt), das ist so ok, da kommt nichts anderes.

Hmmm … Verbindung kurz verloren vielleicht?
Am besten einfach nochmal sehen, dass ./fastboot devices an der Stelle geht, und dann angefangen mit dem letzten Kommando nochmal probieren.
Die Kommandos davor haben ja funktioniert, die brauchen nicht wiederholt zu werden.

Wenn es an der Stelle einfach nicht mehr weiter ginge, dann wäre der Zustand jetzt, dass der Betriebssystem-Slot A (das “_a” bei den ganzen Kommandos) komplett installiert ist, und Betriebssystem-Slot B hätte keine Änderungen abbekommen.
Man könnte mit ./fastboot --set-active=a sicherstellen, dass Slot A der aktiv verwendete Slot ist, und dann mit ./fastboot reboot einmal probieren, ob dieser Slot erfolgreich bootet, das wäre in dem Fall schonmal besser als nichts.

Sollte TWRP jetzt noch die boot_b-Partition belegen, dürfte das nächste /e/OS-Update jedoch fehlschlagen. Der automatische Updater bricht das Updaten ab, wenn die Partitionen nicht im Original-Zustand sind.

Und wenn man den Bootloader nicht gleich wieder sperrt und das vielleicht erst später nachholen möchte … Sowohl das Sperren als auch das Entsperren des Bootloaders erzwingen einen Factory Reset aus Sicherheitsgründen.

Es wäre also schon schöner, wenn die Anleitung bis zum Ende erfolgreich funktionieren würde.

Soweit ich das richtig verstehe, ist auf dem Slot A das eOs Version 1.1 installiert, ich konnte es gut starten:

marc@Perotin:~/Downloads/platform-tools$ ./fastboot --set-active=a
Setting current slot to ‘a’ OKAY [ 0.022s]
Finished. Total time: 0.031s
marc@Perotin:~/Downloads/platform-tools$ ./fastboot reboot
Rebooting OKAY [ 0.002s]
Finished. Total time: 0.052s
marc@Perotin:~/Downloads/platform-tools$

Wie soll ich jetzt weiter machen?
Wie prüft man, was auf dem Slot B ist?

1 Like

Wieder in den Fastboot-Modus booten (einfach beim Start oder Neustart des Geräts die Leiser-Taste gedrückt halten, bis der Fastboot-Modus erscheint), dann sehen, dass ./fastboot devices an der Stelle geht, und dann angefangen mit dem letzten Kommando, dass nicht mehr funktioniert hatte, weitermachen und damit idealerweise Slot B erfolgreich installieren.

Im Fastboot-Modus ./fastboot --set-active=b und ./fastboot reboot.

VOR
meiner letzten Anfrage

( Wie soll ich jetzt weiter machen?
Wie prüft man, was auf dem Slot B ist? )

habe ich zunächst die Befehle den Slot B betreffend alle abarbeiten lassen

./fastboot flash system_b system.img -S 522239K
./fastboot flash boot_b boot.img
./fastboot flash vendor_b vendor.img -S 522239K
./fastboot flash dtbo_b dtbo.img
./fastboot flash vbmeta_b vbmeta.img

und dann zum Schluss:
./fastboot flashing lock
durchgeführt.

Dann konnte ich das Phone mit dem eOS starten.
Wahrscheinlich war da schon alles in Ordnung, aber vorsichtshalber stellte ich in meinem letzten Text die obigen Fragen.

Nach deiner letzten Mitteilung machte ich folgendes, um mich zu versichern:

marc@Perotin:~$ cd Downloads/platform-tools
marc@Perotin:~/Downloads/platform-tools$ ./fastboot devices
A209L8RY0202 fastboot

marc@Perotin:~/Downloads/platform-tools$ ./fastboot --set-active=b
Setting current slot to ‘b’ OKAY [ 0.023s]
Finished. Total time: 0.029s
marc@Perotin:~/Downloads/platform-tools$ ./fastboot reboot
Rebooting OKAY [ 0.001s]
Finished. Total time: 0.051s
marc@Perotin:~/Downloads/platform-tools$ ./fastboot devices
A209L8RY0202 fastboot

marc@Perotin:~/Downloads/platform-tools$ ./fastboot --set-active=b
Setting current slot to ‘b’ OKAY [ 0.020s]
Finished. Total time: 0.022s
marc@Perotin:~/Downloads/platform-tools$ ./fastboot flash system_b system.img -S 522239K
Sending sparse ‘system_b’ 1/5 (515840 KB) OKAY [ 23.033s]
Writing ‘system_b’ FAILED (remote: ‘Partition flashing is not allowed’)
fastboot: error: Command failed

Ich gehe davon aus, dass der letzterteilte Befehl
./fastboot flash system_b system.img -S 522239K
nicht ausgeführt wurde, weil überflüssig, da die entsprechenden Daten sich bereits auf dem Slot B (s.o.) befunden haben.

USB-Kabel abgezogen und das Fairphone 3 lässt sich wie gewohnt ins System starten.
Hurra!!
Und vielen, vielen Dank!!


Könntest du mir vielleicht noch bitte Folgendes beantworten?

  • Aktuelle Version für FP3 von TWRP herunterladen,
  • Android-Debugging und OEM-Entsperrung aktivieren
  • Befehl via ADB: “adb reboot bootloader”

Und nun ein ZEITWEILIGES Flashen von TWRP auf das Fairphone wie in der Anleitung von TWRP beschrieben: “fastboot boot twrp.img”

(Temporary boot the downloaded image using the following command: fastboot boot twrp.img)

Bis hierher müsste das eigentlich alles gehen.

Aber nun meine Fragen:
Kann ich anschließend mit Hilfe des temporären TWRP ein Backup meines aktuellen eOS auf meine externe Speicherkarte erstellen?

Und irgendwann später bei Bedarf wieder ein temporäres TWRP aufspielen, um mit Hilfe des so erstellten Backups (s.o.) eine Wiederherstellung des eOS vorzunehmen?

Mir leuchtet ein, dass sich bei jedem Systemupdate von eOs die Situation ändert, deshalb wäre wohl nur ein zeitweilig vorhandenes TWRP sinnvoll.
Aber ich wäre schon froh, wenn ich so zwischenzeitlich jeweils eine Sicherung hätte.

Ginge das?

Nochmals vielen Dank! Ich habe viel von dir gelernt!

1 Like

Der Befehl kann nicht ausgeführt werden, da der Bootloader jetzt gesperrt ist (durch ./fastboot flashing lock). Ist ja, wie richtig bemerkt, jetzt auch überflüssig.

Dieses zeitweilige Booten von TWRP geht nur mit einem entsperrten Bootloader. Das ist der Sinn des Sperrens, es kann nur gebootet werden, was schon auf dem Gerät installiert ist.
Und extra dafür den Bootloader immer wieder entsperren bringt nichts, da Entsperren und Sperren = Factory Reset.

Man steht vor der Entscheidung,den Bootloader offen zu lassen, um TWRP benutzen zu können, oder nicht, was man mit sich selber ausmachen muss. (Ein Angreifer könnte z.B. einem das Gerät unbemerkt klauen, dank offenem Bootloader irgendwelche Malware drauf installieren, einem das Gerät wieder unbemerkt unterschieben und dann darauf warten, dass man den Bildschirm und damit die Benutzerdaten entsperrt, um mittels Malware Zugriff darauf zu haben.)

Nur mit offenem Bootloader. Dann ja, aber …

… das Zurückspielen des gesicherten Betriebssystems selbst hat bei mir nicht funktioniert (auch mit Fairphone OS nicht) … das Zurückspielen der data-Partition aber schon.
Man kann also in mehreren Schritten vorgehen, um ein komplettes Backup zu bekommen, und es zurückspielen zu können.
Aber auf die Art nur mit offenem Bootloader.

Zu alternativen Backup-Methoden mit gesperrtem Bootloader empfehle ich eine Foren-Suche, das ist eine Riesen-Schwäche von Android generell und ein weites Feld :slight_smile: .