On l’a vite oublié à l’usage, mais tout bon téléphone Android (et même Cyanogen) demande un compte google/gmail, qui sera utilisé pour stocker le carnet d’adresse.
Voici les étapes que j’ai suivies pour m’en débarrasser et utiliser mon serveur OwnCloud.
Version Courte
- Avoir un OwnCloud, sécurisé en HTTPS (en l’occurrence sur un serveur à moi)
- Synchroniser le téléphone et le OwnCloud
- Exporter le carnet d’adresse Google vers OwnCloud
- Supprimer le carnet d’adresse Google du téléphone
- Vérifier la synchro
Version longue
C’est parti !
1 – Avoir un OwnCloud sécurisé en HTTPS
J’ai déjà un OwnCloud installé sur un serveur.
J’ai initialement tenté d’utiliser un certificat auto-signé, mais cela coinçait pour l’étape suivante de synchronisation téléphone/owncloud. J’ai donc pris un certificat SSL chez un prestataire. C’est le certificat X509 de chez TBS-Internet (77€/an) que j’ai choisi.
Ça fait un peu cher pour une utilisation perso, mais au moins ce point est carré et réglé.
J’ai pris soin de laisser de côté StartSSL qui semble récupérer les données personnelles contre un certificat gratuit. Par ailleurs, les gens de TBS sont des co-listiers d’OVH, donc quand on voit discuter son créateur depuis 10 ans sur les listes serveur, ça donne confiance !
2 – Synchroniser le téléphone Android / Cyanogen avec OwnCloud
La synchro en tant que telle se fait grâ à l’application DAVdroid (DAVdroid est disponible sur F-Droid). Le principe est de créer deux comptes DAVdroid : l’un pour le carnet d’adresse (« carddav »), l’autre pour le calendrier (« caldav »).
Pour cela il faudra saisir l’adresse du serveur OwnCloud et surtout le chemin carddav ou caldav. La page configuration de DAVdroid explique cela très bien. En gros, il faut retenir :
- URL pour les Contacts (CardDAV) :
https://mon-serveur-owncloud/eventuel-dossier-owncloud/remote.php/carddav/
- URL pour l’Agenda (CalDAV) :
https://mon-serveur-owncloud/eventuel-dossier-owncloud/remote.php/caldav/
De là, tous les nouveaux contacts et nouveaux rendez-vous seront associés à OwnCloud (et plus au compte gmail).
Il reste toutefois tous les contacts existants, qui sont encore associés au compte gmail.
3 – Exporter le carnet d’adresse Google vers OwnCloud
Depuis le téléphone, se rendre dans l’application carnet d’adresse, faire un « bouton de droite », choisir Importer/Exporter puis Exporter vers la mémoire. Jusque là, rien de bien sorcier, un fichier .vcf
est stocké sur la sdcard du téléphone.
Transférer le fichier .vcf
sur un ordinateur (par mail, ou grâce à l’application Primitiv FTP sur F-Droid).
Pour importer les adresses dans OwnCloud 7, il faut se rendre dans l’application Contacts, puis en bas à droite, cliquer sur la petite icône « engrenage » et lancer l’import.
La documentation OwnCloud de l’application Contact est plutôt claire.
C’est maintenant que ça devient intéressant. Si comme moi, votre carnet d’adresse est par plusieurs téléphones / versions d’Android successifs, certains contacts ont beaucoup d’informations variées dans le fichier .vcf
sur (Champs en X- ou champs en NOTE).
De tels champs « exotiques » provoquent une erreur à l’import des contact dans OwnCloud :
Invalid VObject, line 9 did not follow the icalendar/vcard format
J’ai trouvé la solution dans le billet ownCloud and Baikal: Problems Loading ICS Files into Calendar. L’idée est de modifier une option directement dans un fichier de OwnCloud. Il s’agit du fichier 3rdparty/sabre/vobject/lib/Sabre/VObject/Reader.php
. À la ligne 44, il faut remplacer
static function read($data, $options = 0)
par
static function read($data, $options = 2)
Et là l’import se déroule correctement (les champs exotiques sont ignorés).
Au passage, même la photo du contact est conservée, cool !
Ressources complémentaires en anglais
5 – Vérifier la synchro
Depuis le téléphone, aller dans les Paramètres, section Comptes.
De là, sélectionner le compte Davdroid, puis vérifier que la synchronisation est activée (l’icône doit être verte).