Предыстория
Этим днем я ответил на текст от моей подруги, затем, видимо, забыл заснуть, прежде чем положить его обратно в карман. Когда я вытащил его обратно через несколько минут, мой телефон решил нажать «Редактировать-> Очистить все» в разговоре, испарив с ней два года и историю двух SMS-сообщений. Несмотря на то, что у меня есть резервная копия телефона, на данный момент ему уже почти три недели, и есть достаточно серьезное обсуждение, которое я хотел бы восстановить; Я уже взял копию sms.db, но я думаю, что метод, который я использовал, пылесосил файл, поэтому в нем нет текстов, удаленных софт.
Мясо вопроса
У меня есть трехнедельная резервная копия моего sms.db
, и у меня есть доступ к копии даты ее sms.db
. Я бы хотел
- экспортировать тексты, которые она имеет, но я не делаю (легко, по крайней мере, в CSV)
- изменить информацию о перспективах (поле
address
и поле sent/received/deleted/unknown
), сохранив отметку времени и текст
- импортировать / объединить эти новые записи в my old
sms.db
backup
- объединить эту обновленную резервную копию с моей текущей
sms.db
(необязательно / кажется, для этого есть онлайн-утилита)
Я действительно не знаю SQL, но был бы готов учиться; у меня проблема в том, что из того, что я понимаю, таблицы в sms.db
стали более взаимозависимыми в течение срока службы ОС, и триггеры теперь вызывают функции C, которые не существуют вне телефона, так что это не простой вопрос вызова один триггер на несколько записей. Кто-нибудь знает какие-либо способы обойти эту сложность, или даже лучше, какие-либо утилиты, которые уже выяснили, как импортировать отдельные записи в sms.db
?
Edit:
Я изучал sms.db
, и, насколько я могу судить, отношения довольно просты:
- для
message
, мне нужно в основном убедиться, что ROWID всех добавленных сообщений выше текущего наибольшего ROWID
msg_group
содержит message:ROWID
последнего сообщения для каждого контакта; Я могу найти правильный address
в пределах group_member
; group_member:group_id
соответствует msg_group:ROWID
msg_group
имеет хеш-столбец; это, вероятно, будет самым трудным для обновления, так как я не сразу уверен, что он обновляет, или какой хеш использовать
sqlite_sequence
не похоже, что это очень актуально; кажется, что все его записи меньше, чем фактические значения ROWID, но я предполагаю, что это означает, что мне не придется много с этим связываться.
- Я не совсем уверен, что смогу вообще изменить
msg_pieces
: за обработку нескольких частей MMS-сообщения отвечает таблица.