Jump to content


Photo

How I Transfered Windows Mobile SMS to Android

- - - - -

  • Please log in to reply
57 replies to this topic

#1
patzek

patzek

    Newbie

  • Members
  • Pip
  • 43 posts
This was just a quick and very dirty solution and its nothing for people who dont know what they are doing... but here is my way:

First of all you still need root access to your Android device to get the SMS Database file located in
/data/data/com.android.providers.telephony/databases
The file is called mmssms.db and it is a sqlite database. Make a copy of this file to your computer.

Then export your Windows Mobile SMS with this Tool: http://wince.nasenba...t/SmsImport.exe
This will create a single XML file of all your SMS Folders. Take this file also to your Computer.

Then, use my little programm attached here and open the xml file. But first change the Foldernames for the SMS folders. For me (German Windows Mobile Device) this was Posteingang for the Inbox and Gesendete Objekte for the Outbox. Take a look at the XML file there you find the foldernames. Now open up your xml file and let the programm read them. When you do it right then the Datagrid will show up your imported SMS Messages. Check, them. Edit them. Do what ever you want :D And at least select your Android SMS Databasefile and write your SMS Messages to the Database. Existing Messages in the Database will not be killed. And the last step copy back your mmssms.db file to your android device (check permissions and owner radio.radio 660) and restart your device.

This has worked for me (Importet 600 SMS without errors) but dont know if this will work with other users databasefiles and sms messages. I'm not responsable for damages or dataloss. Use it at your own risk.


2009-08-19: Alpha 2 Release
  • Corrected Date Field for non German Languages
2009-08-24: Alpha 3 Release
  • Support for non Hero Databasefiles (Tested Android 1.1 and 1.5 Standard Roms)
2009-09-03: Alpha 4 Release
  • Corrected Problem with Database Export

Attached Files


Edited by patzek, 03 September 2009 - 08:11 AM.

  • 0

#2
SKORPiO1975

SKORPiO1975

    Newbie

  • Members
  • Pip
  • 14 posts
  • Devices:G1
I still get the error with your newer release. It is: Column recipient_address does not belong to table Table. [OK]
This is my xml file. Is there anything wrong with it? I used the program you pointed out to transfer from my titan wimo6.

<?xml version="1.0" encoding="UTF-8"?>
<SMSExport>
<store name="SMS">
<folder name="Deleted Items"></folder>
<folder name="Drafts"></folder>
<folder name="Inbox"><message date="07/12/2008 12:16:34" sender="+1234567890" recipient="+9876543210">message text goes here</message></folder>
<folder name="Outbox"></folder>
<folder name="Sent Items"></folder>
</store>
</SMSExport>

and this is what it generates. I used a test with only one sms message and still get the TABLE error. If you could please post your xml file, I could edit mine to match the format. Your program reads all smses from XML file.. all columns ie: date, time, from, to, and message match fine.

thank you, Regards, Bart.

  • 0

#3
patzek

patzek

    Newbie

  • Members
  • Pip
  • 43 posts
The Column "recipient_address" is Part from the Messagedatabase not from the XML File. So there is an error with your mmssms.db File. Have you selected the right one? Do you have a Hero? What kind of modification have you made to your telephone? Firmware Version?

You can also check your mmssms.db File with an SQLLite Explorer (there exists an Plugin for Firefox). The Column is Part of the Threadtable. Maybe you can take a look at this.

  • 0

#4
AndroidTim

AndroidTim

    Newbie

  • Members
  • Pip
  • 6 posts
Sorry for the doublepost :D

In what way can you get to the android sms-database? Using Astro or Linda doesn't work.

I succeeded exporting the Windows Mobile xml-file, but I just can't find a way to get to /data/data/com.android.providers.telephony/databases
What programm do I need to get to the sms database file on my Android phone? Yes, my phone is rooted.

  • 0

#5
patzek

patzek

    Newbie

  • Members
  • Pip
  • 43 posts
i used the adb command from the sdk to copy the file to the sdcard and then the normal usb-transfer to get it on my pc.

  • 0

#6
AndroidTim

