Comment identifier correctement les appareils Android

Bonjour à tous! Si vous avez besoin de créer un identifiant d'appareil Android unique et stable à utiliser dans une application, vous avez probablement remarqué le chaos qui est présent dans la documentation et dans les réponses sur stackoverflow . Voyons comment relever ce défi en 2020. Dans ce bref aperçu, où obtenir un identifiant qui résiste à la réinstallation de votre application et quelles difficultés peuvent se présenter à l'avenir. Aller!





Pourquoi une identification est nécessaire

Récemment, les discussions sur la confidentialité des données des utilisateurs ont pris de l'ampleur. Cela est peut-être dû aux revenus croissants des géants de la publicité. Peut-être que sous ces discussions se cache l'inquiétude concernant les monopoles qui identifient les utilisateurs et leurs appareils. Ainsi, Apple, qui lutte contre la surveillance et limite tous les développeurs à utiliser IDFA, ne le limite pas à lui-même . Ce qui peut être dit avec certitude: le processus d'identification d'un utilisateur d'une application pour les développeurs est devenu plus compliqué. 





Les tâches basées sur l'identification comprennent l'analyse des retours, la personnalisation du contenu et de la publicité et la prévention de la fraude. 





Parmi ces derniers, il existe plusieurs problèmes urgents:





  1. Comptes partagés dans les services avec abonnements payants ou contenu payant unique. Imaginez tout ce que les services comme Netflix ou Coursera perdent du fait que les utilisateurs ont un compte pour plusieurs personnes.





  2. Vol de compte.





Les deux problèmes entraînent une perte de revenus ou une perte de réputation. La fiabilité de leur solution dépend directement de la fiabilité de l'identification des appareils. 





Méthodes d'identification de base

  1. Utilisation d'identifiants matériels

Méthode obsolète et actuellement non viable. Google a bien réussi à en bloquer l'accès car ils ne changent pas même après une réinitialisation d'usine. Parmi ces identifiants:





  1. IMEI





  2. IMSI





  3. Adresse Mac





. , , Play Market. , . . 





, : , .





  1. UUID

cookie: , ( SharedPreferences), . , cookie — . . 





- . — . (app instance ID). 





  1. ,

ANDROID_ID. , , , . Android 8.0 , — . ( ).





, . ( ) Google . , , ( 2020 ). 





:





<uses-permission android:name="com.google.android.providers.gsf.permission.READGSERVICES" />
      
      



:





public static String getGsfAndroidId(Context context) {
  String params[] = { ID_KEY };
  Cursor c = context.getContentResolver().query(URI, null, null, params,
                                                null);
  if (!c.moveToFirst() || c.getColumnCount() < 2)
    return null;
  try {
    return Long.toHexString(Long.parseLong(c.getString(1)));
  } catch (NumberFormatException e) {
    return null;
  }
}
      
      



: ContentProvider-a, Google. , Google . , .. Play Market.





. , , Xposed, ANDROID_ID, GSF_ID. , . 





L'application Device ID Changer en conjonction avec Xposed vous permet de modifier presque n'importe quel identifiant.  Version gratuite - uniquement ANDROID_ID
Device ID Changer Xposed . — ANDROID_ID
  1. (fingerprint)  

device-fingerprinting , . — FingerprintJS — 13 GitHub. cookie. 





( ).





- Android-. 4 . Samsung? , 600 . Samsung , Android 9? 150 . , ? , , . 25000 . , . — , . , . 





Android, , , , , . 





, . .





— (   ANDROID_ID), . — . 





— . , . , , . — , . 





, .





, . ? ,   . .  





— . , . , . , android-arsenal, , .





  1. Android-device-identification — . , , , ANDROID_ID, Build. , 2 , . , , .





  2. Fingerprint-android — . 2 : getDeviceId getFingerprint. GSF_ID ANDROID_ID, , , . getFingerprint — . . , Kotlin, .





, ,   ANDROID_ID GSF_ID. Android, , .





Si vous avez des questions ou des ajouts, partagez-les dans les commentaires. Et c'est tout, merci pour votre attention! 












All Articles