Unfortunately my HTC Desire SMS app crashed (HTC official android 2.2), all SMS and MMS were lost. When I tried to recover from a previously backed up SMS file (generated by Desire SMS app), but it didn't work, prompting failed to recover. But I found actually most of SMS and MMS had been recovered, with some important ones still missing. I want to open the backup file directly to read out the missed SMS, how to do it? Someone said the backup file is SQLite file, right?

2 Answers 2


All the messages in Android are stored in an SQlite database on the mobile. So, I guess this Desire backup application simply copies this database to an accessible folder (presumably sdcard).
Since it's an SQLite file, you can simply download and use an SQLite Browser and view the SMS in there.

  • Thank you very much for the answer. The SMS backup file is stored in /mnt/sdcard/sms_backup folder. I copied it to my PC(Windows 7) and tried to load with SQLite3. With .schema command, it prompted an error: file is encrypted or is not a database. Seems not work.
    – Bill Fu
    Nov 15, 2011 at 7:19
  • you can try decrypting the file, in that case. Though I doubt if that will certainly help. You can use one of the following: SQLiteCrypt API, or SQLite Encryption Ext. or SQLite CEROD. Again, do create a copy of the file before applying these techniques
    – SamSPICA
    Nov 15, 2011 at 8:43
  • I tried SQLiteCrypt, the problem is I don't know the encrypt password. If I tried changing password by .changepass, it does not work either. I had made a new SMS backup file with the same method, which can be restored by HTC Desire correctly. However, the new file can not be opened with SQLite3 or SQLiteCrypt. I guess HTC had changed something of the backup file.
    – Bill Fu
    Nov 16, 2011 at 7:27
  • either that, or it's a different file altogether.
    – SamSPICA
    Nov 16, 2011 at 9:14
  • Yes, agree. Don't know whether anybody had ever read out the contents of SMS backup file successfully?
    – Bill Fu
    Nov 17, 2011 at 1:34

Try the unix strings command against the db file directly. This will search the binary db file for human readable strings and print them on the console.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .