Changes to sms.db in iOS 16 for Unsent and Edited Messages
I was curious how the new features of iOS 16 that allow you to unsend or edit a sent text message would be reflected in sms.db. I was particularly interested in edited text messages, given that the recipient can see a history of edits to a text message in the iMessage app.
I took two test devices (iPhone 13 and iPhone SE 2020) and updated them both to iOS 16. I sent a series of messages between the two devices. Some I left unchanged, some I unsent, and some I edited.
I then did an iTunes backup of the iPhone SE 2020 with Elcomsoft iOS Forensic Toolkit and extracted the sms.db file. Here are the preliminary results:
For the messages that were not unsent or edited, the entries in sms.db seem to be substantially unchanged.
For messages that were unsent, there is still a row in sms.db. The row contains most of the metadata about the message (handle_id, date, is_from_me, etc.) but the text column (the content of the message) is empty.
For messages that were edited, there is a row in sms.db (only one row no matter how many times the message is edited). However, surprisingly, the text column is empty. The original version of the text, and all edits, are stored in the message_summary_info column.