Восстановление отсутствующих сообщений iPhone

У моего друга есть iPhone 3G, и примерно в сентябре его телефон, похоже, потерял все его SMS-сообщения, и теперь видны только сообщения, полученные с тех пор. Я нашел некоторые источники, в которых говорится, что это может произойти, когда база данных сообщений повреждена (или есть сообщение, которое где-то повреждено и нарушает работу). Я понимаю, что архив базы данных представляет собой базу данных SQLite, и что кто-то с похожими симптомами решил эту проблему, удалив оскорбительное сообщение из базы данных вручную . Я рад сделать это, но iPhone не взломан, и я предполагаю, что у меня не будет прав записи на устройстве.

Я попытался создать резервную копию iPhone через iTunes и извлечь сообщения с помощью инструмента, но он нашел только те сообщения, которые может видеть устройство, и нет резервных копий до возникновения проблемы.

Вероятно ли, что сообщения все еще существуют на устройстве и могут быть извлечены? Можно ли их восстановить, чтобы устройство снова могло их прочитать?

Изменить в ответ на ответ манкоффа:

Теперь я выполнил резервное копирование iPhone в iTunes и проанализировал дамп базы данных SQLite, и сообщение с самой ранней отметкой времени выглядит следующим образом:

INSERT INTO "message" VALUES(2,NULL,1315907872,NULL,131,0,NULL,1,0,0,0,0,NULL,NULL,NULL,NULL,1);

Для справки схема таблицы:

CREATE TABLE message (ROWID INTEGER PRIMARY KEY AUTOINCREMENT, address TEXT, date INTEGER, text TEXT, flags INTEGER, replace INTEGER, svc_center TEXT, group_id INTEGER, association_id INTEGER, height INTEGER, UIFlags INTEGER, version INTEGER, subject TEXT, country TEXT, headers BLOB, recipients BLOB, read INTEGER);

Это соответствует вторнику, 13 сентября 2011 г., 09:57:52 по Гринвичу, что является самым ранним сообщением, которое также может видеть телефон. Я не уверен, как мог появиться отправитель NULL, и база данных, похоже, не содержит таких экземпляров.

Учитывая эту информацию, есть ли способ, которым данные все еще могут быть на телефоне и извлекаться (за исключением судебной экспертизы)?

Изменить 2. Я также хотел бы спросить: что могло вызвать эту проблему?

Ответы (1)

Вы должны попробовать получить доступ к базе данных SMS из командной строки. Некоторое объяснение здесь: Как я могу экспортировать текстовые SMS-сообщения с моего iPhone?

Если вы видите старые сообщения, вы можете найти поврежденное и восстановить его. Если команда дампа Sqlite их не показывает, а размер БД подразумевает, что их там нет, скорее всего, они исчезли.

Если вы можете найти старые копии этого файла в резервных копиях, посмотрите там, иначе я думаю, что сообщения исчезли навсегда.

Спасибо за помощь, это кажется небольшим усилием, поэтому я попробую, когда увижу его в следующий раз. У вас есть ответ на вторую половину вопроса (можно ли их восстановить без джейлбрейка)?
синхронизировать телефон. сбросить (стереть) телефон. обновить базу данных SMS до желаемого состояния. восстановить телефон.
Большое спасибо за ответ, только что удалось встретиться с моим другом. Просмотрели базу данных, и, похоже, она не содержала никаких сообщений до того, которое видит телефон (похоже, самое раннее сообщение вызвало повреждение). Я обновил свой вопрос с результатами, есть ли у вас какие-либо другие предложения?