15.09.2016 15:49

Syncing B2710 with syncevolution

I wanted to synchronize my Samsung Xcovex 271 (B2710) with Linux PC to have a backup. This phone only allows to use terrible Samsung Kies or SyncML via internet. Running Samsung Kies was not an option here.This requires me to run my own SyncML server.

SyncML server

This is as simple as installing syncevolution

dnf install syncevolution

And following this howto for SyncML server https://syncevolution.org/wiki/http-server-howto

  1. http://syncevolution.org/documentation/installation Install SyncEvolution, version 1.2 or greater.1 See the http://syncevolution.org/documentation/installation documentation for general installation instructions.2 On MeeGo 1.2, SyncEvolution 1.2 is already installed, so only the HTTP server needs to be installed. To do this, go to the http://help.meego.com/netbook/applications/applications-panelApplications’ panel and launch ‘Manage Apps’. Type ‘syncevolution-http-server’ in the search field at the top left, and then click the ‘Find’ button. Once the search has finished, click the checkbox next to the ‘SyncEvolution HTTP SyncML server’ package, and then click the ‘Apply’ button at the bottom right to install the package.
  2. To start the HTTP server, on port 9000, run: syncevo-http-server http://localhost:9000/syncevolution & The port and path (‘syncevolution’ in this case) can be replaced with alternative values.
  3. Setup a client to connect to the server, using the synchronization URI: http://${host}:${port}/syncevolution where you should replace ‘${host}’ with the host or IP address of the server, ‘${port}’ with the port and ‘syncevolution’ with the path that you chose earlier.
  4. Start the sync process from the client now. The process will fail, so look in the output from the SyncEvolution HTTP server for the string: [ERROR] no configuration found for deviceID XYZ123 where ‘XYZ123’ will be a string unique to the client.
  5. Store the device ID in a shell variable: deviceID=XYZ123 and do the same for a peer name (this can be any name that you like): peer=myPeerName
  6. Configure the server, by running the following commands:

    # Choose a directory where SyncEvolution will
    # store the PIM data, using its internal file backend.
    # To store in some other backend, like Evolution,
    # you'll have to use different "type" and "evolutionsource"
    # values in the commands below.

    # All sources are disabled by default.
    # The URI is reset here because it can be used to rename the
    # data source (not necessary when configuring the client, so
    # that it uses the source names as URIs).
    syncevolution --configure \
      --template default \
      --sync-property syncURL= \
      --sync-property peerIsClient=1 \
      --sync-property remoteDeviceId=${deviceID} \
      --sync-property username=${username} \
      --sync-property password=${password} \
      --source-property uri= \
      --source-property sync=none \

    # Remove the "--source-property type" lines to use the Evolution backends.
    syncevolution --configure \
      --source-property type=file:text/vcard:3.0 \
      --source-property evolutionsource=file://${datapath}/addressbook \
      ${peer} addressbook
    syncevolution --configure \
      --source-property type=file:text/calendar:2.0 \
      --source-property evolutionsource=file://${datapath}/calendar \
      ${peer} calendar
    syncevolution --configure \
      --source-property type=file:text/calendar:2.0 \
      --source-property evolutionsource=file://${datapath}/todo \
      ${peer} todo
    syncevolution --configure \
      --source-property type=file:text/plain:1.0 \
      --source-property evolutionsource=file://${datapath}/memo \
      ${peer} memo
    syncevolution --configure \
      --source-property type=virtual:text/calendar:2.0 \
      --source-property evolutionsource=calendar,todo \
      ${peer} calendar+todo

    # Enable the sources the client is meant to have access to.
    # The real sync mode is chosen by the client; all that matters
    # here is that sync != disabled.
    syncevolution --configure \
      --source-property sync=two-way \
      ${peer} addressbook calendar todo memo

    # If your client needs a combined database for events
    # and tasks, then instead enable calendar+todo. Enabling
    # calendar or task is not necessary. In such a
    # configuration the client cannot access the calendar
    # and todo sources directly.
    syncevolution --configure \
      --source-property sync=two-way \
      ${peer} addressbook calendar+todo
  7. Start synchronization with the client again. If desired, the individual synchronization databases can be accessed by changing the sync URI to add either 'addressbook', 'calendar', 'todo' or 'memo'. For clients which only support a combined storage of events and tasks (not the case for SyncEvolution itself as client), use 'calendar+todo' for the URI. The server still stores events and tasks separately. If the client does not allow configuring the URIs, then it is possible to set aliases on the server side via the ‘uri’ property in the commands above.

I have to do some port forwarding setup to reach the syncevolution server from internet.

B2710 side

On B2710 side it is needed to go into


Create the sync profile, activate sync categories for Contacts, Schedule, Tasks, Memo.

For contacts set Remote contacts to "addressbook", for schedule Remote calendar to "calendar", for Tasks Remote task to "calendar+todo", for Memo Remote memo to "memo".

The Sync server needs to be set to your URL.

Email comment