AndroidTim

    Newbie

  • Members
  • Pip
  • 6 posts
I used some adb commands like:

adb pull mmssms.db /data/data/com.android.providers.telephony/databases /sdcard

can't get the job done... I'm no developer, I tried to extract this detail from the guide. I got as for as the above line... I feel stupid.
It would be very very usefull if you could write a little howto on pulling and pushing the database file. In the style they did for rooting.
You bet, you'd help a lot of people if you did this. :D

  • 0

#7
patzek

patzek

    Newbie

  • Members
  • Pip
  • 43 posts
use this commands:

adb shell
su
cd /data/data/com.android.providers.telephony/databases
cat mmssms.db > /sdcard/mmssms.db
exit
exit

now you have the database on your sdcard and can be transfered with normal usb transfer

to write it back from the sdcard do:

adb shell
su
cd /data/data/com.android.providers.telephony/databases
mv mmssms.db mmssms.db.old
cat /sdcard/mmssms.db > ./mmssms.db
chown radio.radio mmssms.db
chmod 660 mmssms.db
exit
exit


hope this helps

  • 0

#8
AndroidTim

AndroidTim

    Newbie

  • Members
  • Pip
  • 6 posts
So! That's something completely different as I did...
Thank you for your reply.

The routine hangs during copy...

After:
cat mmssms.db > /sdcard/mmssms.db
The system comes back with "cannot create /sdcard/mmssms.db: read only file system"

Do you have a solution? I seems I have to chmod something first?

  • 0

#9
patzek

patzek

    Newbie

  • Members
  • Pip
  • 43 posts
why should the sdcard mounted as read-only

can you post the output of mount?

adb shell
su
mount

  • 0

#10
AndroidTim

AndroidTim

    Newbie

  • Members
  • Pip
  • 6 posts
Here are the result of mount:

mount
rootfs / rootfs ro 0 0
tmpfs /dev tmpfs rw,mode=755 0 0
devpts /dev/pts devpts rw,mode=600 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
tmpfs /sqlite_stmt_journals tmpfs rw,size=4096k 0 0
/dev/block/mtdblock3 /system yaffs2 ro 0 0
/dev/block/mtdblock5 /data yaffs2 rw,nosuid,nodev 0 0
/dev/block/mtdblock4 /cahce yaffs2 rw,nosuid,nodev 0 0


All hocus pocus to me...

  • 0

#11
patzek

patzek

    Newbie

  • Members
  • Pip
  • 43 posts
there is no sdcard mounted, so there are two reasons possible...

1. no sdcard inserted

2. hero is attached to pc with usb transfer enabled because then the sdcard is unmounted, so first disable the usb mode, then you can copy the file to the sdcard and after this you can reenable the usb transfer mode

  • 0

#12
AndroidTim

AndroidTim

    Newbie

  • Members
  • Pip
  • 6 posts
You're right; my device was still usb connected.
It all worked right now. All my sms messages are now transported from my windows mobile device to my HTC Hero!

Thankyou Patzek :D

  • 0

#13
SKORPiO1975

SKORPiO1975

    Newbie

  • Members
  • Pip
  • 14 posts
  • Devices:G1

The Column "recipient_address" is Part from the Messagedatabase not from the XML File. So there is an error with your mmssms.db File. Have you selected the right one? Do you have a Hero? What kind of modification have you made to your telephone? Firmware Version?

You can also check your mmssms.db File with an SQLLite Explorer (there exists an Plugin for Firefox). The Column is Part of the Threadtable. Maybe you can take a look at this.


Thanks for this info. I have a Tmobile G1
Firmware 1.5
Baseband ver 62.33.20.08H_1.22.14.11
Kernel Version 2.6.27.00393-g6607056 san@sandroid #1
Build CRC1

Flashed w tmobile patched bin with root access. No other nods except previous downgrade to get root and now.. the rc1 :D

When I look at the .db file I see Tables(13) / threads (not thread) and recipient_ids... I will attach a screen grab...

thanks again for all help.

Posted Image

  • 0

#14
patzek

patzek

    Newbie

  • Members
  • Pip
  • 43 posts
