English / Deutsch | Druckversion
Twitter
twitter

LineageOS - Daten sichern, wiederherstellen, transferieren, migrieren


Falls Sie ebenfalls Ihre Sicherungen lieber selber durchführen anstatt die Cloudlösung von LineageOS oder eine Backup App zu verwenden, dann können Sie ADB verwenden um Sicherungen zu erstellen und Ihre Daten wiederherstellen. Es ist auch kein großes Problem die Daten auf ein anderes/neues Gerät mit LineageOS zu übertragen.

LineageOS ist ein Freies Betriebssystem für Smartphones und Tabletcomputer, basierend auf dem Betriebssystem Android.

Nützliche Scripts: adb-scripts-20240324.zip


Voraussetzungen
Setup
Scripts / Download
Daten sichern - Backup
Daten wiederherstellen / transferieren / migrieren
Beispiele: Sichern und wiederherstellen/transferieren von Apps
adb exec-out & tar
Zugriff via MTP
Problembehebung

Voraussetzungen


Am Smartphone/Tablet:

  • Wenn LineageOS ausgeführt wird: Entwickleroptionen aktiviert, USB-Debugging aktiviert, Root-Debugging aktiviert.
  • Wenn Lineage Recovery ausgeführt wird: ADB enabled.

Am Computer:

  • ADB installiert.


Setup


LineageOS: Aktivieren der Entwickleroptionen

Die App 'Einstellungen' öffnen. Den Menüpunkt 'Über das Telefon' öffnen. 10x auf 'Build-Nummer' tippen.

LineageOS: ADB Zugriff via USB erlauben

Die App 'Einstellungen' öffnen. Den Menüpunkt 'System' / 'Entwickleroptionen' öffnen. 'USB-Debugging' aktivieren, 'Root-Debugging' aktivieren.

Lineage Recovery: ADB Zugriff via USB erlauben

Im Menü 'Advanced' drücken Sie auf 'Enable ADB'.

Am Computer: ADB root

Um vollen Zugriff am Smartphone/Tablet zu haben müssen Sie ADB in den Root Modus versetzen. Verbinden Sie Ihr Smartphone/Tablet via USB mit dem Computer. Am Computer starten Sie 'adb root', am Gerät tippen Sie beim Popup 'USB-Debugging zulassen' auf 'Erlauben'.


Scripts / Download


Ein paar kleine Scripts als Einstiegshilfe. Download: adb-scripts-20240324.zip


Daten sichern - Backup


Sie können das gesamte Gerät als Disk Images oder Daten auf Dateibasis sichern. Die Sicherung kann im laufendem Betrieb von LineageOS durchgeführt werden oder während Lineage Recovery läuft.


Daten sichern während LineageOS läuft oder wenn Lineage Recovery läuft? Disk Images oder auf Dateibasis?

Wenn Sie Ihre Daten via ADB sichern während LineageOS läuft, dann können Sie Ihr Gerät wie gewohnt nutzen. Sie sind während der Sicherung erreichbar, weiterhin online, alles läuft wie gewohnt. Allerdings besteht das Risiko, dass es zu einem Datenfehler kommen kann wenn LineageOS in eine Datei schreibt während sie gerade gesichert wird. Um dies zu verhindern kann man das Gerät mit Lineage Recovery booten. Allerdings ist das weniger komfortabel.

Wenn Sie als Sicherungsstrategie anstelle von Disk Images das Sichern von Dateien und Verzeichnissen durchführen, verringert sich das Risiko eine fehlerhafte Datei zu sichern. Da nur bestimmte Dateien übertragen werden, dauert der Sicherungsvorgang viel kürzer als beim Sichern des gesamten Datenträgers mit einem Disk Image. Allerdings erhöht sich das Risiko Dateien zu übersehen.


ADB starten

Verbinden Sie Ihr Smartphone/Tablet via USB mit dem Computer. Am Computer starten Sie 'adb root', am Gerät tippen Sie beim Popup 'USB-Debugging zulassen' auf 'Erlauben'.


Ein Disk Image erstellen

