(In reply to comment #1) > We need to implement the incremental *updating* of the phone book, too. > Otherwise, if the complete download always takes longer than the car is in > use, then future updates even to text-only contacts will never get mirrored > in the car. I implemented incremental photo download for *all* syncs (not just the first one, as originally proposed). Details are in these commit messages (actual commits not in master yet): commit 7f47fa336570467a4dd60ada5da41ad302335c36 Author: Patrick Ohly <firstname.lastname@example.org> Date: Fri Jul 5 10:39:21 2013 +0200 PBAP: incremental sync (FDO #59551) Depending on the SYNCEVOLUTION_PBAP_SYNC env variable, syncing reads all properties as configured ("all"), excludes photos ("text") or first text, then all ("incremental"). When excluding photos, only known properties get requested. This avoids issues with phones which reject the request when enabling properties via the bit flags. This also helps with "databaseFormat=^PHOTO". When excluding photos, the vcard merge script as used by EDS ensures that existing photo data is preserved. This only works during a slow sync (merge script not called otherwise, okay for PBAP because it always syncs in slow sync) and EDS (other backends do not use the merge script, okay at the moment because PIM Manager is hard-coded to use EDS). The PBAP backend must be aware of the PBAP sync mode and request a second cycle, which again must be a slow sync. This only works because the sync engine is aware of the special mode and sets a new session variable "keepPhotoData". It would be better to have the PBAP backend send CTCap with PHOTO marked as not supported for text-only syncs and enabled when sending PHOTO data, but that is considerably harder to implement (CTCap cannot be adjusted at runtime). The original goal of overlapping syncing with download has not been achieved yet. It turned out that all item IDs get requested before syncing starts, which thus depends on downloading all items in the current implementation. Can be fixed by making up IDs based on the number of existing items (see GetSize() in PBAP) and then downloading later when the data is needed. commit e9cf7c22fc5c680ee5f1f1d9d0b970933c7098e3 Author: Patrick Ohly <email@example.com> Date: Fri Jul 5 13:42:12 2013 +0200 PIM: use incremental sync for PBAP by default (FDO #59551) When doing a PBAP sync, PIM manager asks the D-Bus sync helper to set its SYNCEVOLUTION_PBAP_SYNC to "incremental". If the env variable is already set, it does not get overwritten, which allows overriding this default.