The Messagedatabase from the Standard 1.5 Android Build looks a little bit different than the Hero one.
I try to add support for this kind of Database on afternoon.

  • 0

#15
giankap

giankap

    Newbie

  • Members
  • Pip
  • 6 posts
  • Devices:HTC Magic

The Messagedatabase from the Standard 1.5 Android Build looks a little bit different than the Hero one.
I try to add support for this kind of Database on afternoon.


Hallo patzek,
with the new version of your software I can now see messages from my Magic in data grid :D
When i try to write to the db, i get this message:

Cannot perform '=' operation on System.String and System.Int32

any idea?
thank you

  • 0

#16
patzek

patzek

    Newbie

  • Members
  • Pip
  • 43 posts

Hallo patzek,
with the new version of your software I can now see messages from my Magic in data grid :D
When i try to write to the db, i get this message:

Cannot perform '=' operation on System.String and System.Int32

any idea?
thank you


I've added some more Debug Informations to the new build. Maybe you can post the errormessage here.

  • 0

#17
giankap

giankap

    Newbie

  • Members
  • Pip
  • 6 posts
  • Devices:HTC Magic

I've added some more Debug Informations to the new build. Maybe you can post the errormessage here.


I try tu put the image here. In any case there is an attachment with the errormessage.


thank you

Attached Files


  • 0

#18
SKORPiO1975

SKORPiO1975

    Newbie

  • Members
  • Pip
  • 14 posts
  • Devices:G1

The Messagedatabase from the Standard 1.5 Android Build looks a little bit different than the Hero one.
I try to add support for this kind of Database on afternoon.


WOW patzek, I must admit :D you kick some serious a** ;) everything transferred fine and no errors. so your program works with G1 now :angry:

Although I have another lame question. Is it possible to merge transferred database into one thread?

What I have is my SMSes going back and forth with one person on my xml file. Android creates those threads between You and another person. When I transferred the .db it created "My" thread based on my phone number where only my SMSes are, and added other person's SMSes to existing thread that i had in my android phone. Now I have 2 threads, one "Me" with only my SMSes and "Other Person" thread which was merged. I was looking for a way to move "My" SMSes to another thread, but I don't think it is possible. Are there any managing tools for SMS database in android?

Thanks again for your time. You really have quick solutions for everything here ;)

Regards, Bart.

ps: what does "Messagetype" column do in your program?

Edited by SKORPiO1975, 26 August 2009 - 03:23 AM.

  • 0

#19
patzek

patzek

    Newbie

  • Members
  • Pip
  • 43 posts

I try tu put the image here. In any case there is an attachment with the errormessage.


thank you


New Release. Try it with this one.

  • 0

#20
patzek

patzek

    Newbie

  • Members
  • Pip
  • 43 posts

WOW patzek, I must admit :D you kick some serious a** ;) everything transferred fine and no errors. so your program works with G1 now :angry:

Although I have another lame question. Is it possible to merge transferred database into one thread?

What I have is my SMSes going back and forth with one person on my xml file. Android creates those threads between You and another person. When I transferred the .db it created "My" thread based on my phone number where only my SMSes are, and added other person's SMSes to existing thread that i had in my android phone. Now I have 2 threads, one "Me" with only my SMSes and "Other Person" thread which was merged. I was looking for a way to move "My" SMSes to another thread, but I don't think it is possible. Are there any managing tools for SMS database in android?

Thanks again for your time. You really have quick solutions for everything here ;)

Regards, Bart.

ps: what does "Messagetype" column do in your program?


Normaly my SMSImporter also link SMS Messages together like Android does this. I check this by comparing the Phonenumber from Sender/Receiver with the existing ones and when i find the right one then the message get attached to the existinig thread. The only reason that i can think what happens on your side that all of your Messages get an own thread is that the Numbers in your Messages are looking other then the Numbers in the Messages of the other Person (Country Code maybe??? )

Messagetype = 1 = Received Message
Messagetype = 2 = Sended Message

Edited by patzek, 03 September 2009 - 10:10 AM.

  • 0




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users