iPhone has been the smartphone of choice for many people around the world since its first version been launched couple of years ago. Since then, mobile phone device running Android operating system has been gaining traction and popularity, and has became preferred choice for some, including people who migrates from iPhone to Android.

For ex-Apple fanboys who decide to switch to Android platform for good, it’s possible to export all existing SMS text messages on iPhone and import into the new Android-based mobile phone device. The trick to move, transfer or migrate SMS text messages from iPhone to Android device depends on the backup which taken by iTunes and stored on computer, which can be converted to XML format readable by other applications.

The manual process to convert the iPhone SMS text messages backup database to readable XML format is tedious, but there are several web service or web apps that able to perform the conversion of SMS text information automatically.

Follow the brief guide below to migrate, move and transfer SMS text messages from iPhone to Android smartphone:

  1. Perform the “last” sync between iPhone and iTunes so that the iTunes backup has all the latest SMSes or text messages received.

    Note: The backup must not be password protected or encrypted by iTunes.

  2. Copy the 3d0d7e5fb2ce288813306e4d4636395e047a3d28.mddata (or 3d0d7e5fb2ce288813306e4d4636395e047a3d28.mdbackup for older than version 8.1 of iTunes) file which contains the sms.db located in the folder listed below to Desktop.

    Windows 7 and Windows Vista: %AppData%\Apple Computer\MobileSync\Backup\ (\Users\User Name\AppData\Roaming\Apple Computer\MobileSync\Backup\)

    Windows XP: \Documents and Settings\User Name\Application Data\Apple Computer\MobileSync\Backup\

    Mac OS X: ~/Library/Application Support/MobileSync/Backup/

    There will be one or more sub-folders which made up of random alphabet and number characters. Go to directory with the newest date modified of the directory to get the latest backup. Normally, the newest folder does not have a timestamp (-YYYYMMDD-HHMMSS) appended at the end.

  3. Visit one of the following iPhone SMS to Android SMS converter or extractor website:

    http://faked.org/isms2droid/
    http://insend.de/ (also supports address book contacts)

  4. Upload the .mddata (or .mdbackup) file to the web service, and let it perform the conversion to XML format.
  5. Download the converted .xml file.
  6. On the Android device, launch Android Market to download and install SMS Backup and Restore app.
  7. Copy the .xml file to SMSBackupRestore folder on the SD card of the Android mobile device.

    Note: If the folder is not found, create the folder manually, or simply perform a backup with the SMS Backup and Restore app.

  8. Use the SMS Backup and Restore app to restore the content of .xml file to repopulate old SMS text messages from iPhone to Android.

