Results 1 to 5 of 5
  1.    #1  
    Hi all, I've spent the weekend getting all my contacts from Evolution address book onto my Palm Pre Plus with webOS 1.4.5. I was not interested in using any proxy services (like Google), and having a working sync in the future, I didn't go for the quickest hack or anything like that.

    So, I've started writing up some infrastructure to read/write address book directly in PalmDatabase.db3, and to read data from evolution-data-server using Python (and it proved to be more interesting than I hoped :)).

    WARNING: this is all very early phase code, and use only at your own risk. I recommend quite some tech-savviness, and even some Python knowledge for real comfort. You will also need to know how to transfer your PalmDatabase.db3 around. Do note that there is a high risk of borking your phone, so do keep backups!

    Plans for the future are to enable proper syncing for more than just address book, and the source code is going to live on https://launchpad.net/preevo/.

    But, at the moment, here's what you can do:
    — read your Palm address book in a saner way from within Python
    — easily add stuff to your Palm address book through Python
    — read your Evolution address book
    — create contacts inside PalmDatabase.db3 based on your Evolution contacts

    I've used it to finally populate my phone with my contacts from Evolution. The way to use the code right now is to:
    1. fetch the code using "bzr lp:preevo" and then "cd preevo"
    2. copy over your PalmDatabase.db3 to ./testdata/ (utility script testdata/refresh.sh, which hard-codes my Pre IP on my home network, fetches the latest one from the phone, and keeps dated backups at the same time)
    3. run ./merger.py to add all contacts from Evolution to your Palm Pre "local" (Palm Pre Profile) address book (WARNING: this doesn't detect identical contacts yet!)
    4. put thus modified testdata/PalmDatabase.db3 back on your phone (utility script testdata/send.sh, again hard-coded for my IP address, can help with that)

    I've found out that you don't have to restart Luna if you transfer PalmDatabase.db3 around, and phone book gets updated as soon as you restart it.

    There are still many things this is missing (like support for URLs or locations for contacts, or actual copying of IM contacts), but I think it's a worthy start. And what's else, it provides a nice(r) API for dealing with contacts data already.

    I'd be happy if anyone decides to try this out, and I'd appreciate any feedback. I still do not promise to be very responsive, but I'm definitely interested in moving this quite a bit forward. Please keep this thread for user-oriented questions (i.e. does this work with 2.0? I have no idea, so if somebody tries it out, let us know :), since I'll probably start a separate thread in the development forum for development.

    Cheers!
    Last edited by Danilo; 02/21/2011 at 04:14 PM. Reason: typo
  2. tdo
    tdo is offline
    tdo's Avatar
    Posts
    11 Posts
    #2  
    congrats!
  3.    #3  
    A word of warning: this still doesn't work properly.

    Problems I noted are that SMSes from someone in your contact list don't show up, and when you receive a call, you get no identification for the person.
  4. #4  
    keep in mind that the structure changes and there is no single repository file like palmdatabase.db3 in webOS 2.0 and beyond.
  5.    #5  
    Thanks, I've seen that yesterday (just upgraded). Impostah is a useful tool to look into the new DB structure from the device (or the emulator), but considering it's a pure Berkeley DB (living in /var/db), it kinda gets messier. The structure is similar, but I'm only starting to figure it out (so far, I can see that \x04 is used as a "row" delimiter, and null-byte for field/value split).

    As such, I'll be pushing the branch for 1.4.5 off to the side, and will be concentrating on the bdb stuff. Not likely to have time to dig into it in the next few weeks.

Tags for this Thread

Posting Permissions