It seems it does work fine when device is rooted.
Receiving "Selected address book has changed from null" when trying to sync iCloud address book
I have purchased and configured DAVDroid to sync my iCloud contacts. However, I noticed that the contacts kept on disappearing, and then would re-appear after a sync. I enabled external logging and found this:
2016-12-07 17:06:58 1 [syncadapter.ContactsSyncManager] Selected address book has changed from null to https://p24-contacts.icloud.com/9115265/carddavhome/card/, deleting all local contacts
Does anyone know how to resolve this, so the contacts sync properly?
Did you ever unselect the addressbook in the DAVdroid account manually?
This message appears when the addressbook URL has changed (either from one URL to another, or from
nullto another URL, or from an URL to
null), i.e. the address book URL of the last sync is not the same as the current one. It normally only happens when you select another (or no) address book in the respective DAVdroid account.
If this message keeps appearing, it seems that the sync state (where the last addressbook URL is stored) can’t be saved correctly.
This could be a problem in your Android address book storage, or the synchronization never completes successfully.