Jak mogę odzyskać usunięty plik na Androidzie?

34

Właśnie usunąłem plik na Nexusie S, którego naprawdę potrzebuję. (W rzeczywistości była to część aplikacji korzystającej z bazy danych sqlite, która zrobiła tabelę upuszczania podczas aktualizacji do nowej wersji).

Przypuszczalnie muszę najpierw zrootować telefon (co słyszę, że jest to łatwe w telefonach Nexus), ale czy mam tutaj haczyk? Mianowicie, czy rootowanie telefonu oznacza wymazanie / nadpisanie partycji, na której znajdują się dane?

Jeśli nie, co polecasz do narzędzi do odzyskiwania danych? Prawdopodobnie plik został po prostu rozłączony i nie został aktywnie nadpisany (co zwykle przy „usuwaniu” pliku), więc technicznie dane muszą tam być ...

dreeves
źródło
Nie mogę opublikować odpowiedzi, system działa przeciwko mnie. Gorzej dla nich ... Najłatwiejszym sposobem, gdy masz system Linux i urządzenie z funkcją odzyskiwania TWRP, jest. 0. Po pierwsze! Przestań tworzyć nowe pliki, zamknij wszystkie aplikacje. Jeśli będziesz musiał coś uruchomić, lepiej najpierw USUŃ niektóre niepotrzebne pliki, aby zwolnić więcej miejsca i mieć większe szanse na zachowanie nienaruszonych plików. Oczywiście będziesz musiał wiedzieć, którą partycję musisz zwolnić. Duże szanse, że to ten, który jest zamontowany jako /data(twoje lokalne i usunięte pliki są w nim /data/medialub coś takiego).
midenok
1. W trybie odzyskiwania TWRP skopiuj partycję ddna kartę micro SD po 4 GB: `` dd if = / dev / dm-0 of = / sdcard / x1 ... n bs = 1048576 count = 4095 skip = ... `` Cóż, masz opcję zamontowania zewnętrznego napędu OTG (znajdź jakieś zewnętrzne źródło zasilania). Ale moje nie działało, więc musiałem wkładać elementy do micro-SD. W skipparametrze umieścisz: 0, 4095, 8190, 16380 itd.
środkowy
2. Przenieś wszystkie elementy do systemu Linux, połącz z cat.
midenok
3. Użyj, testdiskaby odzyskać. Jest to najbardziej wszechstronne narzędzie do cofania usuwania plików extf. Umożliwia cofanie z określonego katalogu, a nawet usuwa uszkodzone pliki i działa naprawdę szybko (oprócz skanerów heurystycznych). Będziesz więc pewien, że wszystko, co jest możliwe, zostanie usunięte lub nadpisane.
midenok
Lub: zawsze instaluj testdiskjako część pakietu busybox i przechowuj go w telefonie.
midenok

Odpowiedzi:

35

Sposób ręczny

Na szczęście odzyskiwanie danych na Androidzie nie różni się od innych komputerów PC / Linux z pamięcią flash. Najpierw potrzebujesz roota idd pliku binarnego na swoim urządzeniu, aby wykonać pełną kopię zapasową blokowego urządzenia magazynującego, na którym był usunięty plik. ddczasami jest już zainstalowany w twoim systemie.

To tylko 3 kroki, aby dowiedzieć się, czy plik można odzyskać:

  1. Dowiedz się, na którym urządzeniu blokowym znajdował się plik. Przezmount
  2. Uzyskaj i obraz tego urządzenia blokowego z dd: dd if=/dev/<blockdevice> of=/sdcard/image bs=4096
  3. Uzyskaj narzędzie do odzyskiwania danych i pozwól mu wyszukać /sdcard/imageutracony plik. Możesz oczywiście spróbować uruchomić wiele narzędzi na obrazie. Przede wszystkim i Skalpel to dobry początek.

Aplikacja „Undelete”

Istnieje nowa aplikacja o nazwie „Undelete Beta”, która może odzyskać pliki z pamięci wewnętrznej i karty SD. Aplikacja jest w wersji beta i ma pewne ograniczenia.

Jeśli plik jest naprawdę ważny, zawsze wybrałbym „Ręczny sposób” .

Pływ
źródło
Flow, wielkie dzięki; świetna odpowiedź! Teraz czuję się mniej przygnębiony. :) Jestem jednak nieco onieśmielony przez rootowanie. Czy wiesz coś o zrootowaniu Nexusa S? Czy stracę jakieś dane, aplikacje lub cokolwiek innego? Czy będę musiał go ponownie uruchomić, aby uzyskać automatyczne aktualizacje systemu operacyjnego w przyszłości? Czy odreagowanie też jest proste?
dreeves
Do rootowania patrz to pytanie . Nie mam Nexusa S, ale powiedziałbym: Nie, nie i czasami.
Flow
1
@Flow: a) Naprawdę nie dotknęłbym już dotkniętej partycji, ale odblokowałem Nexusa i „fastboot boot cwm.img”, aby odzyskać tmp. b) Najlepiej użyj adb w locie, aby przesłać dane partycji z telefonu (bez przerywania przechowywania na / sdcard) za pomocą stdout + gzip + uuencode c) carving: sqlite3 nie ma stopki, ale nagłówek „SQLite format 3”. Używając przede wszystkim najlepiej zdefiniować maksymalny rozmiar i być może „NASTĘPNY” (wskazujący EOF, jeśli zostanie znaleziony inny nowy nagłówek). OK, jeśli dokonam edycji?
ce4
1
+1 za „skalpel”! Nie znałem wcześniej. BTW: Photorec Testdisk jest również bardzo użyteczny (dla standardowych typów plików, takich jak .jpg i takie)
ce4
co jeśli urządzenie do tworzenia kopii zapasowej jest większe niż 4 GB?
David V.
10

Począwszy od Androida 4.3+ i implementacji TRIM, odzyskanie usuniętych plików w pamięci wewnętrznej jest obecnie niezwykle trudne.

Niektóre z sugerowanych rozwiązań prawdopodobnie nie będą opłacalne, chyba że będziesz w stanie bardzo szybko przeskanować pamięć w poszukiwaniu usuniętych plików po usunięciu.

Co więcej, w przypadku odzyskiwania po przywróceniu ustawień fabrycznych, począwszy od Androida 4.0+, resetowanie fabryczne kończy się teraz bezpiecznym usunięciem (lub podobną operacją), dzięki czemu wszystkie dane zostają nieodwracalnie usunięte.

Odniesienie:

Andreas J.
źródło
Zakładam, że to poprawna odpowiedź w 2019 roku?
ripper234
7

Nowa Undelete Beta może być pomocna tutaj, jeśli nie chcesz angażować komputera. Za każdym razem, gdy piszesz do pamięci, ryzykujesz nadpisanie usuniętego pliku, ale rootowanie nie powinno go wyczyścić.

Matthew Read
źródło