I managed to get iCloud Contact Sync working on Android devices, this should work for every single CardDav compatible device. 

On Android, install a CardDav app, this one is great and free.

iCloud
  1. Add an account in CardDav
  2. For Server name enter https://contacts.icloud.com
  3. Make sure SSL is checked
  4. For username enter your iCloud username (example [email protected]) and password enter your iCloud password.
  5. Press Ok, wait a few seconds for it to confirm


And voilla, your iCloud contacts now sync with your Android device, it may take a few minutes for them to show up.

I hope this helps

Update: You may also wish to enable two-way sync with iCloud, I've enabled this and have had no issues.