Відновити видалений вміст із розділу розділів користувачів?


23

Так сталося, що в Аманди був момент блондинки і помилково видалив усі її теми в програмі SMS. Так, "Видалити всі теми", ймовірно, не слід так легко викликати.

Телефон - лезо ZTE, усі його користувацькі дані незручно зберігаються у файловій системі YAFFS2.

У мене є стара копія, але SMS, які мені потрібно відновити, починають з того часу. На SIM-картці, мабуть, є деякі, тому я замовив зчитувач SIM-карт. Я підозрюю, що двадцять або близько цього є, в основному, оператором мережі, спамом.

Отже, я проклинаю свій неефективний план резервного копіювання і обіцяю створити резервну копію SMS на GMail у майбутньому.

Тим часом я вирішую відновити mmssms.db або те, що від нього залишилося.

Спочатку підключаю adb і перевіряю кріплення, потім намагаюся скопіювати блок на зображення на SD-карті:

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

Такої удачі немає. Я вважаю, що насильницький демонтаж був би поганою ідеєю, і, ймовірно, не буде працювати в будь-якому випадку.

Отже, я завантажую на SD карту статично пов'язану копію і використовую опцію conv = noerror.

У мене вийшов файл, який збільшував розмір, поки SD-карта не заповнилася.

Що я роблю неправильно? Чи ClockworkMod знімає зображення в справжньому сенсі, чи це просто резервне копіювання файлів і упаковка їх у зображення? Чи існує програма відновлення YAFFS2? (Дві статті, які я прочитав, здаються здійсненними, але я не бачив навіть коду 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.
  2. Перейдіть у гори та сховища
  3. Виберіть mount /data
  4. Підключіть USB
  5. З командної оболонки або терміналу Windows, adb shell
  6. Оскільки ви знаходитесь у ClockworkMod Recovery, ви за замовчуванням користуєтеся коренем, тепер зробіть це 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.

Редагувати: ОП було цікаво знати, як можна зробити звалище. - Читай далі :)

Коли ви викликаєте це (із підключеним 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 Тепер це чудова відповідь :) +1
Zuul

1
Ви, сер, "# @!% Ін дивовижні. Брикаю себе за те, що не наполягаю на знаходженні -інаме та греп, але паніка робить це з тобою. Крім того, я б подивився належним eejit, перекочуючи всі мої SMS у рядки і менше їх читати, тож ще раз дякую;)
Mandy
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.