If you are not comfortable with sending the complete logs of your SMS history to external websites, it’s possible to do the conversion process yourself, although the steps are longer and more technical, as shown in the guide below.

  1. Perform the “last” sync between iPhone and iTunes so that the iTunes backup has all the latest SMSes or text messages received.

    Note: The backup must not be password protected or encrypted by iTunes.

  2. Copy the 3d0d7e5fb2ce288813306e4d4636395e047a3d28.mddata (or 3d0d7e5fb2ce288813306e4d4636395e047a3d28.mdbackup for older than version 8.1 of iTunes) file which contains the sms.db located in the folder listed below to Desktop.

    Windows 7 and Windows Vista: %AppData%\Apple Computer\MobileSync\Backup\ (\Users\User Name\AppData\Roaming\Apple Computer\MobileSync\Backup\)

    Windows XP: \Documents and Settings\User Name\Application Data\Apple Computer\MobileSync\Backup\

    Mac OS X: ~/Library/Application Support/MobileSync/Backup/

    There will be one or more sub-folders which made up of random alphabet and number characters. Go to directory with the newest date modified of the directory to get the latest backup. Normally, the newest folder does not have a timestamp (-YYYYMMDD-HHMMSS) appended at the end.

  3. Download and install SQLite Database Browser from sourceforge.net.
  4. Download and install Serna Free XML editor from syntext.com.
  5. Load the .mddata (or .mdbackup) database file in the SQLite Database Browser.
  6. Go to File -> Export -> Table as CSV file, and choose the message table to extract the SMS text messages on iPhone.
  7. The CSV file cannot be imported into Android, and must be polished to a format readable by an app that can restore the iPhone SMSes into Android. Thus, import and load the CSV file into Microsoft Excel.
  8. The Excel worksheet should have the following headings:

    ROWID; address; date; text; flags; replace; svc_center; group_id; association_id; height; UIFlags; version; subject; country; headers; recipients; read

    Note: All the formulas in the trick below assume that the columns are arranged as such. Adjust the formulas according if it’s not.

  9. Right click on the date column and select Format Cells. On the Number tab, choose Text so that the date column is in text format.
  10. Insert and create an extra column to the right of date.
  11. Copy and paste the =C2&”000″ formula into the newly inserted column to the right of “date” to change the date to the valid format for Android (Epoch with milliseconds), and apply it down across the column.
  12. Right click on the text column and select Format Cells. On the Number tab, choose Text so that the text column is in text format.
  13. Insert and create six columns to the right of the text column to parse special characters to compatible with Android. iPhone stores special characters that may be incompatible and break the XML parser (such as ampersands, quotes, apostrophes, greater than signs and line breaks).
  14. In each of the successive 6 new columns, enter the following formulas, and apply it down across the columns:

    Column 1: =SUBSTITUTE(E2,CHAR(38),CHAR(38)&”amp;”)

    Column 2: =SUBSTITUTE(F2,CHAR(60),CHAR(38)&”lt;”)

    Column 3: =SUBSTITUTE(G2,CHAR(62),CHAR(38)&”gt;”)

  15. Column 4: =SUBSTITUTE(H2,CHAR(34),CHAR(38)&”quot;”)

    Column 5: =SUBSTITUTE(I2,CHAR(39),CHAR(38)&”apos;”)

    Column 6: =SUBSTITUTE(J2,CHAR(13),CHAR(38)&”#13;”)

  16. Insert and create an extra column to the right of flags, which indicates if the SMS or text is received or sent. On iPhone, 2 is received SMS while 3 is sent SMS, whereas on Android, 1 is received SMS while 2 is sent SMS.
  17. In the new column next to “flags”, enter the =L2-1 formula, and apply it across the column.
  18. In a new column (after the last column with information), enter the following formula and apply across the column:

    =" "

  19. On the Android device, launch Android Market to download and install SMS Backup and Restore app.
  20. Ensure that there is at least one existing text on Android phone (can be sent or received).
  21. Run SMS Backup and Restore and perform a backup of SMS text messages.
  22. Connect the Android phone to the computer with “Memory Card Access” (change by dragging down the notification bar and tap USB connection.
  23. Use Windows Explorer to navigate to SMSBackupRestore folder on the SD card.
  24. Copy the backup file (the latest and newest version if there is more than one) created by SMS Backup and Restore to computer.
  25. Using the XML editor, append and add in the text created in the last column of the Excel document to the XML file source. Every rows in the column should be copied as each representing one SMS (text). After editing, it should have the format similar to below:

    <?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
    <smses>
    <sms protocol="0" address="NHS" date="1288018877000" subject="null" body="My Digital Life guide" toa="208" sc_toa="0" service_center="+13123149810" read="1" status="-1" />
    <sms protocol="0" address="NHS" date="1288019988000" subject="null" body="My Digital Life tips and tricks" toa="208" sc_toa="0" service_center="+13123149810" read="1" status="-1" />
    .
    .
    .
    </smses>

  26. Save the XML file.
  27. Copy back the XML file to the SMSBackupRestore folder on the SD card of the phone.
  28. Run SMS Backup and Restore and perform a restore of SMS text messages.

Unfortunately, as iPhone is pretty secure and closed system, there appear to be no easy way to import SMS texts into iPhone yet.