Üblicherweise ist der Device Node vom internen Datenträger '/dev/block/mmcblk0' oder '/dev/block/sda'. Um zu erfahren welche Device Nodes von LineageOS verwendet werden, verbinden Sie sich mit Ihrem Gerät mit 'adb shell'. Mit dem Befehl 'mount' erhalten Sie unter anderem eine Liste aller Datenträger, die aktuell von LineageOS verwendet werden.

Beispiel 1: Ausgabe von mount

=== CUT ===
tmpfs on /mnt type tmpfs (rw,seclabel,nosuid,nodev,noexec,relatime,size=86...
/dev/block/mmcblk0p23 on / type ext4 (ro,seclabel,nodev,relatime,discard)
tmpfs on /apex type tmpfs (rw,seclabel,nosuid,nodev,noexec,relatime,size=8...
tmpfs on /linkerconfig type tmpfs (rw,seclabel,nosuid,nodev,noexec,relatim...
/dev/block/mmcblk0p26 on /data type ext4 (rw,seclabel,nosuid,nodev,noatime...
/dev/block/mmcblk0p24 on /cache type ext4 (rw,seclabel,nosuid,nodev,noatim...
/dev/block/mmcblk0p12 on /efs type ext4 (rw,seclabel,nosuid,nodev,noatime,...
/dev/block/mmcblk0p26 on /data/user/0 type ext4 (rw,seclabel,nosuid,nodev,...
=== CUT ===
Bei diesem Beispiel ist '/dev/block/mmcblk0p23' zu '/' gemountet. '/dev/block/mmcblk0p23' steht für Datenträger mmcblk0 Partition 23. Der Device Node für den internen Datenträger ist '/dev/block/mmcblk0'. Mit 'exit' können Sie die Shell verlassen.

Um ein Disk Image vom internen Datenträger zu machen, starten Sie 'adb pull /dev/block/mmcblk0 mmcblk0.img'.

Beispiel 2: Ausgabe von mount

=== CUT ===
tmpfs on /mnt/androidwritable type tmpfs (rw,seclabel,nosuid,nodev,noexec,...
/dev/block/sda29 on /metadata type ext4 (rw,seclabel,nosuid,nodev,noatime,...
/dev/block/sda25 on / type ext4 (ro,seclabel,nodev,relatime)
/dev/block/sda26 on /vendor type ext4 (ro,seclabel,relatime)
/sys/kernel/debug on /sys/kernel/debug type debugfs (rw,seclabel,relatime)
none on /config type configfs (rw,nosuid,nodev,noexec,relatime)
none on /sys/fs/fuse/connections type fusectl (rw,relatime)
=== CUT ===
Bei diesem Beispiel ist '/dev/block/sda25' zu '/' gemountet. '/dev/block/sda' steht für Datenträger mmcblk0 Partition 25. Der Device Node für den internen Datenträger ist '/dev/block/sda'. Mit 'exit' können Sie die Shell verlassen.

Um ein Disk Image vom internen Datenträger zu machen, starten Sie 'adb pull /dev/block/sda sda.img'.


Dateien und Verzeichnisse sichern

LineageOS speichert die Daten der Apps unter '/data/data/'. Media Dateien wie Fotos und Videos werden am internen Datenträger unter '/data/media/0' gespeichert.
Beispiel: Sichern der Daten aller Apps ohne Media Dateien
    adb pull -a /data/data


Beim zweiten Beispiel wird eine Sicherung der SD Karte gemacht. Die SD Karte wird zu einem Verzeichnis unter '/storage' gemountet. Um herauszufinden zu welchem Verzeichnis die SD Karte gemountet wird, verbinden Sie sich zu LineageOS mit dem Befehl 'adb shell'. Dann starten Sie 'ls /storage'. Hier ist eine Beispielausgabe

emulated  self  1865-F8CF
Auf diesem Gerät wird die SD Karte mit dem Verzeichnis /storage/1865-F8CF gemountet. Der Verzeichnisname wird bei Ihrem Gerät anders lauten. Wenn Sie den Inhalt der Verzeichnisses auflisten, dann sollten Sie Ihre Dateien und Verzeichnisse sehen. Auf dem Beispielgerät würde der Befehl 'ls /storage/1865-F8CF' lauten.

Beispiel: Sichern der gesamten SD Karte
    adb pull -a /storage/1865-F8CF

Beispiel: Sichern des Verzeichnisses DCIM von der SD Karte
    adb pull -a /storage/1865-F8CF/DCIM


Daten wiederherstellen / transferieren / migrieren


Sie können die Daten und sämtliche Einstellungen des Gerätes via Disk Image oder Dateibasierend wiederherstellen. Weiters können Sie Ihre Daten und Einstellungen der Apps auf z.B. ein neues Gerät auf dem LineageOS installiert wurde übertragen. Weiter unten auf dieser Seite finden Sie Beispiele mit den Apps Telefon, Kontakte, SMS/MMS, Notepad und WhatsApp.

Verbinden Sie Ihr Gerät via USB mit dem Computer. Am Computer starten Sie 'adb root', am Gerät tippen Sie beim Popup 'USB-Debugging zulassen' auf 'Erlauben'.


Wiederherstellen mit einem Disk Image

Für das Wiederherstellen mit deinem Disk Image muss das Gerät mit Lineage Recovery gebootet werden. Im Lineage Recovery muss im Menü 'Advanced' der Menüpunkt 'Enable ADB' gedrückt werden um die Verbindung mit ADB zu ermöglichen.

Warnung: Sollten Sie ein Image von einem Gerät auf ein anderes Gerät speichern wollen, dann prüfen Sie ob es eine Trim Area oder ähnliches gibt. Es werden zum Beispiel bei Sony Geräten auf der Trim Area gerätespezifische Informationen gespeichert. Durch überschreiben dieser Informationen können verschiedene Funktionen des Gerätes nicht mehr genutzt werden.

Beispiel: Wiederherstellen von LineageOS am internen Datenträger. Sie verwenden den gleichen Device Node, der bei der Sicherung verwendet wurde. Der Device Node des Datenträgers bei diesem Beispiel lautet '/dev/block/sda'.

Warnung: Alle Daten auf dem Zieldatenträger werden mit der Sicherung überschrieben!

Wiederherstellen:
    adb push sda.img /dev/block/sda


Dateien und Verzeichnisse wiederherstellen

'adb push' kopiert Dateien und Verzeichnisse auf das Gerät. Mit '--sync' werden nur ältere Dateien überschrieben.

Beispiel: Sicherung des Verzeichnisses Pictures von der SD Karte:
    adb pull -a /storage/1865-F8FC/Pictures

Beispiel: Wiederherstellen/transferieren des Verzeichnisses Pictures auf der SD Karte:
    adb push Pictures /storage/1865-F8FC


Beispiele: Sichern und wiederherstellen/transferieren von Apps


Jede app hat ihr eigenes Verzeichnis für ihre Daten. LineageOS speichert die Daten der Apps unter '/data/data/[package name]'. Den Package Name finden Sie heraus, indem Sie die App für die Einstellungen starten. Unter 'Apps' und 'Alle Apps ansehen' wählen Sie die gwünschte App aus. Am untersten Ende der Seite finden Sie den Package Name. Zum Beispiel lautet der Package Name des Browsers org.lineageos.jelly. Die Daten werden in '/data/data/org.lineageos.jelly/' gepeichert.

Achtung: Mit 'adb push' und 'adb pull' werden Benutzer/Gruppe und Dateirechte nicht übertragen. In den Beispielskripts finden Sie unter "filebased/01_keep_owner_and_permissions" Skripts bei denen Benutzer/Gruppe und Dateirechte gespeichert und wiederhergestellt werden.

Hinweis: Schliessen Sie die App bevor Sie mit der Wiederherstellung/Transferierung der Daten beginnen.

Telefon & Anrufliste
Kontakte
SMS & MMS Nachrichten
Notepad
WhatsApp

Telefon & Anrufliste

Sichern:
    adb pull -a /data/data/com.android.dialer

Wiederherstellen:
    adb push com.android.dialer /data/data


Kontakte

Sichern:
    adb pull -a /data/data/com.android.providers.contacts

Wiederherstellen:
    adb push com.android.providers.contacts /data/data


SMS & MMS Nachrichten

Sichern:
    adb pull -a /data/data/com.android.messaging
    adb pull -a /data/data/com.android.providers.telephony

Wiederherstellen:
    adb push com.android.messaging /data/data
    adb push com.android.providers.telephony /data/data


Notepad

Sichern:
    adb pull -a /data/data/com.farmerbb.notepad

Wiederherstellen:
    adb push com.farmerbb.notepad /data/data


WhatsApp

Nachrichten sichern:
    adb pull -a /data/data/com.whatsapp

Mediadateien (Fotos, Videos, ...) sichern:
    adb pull -a /data/media/0/Android/media/com.whatsapp/WhatsApp/Media

Installieren Sie WhatsApp bevor Sie die Dateien wiederherstellen oder transferieren. Mit der Installation von WhatsApp werden alle notwendigen Verzeichnisse vorab erstellt. Danach können die gesicherten Daten mit ADB auf das Gerät übertragen werden.

Nachrichten wiederherstellen:
    adb push com.whatsapp /data/data

Mediadateien (Fotos, Videos, ...) wiederherstellen:
    adb push Media /data/media/0/Android/media/com.whatsapp/WhatsApp/


adb exec-out & tar


Wenn man mit 'adb pull' ein Backup erstellt, dann wird von adb intern eine Liste aller zu kopierenden Dateien und Verzeichnisse erstellt. Danach kopiert adb die Dateien anhand dieser Liste. Sollte eine dieser Dateien beim Kopiervorgang nicht mehr vorhanden sein, z.B. eine temporäre Datei die mittlerweile von der App wieder gelöscht wurde, dann bricht adb den Kopiervorgang ab. Sie erhalten die Fehlermeldung 'adb: warning: stat failed for path ....: No such file or directory'. Es gibt derzeit leider keine Möglichkeit, dass adb fehlende Dateien ignoriert und den Kopiervorgang fortsetzt. Man kann dieses Problem umgehen, indem man anstelle von 'adb pull' die Befehle 'adb exec-out' und 'tar' verwendet. Damit wird ein Tar-Archiv erstellt und fehlende Dateien werden ignoriert.

Befehl:
    adb exec-out "tar -c /data/data 2> /dev/null" > data.tar

Mit Datum im Dateinamen:
    adb exec-out "tar -c /data/data 2> /dev/null" > data-$(date +%Y%m%d).tar

Siehe auch ADB pull stops after first error


Zugriff via MTP


MTP hat nichts mit ADB zu tun, ist aber eine Möglichkeit über einen Mount-Punkt auf den internen Datenspeicher und die SD-Karte eines Smartphones/Tablets zuzugreifen.

Verbinden Sie das Gerät mittels USB mit dem Computer.

Es erscheinen ein paar Popup Nachrichten am Gerät. Tippen Sie auf
    Gerät wird über USB aufgeladen
    Für weitere Optionen tippen.

Die Einstellungen für die USB Verbindung öffnet sich. Im Bereich 'Verbindungszweck für USB-Verbindung' wählen Sie 'Datenübertragung' aus.

Einen Mount-Punkt erstellen. Zum Beispiel 'smartphone':
    mkdir smartphone

Das Gerät mounten mit:
    jmtpfs smartphone

Nun kann man auf das Gerät über das Verzeichnis 'smartphone' zugreifen. Ein Hinweis, wenn sich viele Dateien in einem Verzeichnis befinden, dann dauert das Öffnen des Verzeichnisses etwas länger.

Unmount vom Gerät:
    sudo umount smartphone


Problembehebung


Zugriff verweigert: Sie müssen 'adb root' am Computer starten und am Smartphone/Tablet beim Popup 'USB-Debugging zulassen' auf 'Erlauben' tippen.

Fehlermeldung: adb: unable to connect for root: device unauthorized.

* daemon not running; starting now at tcp:5037
* daemon started successfully
adb: unable to connect for root: device unauthorized.
This adb server's $ADB_VENDOR_KEYS is not set
Try 'adb kill-server' if that seems wrong.
Otherwise check for a confirmation dialog on your device.
ADB on device enabled?
Starten Sie erneut am Computer 'adb root', am Gerät drücken Sie beim Popup 'USB-Debugging zulassen' auf 'Erlauben'.


Fehlermeldung: adb: warning: stat failed for path ....: No such file or directory

Siehe 'adb exec-out & tar'.


© 2024 by Elmar Hanlhofer
Die Seite wurde zuletzt am 01/11/2023 geändert.