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:
- L'app per SMS predefinita.
- App con l'autorizzazione
READ_PRIVILEGED_PHONE_STATE
nella classeManifest.permission
e nella lista consentita nel fileprivapp-permission.xml
. Inoltre, devono essere caricati nella directorypriv-app
. - App con privilegi dell'operatore come definiti in Privilegi dell'operatore UICC.
- Un proprietario del dispositivo o del profilo con autorizzazione
READ_PHONE_STATE
concessa nel gruppoManifest.permission
. (l'inclusione nella lista consentita non è obbligatoria).
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.

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
SecurityException
viene generato dalle API ID dispositivo.- App che hanno come target Android 9 o versioni precedenti
- Se dispone dell'autorizzazione
READ_PHONE_STATE
, viene restituita una rispostanull
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.