ユーザーデータパーティションから削除されたコンテンツを回復しますか?


23

そのため、Amandaが金髪の瞬間を持ち、SMSアプリのすべてのスレッドを誤って削除してしまったのです。ええ、「すべてのスレッドを削除」は、それほど簡単に呼び出すことはできません。

電話機はZTE Bladeであり、そのすべてのユーザーデータはYAFFS2ファイルシステムに不便に保存されています。

古いバックアップがありますが、回復する必要があるSMSはそれ以降のものです。SIMカードにはおそらくいくつかのものがあるので、SIMリーダーを注文しました。とにかく、それが保持している20個ほどはほとんどがネットワークオペレータのスパムだと思う。

そのため、私は効果のないバックアップ計画を呪い、将来的にSMSをGMailにバックアップすることを誓います。

その間、私はmmssms.db、またはそれの残りを回復することを決定します。

最初に、adbを接続してマウントを確認し、ブロックをSDカードのイメージにコピーしようとします。

dd if=/dev/block/mtdblock6 of=/sdcard/data.img 

そのような運はありません。強制的に降車するのは悪い考えであり、おそらくどのような場合でも機能しないでしょう。

したがって、busyboxの静的にリンクされたコピーをSDカードにアップロードし、conv = noerrorオプションを使用します。

最終的には、SDカードがいっぱいになるまでサイズが大きくなり続けるファイルでした。

私は何を間違えていますか?ClockworkModは本当の意味で画像を取りますか、それともファイルをバックアップして画像にパックするだけですか?YAFFS2回復プログラムはありますか?(私が読んだ2つの論文はそれを実行可能に見えますが、PoCコードさえ見ていません)

感謝の気持ちで受け取った手がかり/

編集:電話はルート化されます。非常に根ざした:)

さらに編集:

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

運が良ければ、SMSバックアップと復元でマージが可能になります。


ブレードが根付いていますか?
t0mm13b

@Mandy:他の質問について:Yaffs2は、基礎となるフラッシュストレージのウェアレベリング保護を備えたフラッシュファイルシステムです(書き込みが適切に行われず、常に「ログ」の末尾に行くログ構造化データモデルがあります)古い未使用スペースはヘッドから回収されます。非常に簡単に説明されています)。書きすぎなかった場合は、おそらくファイルの古いインスタンスを見つけることができます。削除の直前からテールの部分を無視することにより、幸運になる可能性があります。今のところYAFFS2のファイルカービングは行っていません。
ce4

回答:


19

smsデータベースは、保存し/data/data/com.android.providers.telephony/databases/mmssms.dbたい場所に保存されます。

最善のことは、これです、まだUSBケーブルを接続しないでください:

  1. ClockWorkmod Recoveryを再起動します。
  2. マウントとストレージに入る
  3. 選択してください mount /data
  4. USBを差し込む
  5. Windowsコマンドシェルまたはターミナルから、 adb shell
  6. ClockworkMod Recoveryを使用しているため、デフォルトでrootになっています。これを実行してください cp /data/data/com.android.providers.telephony/databases/mmssms.db /sdcard/MySmsDatabase.db
  7. 次のようにadb shell入力して終了します。exit
  8. これで、データベースがSDカードにコピーされました。
  9. ClockworkModリカバリを終了して再起動するだけで、リカバリがunmount /data自動的に行われます。

この段階で、データベースがコピーされます。SqliteManなどを使用して安全に抽出できます。HTH。

編集: OPは、ダンプの実行方法を知りたいと考えていました。- 読む :)

これを呼び出すとき(USBがプラグイン内およびプラグイン内で接続されている場合adb shell

sh-4.1# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00500000 00020000 "recovery"
mtd1: 00500000 00020000 "boot"
mtd2: 00120000 00020000 "splash"
mtd3: 00080000 00020000 "misc"
mtd4: 02580000 00020000 "cache"
mtd5: 0d700000 00020000 "system"
mtd6: 0cb80000 00020000 "userdata"
mtd7: 00020000 00020000 "oem"
mtd8: 00180000 00020000 "persist"

パーティションが鍵となるかを知ることは...だから私のブレードからたとえば、私がいることを見ることができますユーザデータがパーティション上にあるmtd6実際のパーティション情報が内で発見することができる、/dev/mtd/mtdX使用してこれを行うのにその問題そうcat

cat /dev/mtd/mtd6 > /sdcard/myuserdata.dump

そこから、/sdcard/myuserdata.dumpそのパーティションで使用されているファイルシステムに応じて、ループバックを介してマウントできます。走行距離はさまざまであり、もちろん、鶏と卵の状況です。そのすべてを行うには、携帯電話をルート化する必要があります。


それは最も役に立ちました。削除されたSMSのすべて(または少なくともほとんど)はmmssms.db-walにありました。有用なポインターに感謝します。
マンディ

しかし、私の質問は立っています-状況がそれを要求した場合、イメージをダンプすることは可能ですか?
マンディ

はい、答えを修正します... :)
t0mm13b

@ t0mm13bは今、これは素晴らしい答えは:) 1
Zuul

1
あなた、あなたは素晴らしいです。find -inameとgrepで固執しないことを自負するが、パニックはそれをあなたに与える。また、適切なeejitがすべてのSMSを文字列にパイプして、それらを読むのを少なくするように見えたので、もう一度感謝します;)
マンディ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.