ID d'appareil immuables

Dans Android 6 et versions ultérieures, les fournisseurs de services Wi-Fi et les analyseurs de paquets ont été empêchés de récupérer l'adresse MAC d'usine d'un appareil via la pile Wi-Fi à partir de requêtes réseau. À partir d'Android 10, des restrictions supplémentaires sont en place pour limiter l'accès aux identifiants d'appareil (ID) aux applications avec le niveau d'autorisation privilégié . 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 identifiants des appareils

Les ID 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'appareils sont accessibles par

  • L'application SMS par défaut.
  • Applications avec à la fois l'autorisation READ_PRIVILEGED_PHONE_STATE dans la classe Manifest.permission et la liste blanche dans le fichier privapp-permission.xml . Ceux-ci doivent également être chargés dans le répertoire priv-app .
  • Applications avec privilèges d'opérateur tels que définis dans Privilèges d'opérateur UICC .
  • Un propriétaire d'appareil ou un propriétaire de profil avec l'autorisation READ_PHONE_STATE accordée dans la classe Manifest.permission . (L'ajout à la liste d'autorisation n'est pas obligatoire.)

Accès privilégié aux forfaits

Un package doit être privilégié pour accéder aux ID de périphérique. Il doit avoir l'autorisation READ_PRIVILEGED_PHONE_STATE dans la classe Manifest.permission et être sur liste blanche dans le fichier privapp-permission.xml . Pour plus d'informations sur le processus de liste d'autorisation, consultez Liste d'autorisation des autorisations privilégiées .

Pour plus d'informations sur l'obtention d'un ID unique pour un package non privilégié , reportez-vous à Cas d'utilisation courants et à l'identifiant approprié à utiliser .

ID d'appareil restreints et adresses MAC aléatoires

Pour restreindre davantage les identifiants d'appareils, tous les appareils sous Android 10 transmettent par défaut des adresses MAC aléatoires pour les demandes de sonde et 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 cas d'utilisation Wi-Fi Direct. Il doit rester caché des API accessibles au public qui ne sont pas des applications privilégiées. Les applications privilégiées qui nécessitent le retour de l'adresse MAC d'usine doivent disposer de l'autorisation LOCAL_MAC_ADDRESS .

Les utilisateurs ont la possibilité de conserver l'adresse MAC aléatoire par défaut attribuée à chaque SSID. L'option est visible sous Confidentialité dans Paramètres > Détails du réseau . Pour en savoir plus sur l'obtention d'une adresse MAC aléatoire, consultez Adresses MAC aléatoires .

Screen shows if device ID uses a randomized MAC address for privacy
Figure 1. L'adresse MAC s'affiche comme randomisée sous Confidentialité dans les détails du 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 tentent d'accéder aux ID d'appareils, les informations suivantes sont renvoyées :

  • Applications ciblant Android 10
  • Applications ciblant Android 9 ou version antérieure
    • S'ils disposent de l'autorisation READ_PHONE_STATE , une réponse null ou des données d'espace réservé sont renvoyées.
    • Si ce n'est pas le cas, les API d'ID d'appareil lèvent une SecurityException qui contient le nom de la méthode appelée et une indication que l'application appelante ne répond pas aux exigences pour accéder à l'ID demandé.

Pour plus d'informations sur les ID d'appareil immuables, consultez Identifiants d'appareil non réinitialisables et meilleures pratiques pour les identifiants uniques .

Essai

Les applications doivent être empêchées d'accéder au numéro de série de l'appareil et, le cas échéant, à l'IMEI / MEID, au numéro de série de la carte SIM et à l'identifiant de l'abonné. Les applications autorisées à accéder à ces identifiants doivent également répondre à l'un des critères répertoriés sous Qui peut accéder aux identifiants des appareils .