ID dispositivo immutabili

In Android 6 e versioni successive, è stato vietato ai fornitori di servizi Wi-Fi e agli analizzatori di pacchetti di recuperare l'indirizzo MAC di fabbrica di un dispositivo tramite lo stack Wi-Fi dalle richieste di rete. A partire da Android 10, sono in vigore ulteriori limitazioni che impediscono alle app con il livello di autorizzazione con privilegi di accedere agli identificatori (ID) del dispositivo. In questo modo vengono protetti gli ID dispositivo, ad esempio

  • numeri IMEI, MEID, ESN e IMSI di telefonia.
  • build, SIM o numeri di serie USB.

Chi può accedere agli ID dispositivo

Gli ID dispositivo sono limitati su tutti i dispositivi Android 10, anche se le app hanno come target Android 9 o versioni precedenti. Gli ID dispositivo sono accessibili da:

Accesso ai pacchetti con privilegi

Un pacchetto deve avere i privilegi per accedere agli ID dispositivo. Deve disporre dell'autorizzazione READ_PRIVILEGED_PHONE_STATE nella classe Manifest.permission ed essere presente nella lista consentita del file privapp-permission.xml. Per informazioni sulla procedura di inserimento nella lista consentita, vedi Inserimento nella lista consentita per le autorizzazioni con privilegio.

Per informazioni su come ottenere un ID univoco per un pacchetto senza privilegi, consulta Casi d'uso comuni e l'identificatore appropriato da utilizzare.

ID dispositivo con limitazioni e indirizzi MAC casuali

Per limitare ulteriormente gli ID dispositivo, tutti i dispositivi con Android 10 trasmettono per impostazione predefinita indirizzi MAC casuali sia per le richieste di probe sia per quelle associate e devono avere un indirizzo MAC casuale diverso per ogni SSID. Non utilizzare l'indirizzo MAC di fabbrica del dispositivo in modalità client, come punto di accesso (AP) software o nei casi d'uso Wi-Fi Direct. Deve rimanere nascosta alle API accessibili pubblicamente che non sono app con privilegi. Le app con privilegi che richiedono di restituire l'indirizzo MAC di fabbrica devono disporre dell'autorizzazione LOCAL_MAC_ADDRESS.

Gli utenti hanno la possibilità di mantenere l'indirizzo MAC casuale predefinito assegnato a ogni SSID. L'opzione è visibile in Privacy in Impostazioni > Dettagli rete. Per scoprire come ottenere un indirizzo MAC casuale, consulta Indirizzi MAC casuali.

Lo schermo mostra se l'ID dispositivo utilizza un indirizzo MAC casuale per motivi di privacy

Figura 1. L'indirizzo MAC viene visualizzato come casuale in Privacy in Dettagli rete.

App che richiamano API di ID dispositivo

Le app che richiamano le API ID dispositivo devono soddisfare i requisiti di Android 10. In caso contrario, quando tenta di accedere agli ID dispositivo viene restituito quanto segue:

  • App che hanno come target Android 10
  • App che hanno come target Android 9 o versioni precedenti
    • Se dispone dell'autorizzazione READ_PHONE_STATE, viene restituita una risposta null o i dati del segnaposto.
    • In caso contrario, le API ID dispositivo generano un SecurityException che contiene il nome del metodo chiamato e un'indicazione che l'app chiamante non soddisfa i requisiti per accedere all'ID richiesto.

Per saperne di più sugli ID dispositivo immutabili, consulta la sezione Identificatori di dispositivi non reimpostabili e le best practice per gli identificatori univoci.

Test

È obbligatorio impedire alle app di accedere al numero di serie del dispositivo e, ove applicabile, all'IMEI o al MEID, al numero di serie della SIM e all'ID abbonato. Le app con permission di accesso a questi ID devono soddisfare anche uno dei criteri elencati in Chi può accedere agli ID dispositivo.