Parce que Google l'a désactivé pour des raisons de marketing (pour promouvoir Google+ peut-être ?). Techniquement, il n'est simplement pas dans la liste blanche dans un fichier xml pour permettre la synchronisation.
Según niranjanthilak Voici son explication détaillée :
-
L'application Facebook ne peut synchroniser ses contacts avec les contacts (par le biais de ContactsProvider) que si elle figure sur une liste blanche (ou, en d'autres termes, si elle bénéficie d'un ensemble de permissions élargies) dans le ROM.
-
Pour cela, vous devez modifier le fichier ContactsProvider.apk et ajouter la permission de liste blanche.
-
Pour modifier le fichier ContactsProvider.apk (qui se trouve dans le répertoire /system/app/), vous aurez besoin de smali (un assembleur/désassembleur pour le format dex d'Android).
-
Après avoir désassemblé ContactsProvider.apk à l'aide de smali, allez dans le dossier res/values/ (dans la source désassemblée), et ajoutez le fichier (arrays.xml) contenant le contenu suivant :
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<string-array name="unrestricted_packages">
<item>com.facebook.katana</item>
</string-array>
</resources>
- Le com.facebook.katana est l'application de facebook. Ainsi, après avoir ajouté le fichier arrays.xml au dossier /res/values/, assemblez le ContactsProvider en utilisant le smali dans un fichier apk non signé.
- Or, depuis ICS, Android 4.0, Google a désactivé la possibilité d'établir une liste blanche des applications en mode natif, et a donc masqué certains champs de la base de données.
- Ajoutez la colonne nommée
is_restricted
à la table raw_contacts dans contacts2.db ( stocké dans /data/data/com.Android.providers.contacts/database/ ) - Si vous avez activé sqlite (avec busybox) dans votre noyau, vous pouvez utiliser cette commande pour modifier la base de données et ajouter le champ nécessaire en l'exécutant sous ADB Shell :
sqlite3 /data/data/com.android.providers.contacts/databases/contacts2.db
'ALTER TABLE raw_contacts ADD COLUMN is_restricted VARCHAR';
- Après l'ajout de la colonne, tous les comptes facebook ajoutés seront dotés d'une invite de synchronisation et apparaîtront dans les contacts.