Como posso recuperar um arquivo excluído no Android?


34

Acabei de excluir um arquivo do meu Nexus S que realmente preciso de volta. (Na verdade, fazia parte de um aplicativo usando um banco de dados sqlite que fazia uma tabela suspensa ao atualizar para uma nova versão.)

Presumivelmente, preciso primeiro torcer o telefone (o que eu ouço é fácil nos telefones Nexus), mas estou em uma situação difícil aqui? Ou seja, fazer root no telefone significa limpar / substituir a partição em que os dados estão armazenados?

Caso contrário, o que você recomenda para ferramentas de recuperação de dados? Presumivelmente, o arquivo foi desvinculado e não foi sobrescrito ativamente (normalmente ao "excluir" um arquivo), portanto tecnicamente os dados devem estar lá ...


Não consigo postar uma resposta, o sistema vai contra mim. Pior para eles ... A maneira mais fácil quando você tem um sistema Linux e seu dispositivo com recuperação TWRP é. 0. Primeiro de tudo! Pare de criar novos arquivos, feche todos os aplicativos. Se você precisar executar algo, DELETE primeiro alguns arquivos desnecessários, tanto quanto possível, para liberar mais espaço e ter mais chances de manter intactos os arquivos excluídos. Claro que você precisará saber qual partição precisa liberar. Altas chances é a que está montada como /data(seus arquivos locais e excluídos estão /data/mediaou algo assim).
midenok

1. Na recuperação do TWRP, copie sua partição ddpara o cartão micro SD por pedaços de 4Gb: `` `dd if = / dev / dm-0 of = / sdcard / x1 ... n bs = 1048576 count = 4095 skip = ... `` Bem, você tem a opção de montar uma unidade OTG externa (embora encontre alguma fonte de energia externa). Mas o meu não funcionou, então tive que colocar pedaços no micro-SD. No skipparâmetro você colocará: 0, 4095, 8190, 16380, etc.
midenok

2. Mova todas as peças para o sistema linux, concatene com cat.
midenok

3. Use testdiskpara recuperar. Esta é a ferramenta mais versátil para a extfs undelete. Ele permite desfazer a partir de um diretório específico e desfazer a exclusão de arquivos quebrados e funciona muito rápido (além dos scanners heurísticos). Portanto, você terá certeza de que tudo o que é possível é cancelado ou substituído.
midenok

Ou: sempre instale testdiskcomo parte do pacote busybox e mantenha-o no telefone.
midenok

Respostas:


35

Maneira manual

Felizmente, a recuperação de dados no Android não é diferente de qualquer outro PC / Linux com um dispositivo de armazenamento flash. Você precisa primeiro da raiz e do ddbinário no seu dispositivo para fazer um backup completo do dispositivo de armazenamento em bloco em que estava o arquivo excluído.ddàs vezes já está instalado no seu sistema.

Depois, são apenas três etapas para descobrir se o arquivo pode ser recuperado:

  1. Descubra em qual dispositivo de bloco o arquivo estava. Através damount
  2. Adquira e imagem desse dispositivo de bloco com dd: dd if=/dev/<blockdevice> of=/sdcard/image bs=4096
  3. Obtenha uma ferramenta forense de recuperação de dados e deixe-a procurar /sdcard/imageo arquivo perdido. Obviamente, você pode tentar executar várias ferramentas na imagem. Primeiro e bisturi são um bom começo.

App "Undelete"

Existe um novo aplicativo chamado "Undelete Beta" que pode recuperar arquivos no armazenamento interno e no cartão SD. O aplicativo é beta e tem algumas restrições.

Se o arquivo for realmente importante, eu sempre escolheria o "Caminho Manual" .


Flow, muito obrigado; Ótima resposta! Estou me sentindo menos desanimado agora. :) Estou um pouco intimidado pelo enraizamento. Você sabe alguma coisa sobre fazer root no Nexus S? Perderei dados ou aplicativos ou algo assim? Vou precisar desenraizá-lo para obter atualizações automáticas do sistema operacional no futuro? O desenraizamento também é simples?
dreeves

Para fazer o enraizamento, veja esta pergunta . Não tenho o Nexus S, mas diria: não, não e às vezes.
Flow

1
@Flow: a) Eu realmente não tocaria mais na partição afetada, mas desbloqueia o Nexus e o 'fastboot boot cwm.img' para uma recuperação tmp. b) De preferência, use adb on the fly para transmitir os dados da partição pelo telefone (sem armazenamento intermitente no / sdcard) usando stdout + gzip + uuencode c) escultura: sqlite3 não tem rodapé, mas um cabeçalho "formato SQLite 3". Usando o mais importante, é melhor definir um tamanho máximo e talvez 'NEXT' (indicando EOF se qualquer outro cabeçalho novo for encontrado). OK se eu editar?
ce4 12/12/12

1
+1 para 'bisturi'! Não sabia antes. BTW: photorec de Testdisk também é bastante útil (para tipos de arquivo padrão, como .jpg ans tal)
CE4

e se o dispositivo para backup for maior que 4 GB?
David V.

10

A partir do Android 4.3 ou superior e a implementação do TRIM, agora é incrivelmente difícil recuperar arquivos excluídos na memória interna.

Algumas das soluções sugeridas provavelmente não valerão a pena, a menos que você possa digitalizar a memória para o (s) arquivo (s) excluído (s) muito rapidamente após a exclusão.

Além disso, no caso de recuperação após uma redefinição de fábrica, a partir do Android 4.0 ou superior, uma redefinição de fábrica agora acaba fazendo uma exclusão segura (ou operação semelhante) para que todos os dados sejam irrevogavelmente apagados.

Referência:


Presumo que esta seja a resposta correta em 2019?
ripper234 3/11

7

O novo Undelete Beta pode ser útil aqui se você não quiser envolver um PC. Sempre que você grava no armazenamento, corre o risco de sobrescrever o arquivo excluído, mas o enraizamento não deve ser apagado.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.