ID d'appareil immuables

Dans Android 6 et versions ultérieures, les fournisseurs de services Wi-Fi et les analyseurs de paquets ne peuvent plus récupérer l'adresse MAC d'usine d'un appareil via la pile Wi-Fi à partir des 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 disposant du 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.
  • numéros de série de construction, SIM ou USB.

Qui peut accéder aux identifiants des appareils

Les identifiants d'appareil sont restreints sur tous les appareils Android 10, même si les applications ciblent Android 9 ou une version antérieure. Les identifiants des 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 autorisée 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 UICC Carrier Privileges .
  • Propriétaire d'un appareil ou propriétaire d'un profil avec l'autorisation READ_PHONE_STATE accordée dans la classe Manifest.permission . (La mise sur liste verte n'est pas obligatoire.)

Accès aux forfaits privilégiés

Un package doit être privilégié pour accéder aux ID d’appareil. Il doit disposer de l'autorisation READ_PRIVILEGED_PHONE_STATE dans la classe Manifest.permission et figurer sur la liste autorisée dans le fichier privapp-permission.xml . Pour plus d'informations sur le processus de liste d'autorisation, consultez Liste d'autorisation d'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 ID d'appareil, tous les appareils sous Android 10 transmettent par défaut des adresses MAC aléatoires 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, dans les cas d'utilisation de point d'accès logiciel (AP) ou de Wi-Fi Direct. Il doit rester caché aux API accessibles au public qui ne sont pas des applications privilégiées. Les applications privilégiées qui nécessitent le renvoi de l’adresse MAC d’usine doivent disposer de l’autorisation LOCAL_MAC_ADDRESS .

Les utilisateurs ont la possibilité de conserver l'adresse MAC randomisée 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 apparaît comme randomisée sous Confidentialité dans les détails du réseau

Applications qui appellent des 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'appareil, les éléments suivants sont renvoyés :

  • 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 en savoir plus sur les ID d'appareil immuables, consultez Identifiants d'appareil non réinitialisables et bonnes pratiques pour les identifiants uniques .

Essai

Il faut empêcher les applications d'accéder au numéro de série de l'appareil et, le cas échéant, au numéro IMEI/MEID, au numéro de série 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 .