Tagged: SQL

First off some back story for this post. My niece bought a Samsung galaxy S4. She used it for about a month, then decided to go back to her iPhone and give the Samsung to her brother. This meant that as a programmer, I had to find some way to transfer her android messages to her iPhone.

My basic plan is:

  1. backup iPhone via iTunes
  2. backup android SMSs via SMS Backup and Restore
  3. transfer android SMSs into the iPhone backup using sqlite.
  4. restore iPhone from altered backup

So first off I have to take a look at the sms database. It can be found in your iTunes backup folder (for me it was %APPDATA%/Apple Computer/mobile sync/backup/). there’s one more folder with all the backups, the one you are looking for is named “3d0d7e5fb2ce288813306e4d4636395e047a3d28”.

Here are the tables inside:

[Show Tables]

First lets look at how they all relate:

Just from making up this chart of how the tables relate, I have already seen areas where I made mistakes when I first tried to inject messages into the database. If you don’t understand the lines joining each table, here is a quick refernce sheet: http://www.vivekmchawla.com/2013/04/erd-crows-foot-relationship-symbols-quick-reference.html

So a message is made up of: the body of the message (message), an address (handle), a conversation (chat), and sometimes an attachment (attachment).

Lets look at the tables:

[Show Message Table]

[Show Handle Table]

[Show Chat Table]

That’s it for now. I’ll continue this blog post another time, though I hope you have found this helpful so far.

Edit. I spent about 2 hours creating custom shortcodes for wordpress to implement those [Show/Hide] tags. I’ll finish this another day.

I thought I’d give an update on my project, DreigonPOS, a point of sale program for cafes. I’ve been working on this alot lately, I’ve implemented excel import and exporting, automatic Deals, and more.

First off I’ll explain the features of DreigonPOS.


I worked with Mackay Sugar РMossman Central Mill to create a Management Information System (MIS), to keep track of Honeywell processor racks around their factory, and gather information on their usage as well as help engineers plan and install new racks and components. I worked on this project with Chiaki Sato, another JCU student.

The project used C# .NET Windows Forms, with Microsoft SQL Database Access.

As this project was for a client, I cannot release the source code here.