Wie kann ich eine gelöschte Datei auf Android wiederherstellen?

34

Ich habe gerade eine Datei auf meinem Nexus S gelöscht, die ich wirklich brauche. (Es war Teil einer App, die eine SQLite-Datenbank verwendete und beim Upgrade auf eine neue Version eine Drop-Tabelle erstellt hat.)

Vermutlich muss ich zuerst das Telefon rooten (was bei Nexus-Telefonen leicht zu hören ist), aber bin ich hier in einem Catch-22? Bedeutet das Rooten des Telefons das Löschen / Überschreiben der Partition, in der sich die Daten befinden?

Wenn nicht, was empfehlen Sie für Tools zur Datenwiederherstellung? Vermutlich war die Datei nur nicht verlinkt und wurde nicht aktiv überschrieben (wie beim "Löschen" einer Datei üblich), daher müssen die Daten technisch gesehen dort sein ...

Dreeves
quelle
Ich kann keine Antwort posten, das System geht gegen mich. Schlimmer für sie ... Der einfachste Weg, wenn Sie ein Linux-System und ein Gerät mit TWRP-Wiederherstellung haben, ist. 0. Zuallererst! Beenden Sie die Erstellung neuer Dateien, und schließen Sie alle Apps. Wenn Sie etwas ausführen müssen, sollten Sie zuerst einige unnötige Dateien so weit wie möglich löschen, um mehr Speicherplatz freizugeben und die Chance zu erhöhen, dass Ihre gelöschten Dateien intakt bleiben. Natürlich müssen Sie wissen, welche Partition Sie freigeben müssen. Es ist mit hoher Wahrscheinlichkeit diejenige, die gemountet wird /data(Ihre lokalen und gelöschten Dateien befinden sich in /data/mediaoder so ähnlichem).
Midenok
1. Kopieren Sie bei der TWRP-Wiederherstellung Ihre Partition mit ddauf die Micro-SD-Karte in 4-GB-Schritten: `` dd if = / dev / dm-0 of = / sdcard / x1 ... n bs = 1048576 count = 4095 skip = ... `` `Nun, Sie haben die Möglichkeit, ein externes OTG-Laufwerk einzubauen (suchen Sie jedoch eine externe Stromquelle). Meins funktionierte jedoch nicht, so dass ich Stücke auf Micro-SD legen musste. In skipParameter werden Sie setzen: 0, 4095, 8190, 16380 usw.
midenok
2. Verschieben Sie alle Teile auf das Linux-System und verknüpfen Sie sie mit cat.
Midenok
3. Verwenden Sie testdisk, um sich zu erholen. Dies ist das vielseitigste Tool zum Wiederherstellen von Dateien. Es ermöglicht das Wiederherstellen von Dateien aus einem bestimmten Verzeichnis und das Wiederherstellen von beschädigten Dateien und arbeitet sehr schnell (abgesehen von heuristischen Scannern). So können Sie sicher sein, dass alles, was möglich ist, wiederhergestellt oder überschrieben wird.
Midenok
Oder: Immer testdiskals Teil des Busybox-Pakets installieren und auf dem Telefon behalten.
Midenok

Antworten:

35

Manueller Weg

Glücklicherweise unterscheidet sich die Datenwiederherstellung unter Android nicht von jedem anderen PC / Linux mit einem Flash-Speichergerät. Sie benötigen zuerst root und die ddBinärdatei auf Ihrem Gerät, um eine vollständige Sicherung des Blockspeichers zu erstellen, auf dem sich Ihre gelöschte Datei befunden hat. ddist manchmal bereits in Ihrem System installiert.

In nur drei Schritten können Sie herausfinden, ob die Datei wiederhergestellt werden kann:

  1. Finden Sie heraus, auf welchem ​​Blockgerät sich die Datei befand. Übermount
  2. Erfassen und Abbild dieses Blockgeräts mit dd: dd if=/dev/<blockdevice> of=/sdcard/image bs=4096
  3. Holen Sie sich ein forensisches Tool/sdcard/image für die Datenwiederherstellung und lassen Sie es nach der verlorenen Datei suchen . Sie können natürlich versuchen, mehrere Tools für das Image auszuführen. Foremost und Scalpel sind ein guter Anfang.

"Undelete" App

Es gibt eine neue App namens "Undelete Beta", die Dateien auf dem internen Speicher und der SD-Karte wiederherstellen kann. Die App ist Beta und hat einige Einschränkungen.

Wenn die Datei wirklich wichtig ist, würde ich immer den "manuellen Weg" wählen .

Fließen
quelle
Flow, vielen Dank. gute Antwort! Ich fühle mich jetzt weniger verzweifelt. :) Ich bin ein wenig eingeschüchtert von der Verwurzelung. Wissen Sie etwas über das Rooten des Nexus S? Verliere ich Daten, Anwendungen oder ähnliches? Muss ich es deaktivieren, um in Zukunft automatische Betriebssystemaktualisierungen zu erhalten? Ist es auch einfach, die Wurzel zu entfernen?
Dreeves
Zum Rooten siehe diese Frage . Ich habe kein Nexus S, aber ich würde sagen: Nein, nein und manchmal.
Flow
1
@Flow: a) Ich würde die betroffene Partition wirklich nicht weiter berühren, sondern den Nexus und 'fastboot boot cwm.img' für eine tmp-Wiederherstellung entsperren. b) Verwenden Sie adb vorzugsweise im laufenden Betrieb, um die Partitionsdaten mit stdout + gzip + uuencode vom Telefon zu übertragen (keine zeitweilige Speicherung auf / sdcard) . In erster Linie ist es am besten, eine maximale Größe und vielleicht 'NEXT' zu definieren (was EOF anzeigt, wenn ein anderer neuer Header gefunden wird). OK, wenn ich bearbeite?
ce4
1
+1 für "Skalpell"! Ich habe es vorher nicht gewusst. Übrigens: Das Photorec von Testdisk ist auch recht nützlich (für Standard-Dateitypen wie .jpg und solche)
ce4
Was passiert, wenn das zu sichernde Gerät größer als 4 GB ist?
David V.
10

Ab Android 4.3 und der Implementierung von TRIM ist es jetzt unglaublich schwierig, gelöschte Dateien im internen Speicher wiederherzustellen.

Einige der vorgeschlagenen Lösungen werden sich wahrscheinlich nicht lohnen, es sei denn, Sie können den Speicher nach dem Löschen sehr schnell nach gelöschten Dateien durchsuchen.

Darüber hinaus wird bei einer Wiederherstellung nach einem Zurücksetzen auf die Werkseinstellungen ab Android 4.0 eine sichere Löschung (oder ein ähnlicher Vorgang) durchgeführt, sodass alle Daten unwiderruflich gelöscht werden.

Referenz:

Andreas J.
quelle
Ich nehme an, das ist die richtige Antwort im Jahr 2019?
Ripper234
7

Die neue Undelete Beta kann hier hilfreich sein, wenn Sie keinen PC einbinden möchten. Jedes Mal, wenn Sie in den Speicher schreiben, besteht die Gefahr, dass die gelöschte Datei überschrieben wird, das Rooting sollte jedoch nicht gelöscht werden.

Matthew Read
quelle