ID d'appareil immuables

Dans Android 6 et versions ultérieures, les fournisseurs de services Wi-Fi et les analyseurs de paquets n'ont pas été autorisés à récupérer l'adresse MAC d'usine d'un appareil via la pile Wi-Fi à partir des requêtes réseau. A partir de Android 10, des restrictions supplémentaires sont en place limitent l' accès aux identifiants de périphériques (ID) pour des applications avec le privilège niveau d'autorisation . Cela protège les identifiants d'appareil tels que

  • numéros de téléphonie IMEI, MEID, ESN et IMSI.
  • build, SIM ou numéros de série USB.

Qui peut accéder aux ID d'appareil

Les identifiants d'appareil sont limités sur tous les appareils Android 10, même si les applications ciblent Android 9 ou une version antérieure. Les identifiants d'appareil sont accessibles par

Accès aux forfaits privilégiés

Un package doit être privilégié pour accéder aux ID de périphérique. Il doit avoir READ_PRIVILEGED_PHONE_STATE permission dans la Manifest.permission classe, et être dans la liste blanche privapp-permission.xml fichier. Pour plus d' informations sur le processus whitelist, voir la permission Privileged Whitelisting .

Pour plus d' informations sur l' obtention d' un identifiant unique pour un ensemble non privilégié, se référer à des cas d'utilisation communs et l'identificateur approprié à utiliser .

ID d'appareil restreints et adresses MAC aléatoires

Pour restreindre davantage les ID d'appareil, tous les appareils sur Android 10 transmettent des adresses MAC aléatoires par défaut pour la sonde et les requêtes associées, et doivent avoir une adresse MAC aléatoire différente pour chaque SSID. N'utilisez pas l'adresse MAC d'usine de l'appareil en mode client, point d'accès logiciel (AP) ou dans les cas d'utilisation Wi-Fi Direct. Il doit rester caché des API accessibles au public qui ne sont pas des applications privilégiées. Qui nécessitent des applications privilégiées de l'adresse MAC usine à retourner doivent avoir LOCAL_MAC_ADDRESS permission.

Les utilisateurs ont la possibilité de garder l'adresse MAC aléatoire par défaut qui est attribué à chaque SSID. L'option est visible dans la vie privée dans Paramètres> détails réseau. Pour en savoir plus sur l' obtention d' une adresse MAC aléatoire voir adresses MAC Randomized .

Screen shows if device ID uses a randomized MAC address for privacy
Figure 1. adresse MAC montre que randomisées sous confidentialité dans les détails réseau

Applications qui appellent les API d'ID d'appareil

Les applications qui appellent les API d'ID d'appareil doivent répondre aux exigences d'Android 10. Sinon, lorsqu'ils essaient d'accéder aux ID d'appareil, les éléments suivants sont renvoyés :

  • Applications ciblant Android 10
    • Une SecurityException est lancée à partir des API d'identification de l' appareil.
  • Applications ciblant Android 9 ou version antérieure
    • Si elles ont la READ_PHONE_STATE permission, que ce soit une null réponse ou les données d'espace réservé est retourné.
    • Si elles ne le font pas, les API d'identification de l' appareil jettent une SecurityException qui contient le nom de la méthode appelée, et une indication que l'application appelant ne satisfait pas aux conditions requises pour accéder à l'ID demandé.

Pour en savoir plus sur les ID de périphériques immuables voir identifiants de périphériques Nonresettable et les meilleures pratiques pour les identificateurs uniques .

Essai

Les applications doivent être empêchées d'accéder au dispositif numéro de série et, le cas échéant, IMEI / MEID, numéro de série SIM, et l' ID d'abonné. Apps avec l' autorisation d'accéder à ces ID doivent également répondre à l' un des critères énumérés sous Qui peut accéder à des ID de périphériques .