Восстанавливаем WhatsApp

Если у вас iDevice (общее название яблочных мобильных устройств) и над вами пошутили, прислав в whatsapp арабскую чудо вязь, то можно либо наблюдать до бесконечности вылет этой программы сразу при запуске без возможности пообщаться, либо вылечить друзей её!

Нам понядобятся:

1. iExplorer (http://www.macroplant.com/iexplorer/)

2. терминал и движок БД SQLite3

Приступаем!

Переписка Whatsapp хранится в памяти айфона в папке Documents в виде файла базы данных SQLite3 - ChatStorage.sqlite

Скопируем его на свой компьютер с помощью iExplorer:

Запускаем терминал (Terminal.app) в папке с файлом БД и открываем этот файл:

sqlite3 ChatStorage.sqlite

БД состоит из таблиц, в одной из которых хранится переписка. Определим, в какой именно:

 sqlite> .tables

 Скорее всего, это ZWAMESSAGE. Можно убедиться в этом:

sqlite> select * from zwamessage limit 1;

Отлично! Таблица найдена, но мы не знаем имена столбцов, чтобы в дальнейшем сформировать правильный запрос для удаления "добрых" сообщений. Имена узнаем такой командой:

sqlite> pragma table_info(ZWAMESSAGE);

Сопоставляя два последних вывода, понимаем, что тексты сообщений хранятся в столбце ZTEXT, поэтому отыщем письма "счастья":

sqlite> select * from zwamessage where ztext like "%س%";

Если это все письма, то их бы надо удалить, но опыт показал, что они снова подгрузятся с сервера whatsapp, будто бы просто не были доставлены. Поэтому заменим "добрый" текст чем нибудь своим:

sqlite> update zwamessage set ztext="let's get party!!!" where ztext like "%س%";

Готово! Возвращаем вылеченный файл обратно в лапы whatsapp и смотрим, что получилось: