Então aconteceu que Amanda teve um momento louro e excluiu todos os seus tópicos no aplicativo SMS por engano. Sim, "Excluir todos os tópicos" provavelmente não deve ser tão fácil de chamar.
O telefone é um ZTE Blade, com todos os dados do usuário armazenados de forma inconveniente em um sistema de arquivos YAFFS2.
Eu tenho um backup antigo, mas os SMS que preciso recuperar são desde então. Provavelmente existem alguns no cartão SIM, então pedi um leitor SIM. Suspeito que os vinte mais ou menos possuídos sejam principalmente spam de operadora de rede.
Portanto, amaldiçoo meu plano ineficaz de backup e prometo fazer o backup do SMS no GMail no futuro.
Enquanto isso, resolvo recuperar o mmssms.db, ou o que resta dele.
Primeiro, conecto o adb e verifico as montagens, depois tento copiar o bloco para uma imagem no cartão SD:
dd if=/dev/block/mtdblock6 of=/sdcard/data.img
Não tenho tanta sorte. Eu raciocino que desmontar à força seria uma péssima idéia e provavelmente não funcionará em nenhum caso.
Portanto, carrego uma cópia do busybox vinculada estaticamente ao cartão SD e uso a opção conv = noerror.
Acabei com um arquivo que continuava aumentando de tamanho até o cartão SD ficar cheio.
O que estou fazendo errado? O ClockworkMod obtém uma imagem no verdadeiro sentido ou apenas faz o backup dos arquivos e os compacta em uma imagem? Existe um programa de recuperação YAFFS2? (Os dois artigos que li fazem com que pareça viável, mas eu não vi nem o código PoC)
Quaisquer pistas recebidas com gratidão /
Editar: o telefone está enraizado. Muito enraizado :)
Edição adicional:
A maioria das mensagens encontradas no mmssms.db-wal:
ls -al /data/data/com.android.providers.telephony/databases
drwxrwx--x 1 radio radio 2048 Jul 17 20:16 .
drwxr-xr-x 1 radio radio 2048 Oct 26 2011 ..
-rw-rw---- 1 root root 60416 Jul 17 20:16 mmssms.db
-rw-rw---- 1 radio radio 32768 Jul 17 16:18 mmssms.db-shm
-rw-rw---- 1 radio radio 628832 Jun 30 19:23 mmssms.db-wal
-rw-rw-rw- 1 root root 60416 Jul 17 20:16 mmssms.db.xxx
-rw-rw---- 1 radio radio 132096 Jun 18 13:25 telephony.db
-rw-rw---- 1 radio radio 32768 Jul 16 22:14 telephony.db-shm
-rw-rw---- 1 radio radio 106928 Jul 16 22:14 telephony.db-wal
Com alguma sorte, o SMS Backup & Restore permitirá uma fusão.
fonte
Respostas:
O banco de dados sms é armazenado
/data/data/com.android.providers.telephony/databases/mmssms.db
e é o que você deseja fazer.A melhor coisa a fazer é isso, ainda não conecte o cabo USB:
mount /data
adb shell
cp /data/data/com.android.providers.telephony/databases/mmssms.db /sdcard/MySmsDatabase.db
adb shell
digitando isto:exit
unmount /data
para você.Nesse estágio, seu banco de dados agora é copiado. E pode ser extraído com segurança usando algo como SqliteMan . HTH.
Edit: O OP estava interessado em saber como um despejo pode ser feito. - Leia :)
Quando você invoca isso (com o USB conectado e dentro do
adb shell
)Conhecendo qual partição é a chave. Então, por exemplo, no meu Blade, posso ver que os dados do usuário estão na partição
mtd6
, na qual as informações reais da partição podem ser encontradas,/dev/mtd/mtdX
portanto é uma questão de fazer isso usandocat
:E a partir daí, usando o
/sdcard/myuserdata.dump
, dependendo do sistema de arquivos usado nessa partição, ele pode ser montado via loop-back. A quilometragem varia e, é claro, é uma situação de galinha e ovo, para fazer tudo isso, o aparelho precisa estar enraizado.fonte