ALWAYS_SANDBOX_DISPLAY_APIS
ID modifica: 185004937
Stato predefinito: disattivato per tutte le app.
Se attivata, viene applicata la limitazione tramite sandbox dell'API Display a un pacchetto, indipendentemente dalla modalità windowing. Le API di visualizzazione forniranno sempre i limiti dell'app.
Per scoprire di più su questa modifica, consulta la sezione della pagina Modifiche al comportamento di Android 12 relativa ai
metodi di visualizzazione deprecati.
|
AUTOFILL_NON_TEXT_REQUIRES_ON_RECEIVE_CONTENT_LISTENER
ID modifica: 163400105
Stato predefinito: abilitato per le app destinate ad Android 12 (livello API 32) o versioni successive.
A partire da Android 12, la piattaforma può fornire suggerimenti non testuali (ad esempio immagini) utilizzando il framework di compilazione automatica avanzato (vedi i servizi di compilazione automatica). Affinché un'app sia in grado di gestire questi suggerimenti,
di solito deve implementare l'API OnReceiveContentListener .
Per semplificare l'adozione di questa API per le app che hanno implementato in precedenza l'API InputConnection.commitContent(InputContentInfo, int, Bundle) , riutilizzeremo l'API di riserva se OnReceiveContentListener non è ancora stata implementata dall'app. Questa API di riserva è abilitata solo su Android 12 (livello API 31). Questo ID modifica disattiva la riserva, pertanto le app che hanno come target Android 12 (livello API 32) e versioni successive devono implementare
l'API OnReceiveContentListener per accettare suggerimenti non testuali.
|
BLOCK_FLAG_SLIPPERY
ID modifica: 157929241
Stato predefinito: attivata per tutte le app.
Per le app eseguite su Android 12 (livello API 31), controlla se FLAG_SLIPPERY viene utilizzato in qualsiasi finestra nell'app. Prevediamo che questo flag venga probabilmente utilizzato solo dai componenti di sistema in quanto è un campo non supportato. In tal caso, le limitazioni saranno applicate.
|
BLOCK_GPS_STATUS_USAGE
ID modifica: 144027538
Stato predefinito: abilitato per le app destinate ad Android 12 (livello API 31) o versioni successive.
Per le app che hanno come target Android 12 (livello API 31) e versioni successive, l'utilizzo dell'API GpsStatus
deve essere sostituito con le API GnssStatus .
|
BLOCK_IMMUTABLE_PENDING_INTENTS
ID modifica: 171317480
Stato predefinito: abilitato per le app destinate ad Android 12 (livello API 31) o versioni successive.
Per le app che hanno come target Android 12 (livello API 31) e versioni successive, gli oggetti PendingIntent
immutabili che vengono trasmessi alle API di geolocalizzazione genereranno un IllegalArgumentException.
|
BLOCK_PENDING_INTENT_SYSTEM_API_USAGE
ID modifica: 169887240
Stato predefinito: abilitata per le app destinate ad Android 12 (livello API 31) o versioni successive.
Per le app che hanno come target Android 12 (livello API 31) e versioni successive, le API di sistema di LocationRequest non possono essere utilizzate con le richieste di posizione PendingIntent .
|
BLOCK_UNTRUSTED_TOUCHES
ID modifica: 158002302
Stato predefinito: attivata per tutte le app.
Per preservare la sicurezza del sistema e una buona esperienza utente, Android 12 impedisce alle app di consumare eventi touch in cui un overlay blocca l'app in modo non sicuro.
Per ulteriori informazioni su questa modifica, vedi Gli eventi tocco non attendibili sono bloccati.
|
CALL_ACTIVITY_RESULT_BEFORE_RESUME
ID modifica: 78294732
Stato predefinito: attivata per le app destinate ad Android 12 (livello API 32) o versioni successive.
Per le app che hanno come target Android 12 (livello API 32) e versioni successive, corregge il ciclo di vita del risultato dell'attività per garantire che un'attività riceva il risultato immediatamente prima della ripresa.
|
CAMERA_MIC_INDICATORS_NOT_PRESENT
ID modifica: 162547999
Stato predefinito: disattivato per tutte le app.
Indica che il dispositivo supporta gli indicatori della fotocamera e del microfono. Sarà false se
presente, perché il metodo CompatChanges#isChangeEnabled
restituisce true se l'ID modifica non è presente.
|
CANNOT_INSTALL_WITH_BAD_PERMISSION_GROUPS
ID modifica: 146211400
Stato predefinito: abilitato per le app destinate ad Android 12 (livello API 32) o versioni successive.
Per le app che hanno come target Android 12 (livello API 32) e versioni successive, il gestore di pacchetti non installerà un pacchetto se sono presenti gruppi di autorizzazioni con formato non corretto.
I gruppi di autorizzazioni devono essere condivisi soltanto tra app che condividono un certificato. Se un'autorizzazione appartiene a un gruppo, è necessario definire anche questo gruppo.
|
CHANGE_ID_AUTH_STATE_DENIED
ID modifica: 181350407
Stato predefinito: abilitata per le app destinate ad Android 12 (livello API 31) o versioni successive.
Per le app client che hanno come target Android 12 (livello API 31) e versioni successive, viene generato un SecurityException quando si trovano in stato di autorizzazione negata e tentano di inviare un messaggio a una nanoapp.
|
CHANGE_ID_SAMPLING_RATE_SENSORS_PERMISSION
ID modifica: 136069189
Stato predefinito: abilitato per le app destinate ad Android 12 (livello API 31) o versioni successive.
Per le app che hanno come target Android 12 (livello API 31) e versioni successive, viene generato un SecurityException quando non hanno
l'autorizzazione HIGH_SAMPLING_RATE_SENSORS , vengono eseguiti in modalità di debug e richiedono frequenze di campionamento superiori a 200 Hz.
|
DELIVER_HISTORICAL_LOCATIONS
ID modifica: 73144566
Stato predefinito: abilitata per le app destinate ad Android 12 (livello API 31) o versioni successive.
Per le app che hanno come target Android 12 (livello API 31) e versioni successive, in alcune circostanze i client di località potrebbero ricevere le posizioni storiche (prima del momento attuale).
|
DISPLAY_INFO_NR_ADVANCED_SUPPORTED
ID modifica: 181658987
Stato predefinito: abilitata per le app destinate ad Android 12 (livello API 31) o versioni successive.
Per le app che hanno come target Android 12 (livello API 31) e versioni successive, fornisce la compatibilità con le versioni precedenti per le modifiche in TelephonyDisplayInfo .
|
DISPLAY_MODE_RETURNS_PHYSICAL_REFRESH_RATE
ID modifica: 170503758
Stato predefinito: attivata per le app destinate ad Android 12 (livello API 31) o versioni successive.
Per le app che hanno come target Android 12 (livello API 31) e versioni successive, la piattaforma potrebbe limitare la frequenza fotogrammi di un'app a un divisore della frequenza di aggiornamento se è più preferibile (ad esempio, se l'app chiama a Surface.setFrameRate(float, int) ).
Le app subiranno Choreographer.postFrameCallback(Choreographer.FrameCallback)
callback e contropressione alla frequenza fotogrammi limitata. Le app usano Display.getRefreshRate() e
Display.Mode.getRefreshRate() per sapere qual è la frequenza di aggiornamento del display.
Display.getRefreshRate() restituirà sempre la frequenza fotogrammi dell'applicazione e non la frequenza di aggiornamento del display fisico per consentire
alle app di eseguire correttamente il pacing dei frame. Display.Mode.getRefreshRate() restituirà la frequenza fotogrammi dell'app se compilata in una release precedente e, a partire da Android 12 (livello API 31), restituirà la frequenza di aggiornamento del display fisico.
|
DOWNSCALED
ID modifica: 168419799
Stato predefinito: disattivato per tutte le app.
Questa modifica è il fulcro di tutte le modifiche al downscaling del buffer per app. L'abilitazione di questa modifica consente di applicare i seguenti fattori di scalabilità:
Quando questa modifica viene abilitata per un pacchetto di app, l'app viene ridimensionata
forzatamente al fattore di scalabilità abilitato più alto. Ad esempio, viene utilizzato l'80% se sono abilitati sia l'80% che il 70% (DOWNSCALE_80 e DOWNSCALE_70 ).
|
DOWNSCALE_30
ID modifica: 189970040
Stato predefinito: disattivato per tutte le app.
Quando è abilitato anche DOWNSCALED , l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia in esecuzione su un display con il 30% della risoluzione verticale e orizzontale del display reale.
|
DOWNSCALE_35
ID modifica: 189969749
Stato predefinito: disattivato per tutte le app.
Quando è abilitato anche DOWNSCALED , l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia in esecuzione su un display con il 35% della risoluzione verticale e orizzontale del display reale.
|
DOWNSCALE_40
ID modifica: 189970038
Stato predefinito: disattivato per tutte le app.
Quando è abilitato anche DOWNSCALED , l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia in esecuzione su un display con il 40% della risoluzione verticale e orizzontale del display reale.
|
DOWNSCALE_45
ID modifica: 189969782
Stato predefinito: disattivato per tutte le app.
Quando è abilitato anche DOWNSCALED , l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia in esecuzione su un display con il 45% della risoluzione verticale e orizzontale del display reale.
|
DOWNSCALE_50
ID modifica: 176926741
Stato predefinito: disattivato per tutte le app.
Quando è abilitato anche DOWNSCALED , l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia in esecuzione su un display con il 50% della risoluzione verticale e orizzontale del display reale.
|
DOWNSCALE_55
ID modifica: 189970036
Stato predefinito: disattivato per tutte le app.
Quando è abilitato anche DOWNSCALED , l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia in esecuzione su un display con il 55% della risoluzione verticale e orizzontale del display reale.
|
DOWNSCALE_60
ID modifica: 176926771
Stato predefinito: disattivato per tutte le app.
Quando è abilitato anche DOWNSCALED , l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia in esecuzione su un display con il 60% della risoluzione verticale e orizzontale del display reale.
|
DOWNSCALE_65
ID modifica: 189969744
Stato predefinito: disattivato per tutte le app.
Quando è abilitato anche DOWNSCALED , l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia in esecuzione su un display con il 65% della risoluzione verticale e orizzontale del display reale.
|
DOWNSCALE_70
ID modifica: 176926829
Stato predefinito: disattivato per tutte le app.
Quando è abilitato anche DOWNSCALED , l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia in esecuzione su un display con il 70% della risoluzione verticale e orizzontale del display reale.
|
DOWNSCALE_75
ID modifica: 189969779
Stato predefinito: disattivato per tutte le app.
Quando è abilitato anche DOWNSCALED , l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia in esecuzione su un display con il 75% della risoluzione verticale e orizzontale del display reale.
|
DOWNSCALE_80
ID modifica: 176926753
Stato predefinito: disattivato per tutte le app.
Quando è abilitato anche DOWNSCALED , l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia in esecuzione su un display con l'80% della risoluzione verticale e orizzontale del display reale.
|
DOWNSCALE_85
ID modifica: 189969734
Stato predefinito: disattivato per tutte le app.
Quando è abilitato anche DOWNSCALED , l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia in esecuzione su un display con l'85% della risoluzione verticale e orizzontale del display reale.
|
DOWNSCALE_90
ID modifica: 182811243
Stato predefinito: disattivato per tutte le app.
Quando è abilitato anche DOWNSCALED , l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia in esecuzione su un display con il 90% della risoluzione verticale e orizzontale del display reale.
|
DO_NOT_DOWNSCALE_TO_1080P_ON_TV
ID modifica: 157629738
Stato predefinito: abilitato per le app destinate ad Android 12 (livello API 31) o versioni successive.
Le app Android TV che hanno come target Android 12 (livello API 31) e versioni successive dovrebbero gestire qualsiasi dimensione delle finestre, incluse quelle superiori a 1080p.
Le app che hanno come target versioni precedenti di Android non si aspettano di ricevere Windows con risoluzione superiore a 1080p, quindi il loro Windows viene ridotto a 1080p quando necessario.
|
DROP_CLOSE_SYSTEM_DIALOGS
ID modifica: 174664120
Stato predefinito: attivata per tutte le app.
Per migliorare il controllo da parte degli utenti durante l'interazione con le app e il sistema, l'azione intent ACTION_CLOSE_SYSTEM_DIALOGS
è deprecata a partire da Android 12.
Per scoprire di più su questa modifica, vedi Le app non possono chiudere le finestre di dialogo di sistema.
|
ENABLE_CHECKS_FOR_PRIVATE_FILES
ID modifica: 172100307
Stato predefinito: abilitata per le app destinate ad Android 12 (livello API 31) o versioni successive.
Le app che hanno come target Android 12 (livello API 31) e versioni successive non possono inserire o aggiornare file privati utilizzando il fornitore di contenuti multimediali.
|
ENABLE_DEFERRED_SCAN
ID modifica: 180326732
Stato predefinito: abilitato per le app destinate ad Android 12 (livello API 31) o versioni successive.
Attiva questa opzione per posticipare la scansione attivata come parte di MediaProvider#update() .
|
ENABLE_GET_CALL_STATE_PERMISSION_PROTECTION
ID modifica: 157233955
Stato predefinito: abilitata per le app destinate ad Android 12 (livello API 31) o versioni successive.
Per le app che hanno come target Android 12 (livello API 31) e versioni successive, abilita la protezione READ_PHONE_STATE sulle API che eseguono query e inviano notifiche sullo stato delle chiamate, ad esempio TelecomManager#getCallState , TelephonyManager.getCallStateForSubscription() e TelephonyCallback.CallStateListener .
|
ENABLE_GET_PHONE_ACCOUNT_PERMISSION_PROTECTION
ID modifica: 183407956
Stato predefinito: abilitata per le app destinate ad Android 12 (livello API 31) o versioni successive.
Per le app che hanno come target Android 12 (livello API 31) e versioni successive, abilita le protezioni READ_PHONE_NUMBERS o READ_PRIVILEGED_PHONE_STATE
su getPhoneAccount(PhoneAccountHandle) .
|
ENABLE_INCLUDE_ALL_VOLUMES
ID modifica: 182734110
Stato predefinito: attivata per le app destinate ad Android 12 (livello API 31) o versioni successive.
Abilita questa opzione per includere le righe di file di database da un volume smontato di recente in MediaProvider#query .
|
ENABLE_RAW_MANAGE_EXTERNAL_STORAGE_ACCESS
ID modifica: 178209446
Stato predefinito: abilitato per le app destinate ad Android 12 (livello API 31) o versioni successive.
Abilita questa opzione per consentire alle app che dispongono dell'autorizzazione Manifest.permission.MANAGE_EXTERNAL_STORAGE di richiedere l'accesso non elaborato all'unità di archiviazione esterna.
|
ENFORCE_MINIMUM_WINDOW_ON_INEXACT_ALARMS
ID modifica: 185199076
Stato predefinito: attivata per le app destinate ad Android 12 (livello API 31) o versioni successive.
Per le app che hanno come target Android 12 (livello API 31) e versioni successive, tutte le sveglie inesatte devono avere una dimensione minima della finestra, prevista nell'ordine di pochi minuti. In pratica, tutti i rilevatori che richiedono finestre più piccole sono uguali agli allarmi esatti e devono utilizzare le API corrispondenti fornite, ad esempio setExact(int, long, PendingIntent) . Per un allarme inesatto con finestre più brevi, le finestre verranno allungate dal sistema.
|
ENFORCE_NATIVE_SHARED_LIBRARY_DEPENDENCIES
ID modifica: 142191088
Stato predefinito: abilitato per le app destinate ad Android 12 (livello API 31) o versioni successive.
Le app che hanno come target Android 12 (livello API 31) e versioni successive devono dichiarare le dipendenze dalle librerie condivise native pubbliche definite dal produttore del dispositivo utilizzando il tag uses-native-library nella relativa AndroidManifest.xml . Se una delle dipendenze non può essere soddisfatta (ad esempio se non ne esiste una), il gestore di pacchetti non installerà l'app. La dipendenza può essere specificata come facoltativa utilizzando l'attributo android:required nel tag. In tal caso, la mancata soddisfazione della dipendenza non interromperà
l'installazione.
Dopo l'installazione, a un'app vengono fornite soltanto le librerie condivise native specificate nel file manifest dell'app. La chiamata a dlopen su
una libreria condivisa nativa che non appare nel file manifest dell'app avrà esito negativo anche se in realtà esiste sul dispositivo.
|
ENFORCE_STRICT_QUERY_BUILDER
ID modifica: 143231523
Stato predefinito: disattivato per tutte le app.
Se l'opzione è abilitata, la SQLiteQueryBuilder
verifica tutte le selezioni di query CalendarProvider2 a fronte di argomenti dannosi.
|
FGS_BG_START_RESTRICTION_CHANGE_ID
ID modifica: 170668199
Stato predefinito: abilitata per le app destinate ad Android 12 (livello API 31) o versioni successive.
Per le app che hanno come target Android 12 (livello API 31) e versioni successive, limita quando le app possono avviare i servizi in primo piano durante l'esecuzione in background.
|
FGS_START_EXCEPTION_CHANGE_ID
ID modifica: 174041399
Stato predefinito: abilitato per le app destinate ad Android 12 (livello API 31) o versioni successive.
Per le app che hanno come target Android 12 (livello API 31) e versioni successive, consente al sistema di generare un IllegalStateException se un'app tenta di avviare un servizio in primo piano durante l'esecuzione in background.
|
ID modifica: 156215187
Stato predefinito: disattivato per tutte le app.
Per le app che hanno come target Android 12 (livello API 31) e versioni successive, completa la InputConnection quando il dispositivo diventerà
non-interactive .
Se attivata dall'attuale input method , la connessione di input attuale sarà
finished ogni volta che i dispositivi diventano non interattivi.
Se questa impostazione non è attiva, la connessione di input attuale verrà disattivata automaticamente quando i dispositivi non diventano interattivi e viene inviata una coppia
onFinishInput() e
onStartInput()
quando il dispositivo diventa di nuovo interattivo.
|
FORCE_DISABLE_HEVC_SUPPORT
ID modifica: 174227820
Stato predefinito: disattivato per tutte le app.
Forza la disattivazione del supporto della funzionalità multimediale HEVC da parte di un'app.
Le app devono dichiarare le funzionalità multimediali supportate nel file manifest, ma questo flag può essere utilizzato per forzare un'app a non supportare HEVC, forzando la transcodifica durante l'accesso ai contenuti multimediali codificati in HEVC. L'impostazione di questo flag sostituisce qualsiasi impostazione predefinita a livello di sistema operativo per le app. È disabilitata per impostazione predefinita, il che significa che le impostazioni predefinite del sistema operativo hanno la precedenza. Se sono abilitati sia questo flag sia
FORCE_ENABLE_HEVC_SUPPORT , il sistema operativo ignora
entrambi i flag.
|
FORCE_ENABLE_HEVC_SUPPORT
ID modifica: 174228127
Stato predefinito: disattivato per tutte le app.
Forza l'attivazione di un'app per supportare le funzionalità multimediali HEVC. Le app devono dichiarare le funzionalità multimediali supportate nel file manifest, ma è possibile usare questo flag per forzare un'app a supportare HEVC, evitando così la transcodifica quando si accede ai contenuti multimediali codificati in HEVC. L'impostazione di questo flag sostituisce qualsiasi impostazione predefinita a livello di sistema operativo per le app. È disabilitata per impostazione predefinita, il che significa che le impostazioni predefinite del sistema operativo avranno la precedenza. Se questo flag e FORCE_DISABLE_HEVC_SUPPORT sono abilitati, il sistema operativo ignora entrambi i flag.
|
FORCE_NON_RESIZE_APP
ID modifica: 181136395
Stato predefinito: disattivato per tutte le app.
Forza la non ridimensionabile dei pacchetti a cui è applicata.
|
FORCE_RESIZE_APP
ID modifica: 174042936
Stato predefinito: disattivato per tutte le app.
Forza il ridimensionabile dei pacchetti a cui viene applicato. Consentiamo il ridimensionamento solo in modalità windowing a schermo intero, ma non forzando l'app in modalità multi-windowing ridimensionabile.
|
HIDE_PROP_ICUBINARY_DATA_PATH
ID modifica: 171979766
Stato predefinito: abilitata per le app destinate ad Android 12 (livello API 31) o versioni successive.
Per le app che hanno come target Android 12 (livello API 31) e versioni successive, l'accesso alla proprietà android.icu.impl.ICUBinary.dataPath viene rimosso.
|
IGNORE_ALLOW_BACKUP_IN_D2D
ID modifica: 183147249
Stato predefinito: abilitato per le app destinate ad Android 12 (livello API 31) o versioni successive.
Per le app che hanno come target Android 12 (livello API 31) e versioni successive, il criterio android:allowBackup viene ignorato per le app durante le migrazioni da dispositivo a dispositivo (D2D).
|
IGNORE_FULL_BACKUP_CONTENT_IN_D2D
ID modifica: 180523564
Stato predefinito: attivata per le app destinate ad Android 12 (livello API 31) o versioni successive.
Per le app che hanno come target Android 12 (livello API 31) e versioni successive, le regole di inclusione ed esclusione specificate utilizzando android:fullBackupContent vengono ignorate durante i trasferimenti da dispositivo a dispositivo (D2D).
|
IME_AUTOFILL_DEFAULT_SUPPORTED_LOCALES_IS_EMPTY
ID modifica: 169273070
Stato predefinito: abilitato per le app destinate ad Android 12 (livello API 31) o versioni successive.
Per le app che hanno come target Android 12 (livello API 31) e versioni successive, ora getSupportedLocales() restituisce
un elenco di impostazioni internazionali vuoto, se non è configurato, al posto delle impostazioni internazionali di sistema predefinite.
|
IS_BACKUP_SERVICE_ACTIVE_ENFORCE_PERMISSION_IN_SERVICE
ID modifica: 158482162
Stato predefinito: abilitato per le app destinate ad Android 12 (livello API 31) o versioni successive.
Per le app che hanno come target Android 12 (livello API 31) e versioni successive, l'autorizzazione BACKUP necessaria per
isBackupServiceActive() viene applicata sul lato servizio anziché sul lato client in BackupManager .
|
KEYSTORE_OPERATION_CREATION_MAY_FAIL
ID modifica: 169897160
Stato predefinito: disattivato per tutte le app.
Se abilitata, la creazione delle operazioni dell'archivio chiavi potrebbe non riuscire in base alla nuova strategia di eliminazione. L'archivio chiavi funzionava partendo dal presupposto che la creazione delle operazioni crittografiche ha sempre esito positivo.
Tuttavia, il backend KeyMint ha solo un numero limitato di slot operazioni.
Per mantenere l'aspetto di slot operativi "infiniti", il daemon dell'archivio chiavi eliminerà le operazioni utilizzate meno di recente se non ci sono slot operativi disponibili. Di conseguenza, le operazioni efficaci potrebbero essere terminate prematuramente. In questo modo AndroidKeystore è dotato di funzionalità DoS (denial of service) e livelock involontario. Ad esempio, se più app si sono attivate contemporaneamente a causa di ottimizzazioni della gestione dell'alimentazione e hanno tentato di eseguire operazioni di crittografia, iniziano a terminare le operazioni a vicenda senza fare alcun progresso.
Per uscire dai blocchi live e scoraggiare i tentativi DoS, abbiamo modificato la strategia di eliminazione in modo che preferisca i client che usano brevemente slot operativi. Di conseguenza, le singole operazioni che non rimangono inattive per più di 5 secondi si concludono quasi sempre senza ostacoli dalla strategia di eliminazione. Esistono ancora alcune operazioni relative alla crittografia del file system che possono comprometterle, ma si tratta di casi estremamente rari. Come effetto collaterale di questa nuova operazione di strategia di eliminazione, la creazione ora può non riuscire se il client ha una potenza di eliminazione inferiore rispetto a tutte le operazioni esistenti.
Strategia di riduzione: per trovare un candidato adatto, calcoliamo il malus per il chiamante e per ogni operazione esistente. Il malus è l'opposto della potenza di potatura (caller) o della resistenza di potatura (operazione esistente). Affinché il chiamante possa eliminare un'operazione, deve trovare un'operazione con un "malus" maggiore del proprio. Per maggiori dettagli sulla strategia di eliminazione, consulta l'implementazione di operation.rs .
Su Android 11 (livello API 30) e versioni precedenti, KeyStore2 esegue il polling del daemon dell'archivio chiavi per trovare uno slot operativo senza costi. Per le app che hanno come target Android 11 (livello API 30) e versioni precedenti, l'inizializzazione degli oggetti di crittografia e firma va sempre a buon fine, ma potrebbe essere necessario più tempo per eseguire un'operazione. Tutte le versioni di Android beneficiano di una programmazione degli slot operativa più equo e di una migliore possibilità di concludere un'operazione.
|
LOCK_DOWN_CLOSE_SYSTEM_DIALOGS
ID modifica: 174664365
Stato predefinito: abilitata per le app destinate ad Android 12 (livello API 31) o versioni successive.
Per le app che hanno come target Android 12 (livello API 31) e versioni successive, non è possibile inviare Intent.ACTION_CLOSE_SYSTEM_DIALOGS a meno che l'app non disponga anche dell'autorizzazione android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS . Tieni presente che questa è la versione più restrittiva di #DROP_CLOSE_SYSTEM_DIALOGS
che prevede che l'app smetta di inviare l'intent Intent.ACTION_CLOSE_SYSTEM_DIALOGS dopo l'avvio dell'app che ha come target Android 12 (livello API 31) o versioni successive.
|
LOCK_DOWN_COLLAPSE_STATUS_BAR
ID modifica: 173031413
Stato predefinito: abilitato per le app destinate ad Android 12 (livello API 31) o versioni successive.
Per le app che hanno come target Android 12 (livello API 31) e versioni successive, per motivi di sicurezza è necessaria l'autorizzazione Manifest.permission.STATUS_BAR per comprimere i riquadri della barra di stato. Questo asset veniva sfruttato dal malware per impedire all’utente di accedere a notifiche critiche.
|
LOW_POWER_EXCEPTIONS
ID modifica: 168936375
Stato predefinito: abilitata per le app destinate ad Android 12 (livello API 31) o versioni successive.
Per le app che hanno come target Android 12 (livello API 31) e versioni successive, tutti gli oggetti LocationRequest contrassegnati come eccezioni a bassa potenza generano eccezioni se il chiamante non dispone dell'autorizzazione LOCATION_HARDWARE , anziché eliminare automaticamente la parte a basso consumo della richiesta.
|
MISSING_EXPORTED_FLAG
ID modifica: 150232615
Stato predefinito: abilitato per le app destinate ad Android 12 (livello API 31) o versioni successive.
Per le app che hanno come target Android 12 (livello API 31) e versioni successive, è necessario specificare un valore esplicito per l'attributo
android:exported ogni volta che viene definito un filtro per intent.
Per scoprire di più su questa modifica, consulta Esportazione più sicura dei componenti.
|
NATIVE_HEAP_POINTER_TAGGING_APP_ZYGOTE
ID modifica: 207557677
Stato predefinito: abilitato per le app destinate ad Android 12 (livello API 32) o versioni successive.
Per le app che hanno come target Android 12 (livello API 32) e versioni successive, le allocazioni dell'heap native nel processo AppZygote e i relativi discendenti utilizzano un tag diverso da zero nel byte più significativo.
Per scoprire di più su questa modifica, consulta la sezione Indicatori taggati.
|
NATIVE_HEAP_ZERO_INIT
ID modifica: 178038272
Stato predefinito: disattivato per tutte le app.
Consente di attivare l'inizializzazione automatica dello zero delle allocazioni della memoria heap native.
|
NATIVE_MEMTAG_ASYNC
ID modifica: 135772972
Stato predefinito: disattivato per tutte le app.
Attiva il controllo del tag di memoria asincrono (ASYNC) in questa procedura. Questo flag riguarda solo l'hardware che supporta la funzionalità MTE (Memory Tagging Extension) ARM.
|
NATIVE_MEMTAG_SYNC
ID modifica: 177438394
Stato predefinito: disattivato per tutte le app.
Consente di attivare il controllo del tag di memoria sincrono (SYNC) in questo processo. Questo flag riguarda solo l'hardware che supporta la funzionalità MTE (Memory Tagging Extension) ARM. Se sono attive sia NATIVE_MEMTAG_ASYNC sia questa opzione, questa ha la precedenza e la funzionalità MTE è attiva in modalità SINCRONIZZAZIONE.
|
NEVER_SANDBOX_DISPLAY_APIS
ID modifica: 184838306
Stato predefinito: disattivato per tutte le app.
Se attivata, questa opzione impedisce l'applicazione della sandbox dell'API Display a un'attività letterbox o SCM. Le API di visualizzazione continueranno a fornire limiti di area di visualizzazione.
Per scoprire di più su questa modifica, consulta la sezione della pagina Modifiche al comportamento di Android 12 relativa ai
metodi di visualizzazione deprecati.
|
NOTIFICATION_CANCELLATION_REASONS
ID modifica: 175319604
Stato predefinito: abilitata per le app destinate ad Android 12 (livello API 31) o versioni successive.
Consente ai listener delle notifiche di comprendere i nuovi motivi di annullamento più specifici.
|
NOTIFICATION_TRAMPOLINE_BLOCK
ID modifica: 167676448
Stato predefinito: abilitata per le app destinate ad Android 12 (livello API 31) o versioni successive.
Per migliorare le prestazioni e l'esperienza utente delle app, le app destinate ad Android 12 non possono utilizzare servizi o ricevitori di trasmissioni
come trampolini di notifica.
Per saperne di più su questa modifica, consulta Impossibile creare trampolini di notifica da servizi o ricevitori di trasmissioni.
|
NULL_TELEPHONY_THROW_NO_CB
ID modifica: 182185642
Stato predefinito: abilitato per le app destinate ad Android 12 (livello API 31) o versioni successive.
Utilizzato per verificare se la versione dell'SDK target per il processo corrente è Android 12 (livello API 31) o versioni successive.
Si applica ai seguenti metodi:
|
OVERRIDE_MIN_ASPECT_RATIO
ID modifica: 174042980
Stato predefinito: disattivato per tutte le app.
Questa modifica è l'elemento di controllo di tutte le modifiche che forzano un determinato formato minimo. L'attivazione di questa modifica consente di applicare le seguenti
proporzioni minime:
Quando questa modifica è abilitata per un pacchetto dell'app, le proporzioni minime indicate nel file manifest dell'app vengono sostituite dalle proporzioni abilitate più grandi, a meno che il valore manifest dell'app non sia superiore.
|
OVERRIDE_MIN_ASPECT_RATIO_LARGE
ID modifica: 180326787
Stato predefinito: disattivato per tutte le app.
Quando è abilitato anche OVERRIDE_MIN_ASPECT_RATIO , se abiliti questa modifica per un pacchetto le proporzioni minime dell'attività vengono impostate su un valore grande come definito da OVERRIDE_MIN_ASPECT_RATIO_LARGE_VALUE .
|
OVERRIDE_MIN_ASPECT_RATIO_MEDIUM
ID modifica: 180326845
Stato predefinito: disattivato per tutte le app.
Quando è abilitato anche OVERRIDE_MIN_ASPECT_RATIO , se abiliti questa modifica per un pacchetto le proporzioni minime dell'attività vengono impostate su un valore medio come definito da OVERRIDE_MIN_ASPECT_RATIO_MEDIUM_VALUE .
|
PENDING_INTENT_EXPLICIT_MUTABILITY_REQUIRED
ID modifica: 160794467
Stato predefinito: abilitata per le app destinate ad Android 12 (livello API 31) o versioni successive.
Per le app che hanno come target Android 12 (livello API 31) e versioni successive, devi specificare la modificabilità di ogni oggetto PendingIntent
creato dall'app. Questo requisito aggiuntivo migliora la sicurezza della tua app.
Per scoprire di più su questa modifica, consulta Gli intent in attesa devono dichiarare la mutabilità.
|
PREVENT_SETTING_PASSWORD_QUALITY_ON_PARENT
ID modifica: 165573442
Stato predefinito: attivata per le app destinate ad Android 12 (livello API 31) o versioni successive.
Le app di amministrazione che hanno come target Android 12 (livello API 31) e versioni successive non possono utilizzare DevicePolicyManager.setPasswordQuality(ComponentName, int)
per impostare la qualità della password per l'istanza DevicePolicyManager ottenuta chiamando DevicePolicyManager.getParentProfileInstance(ComponentName) .
Deve usare invece DevicePolicyManager.setRequiredPasswordComplexity(int) per impostare requisiti per le password meno granulari a livello di dispositivo.
|
RATE_LIMIT_TOASTS
ID modifica: 174840628
Stato predefinito: non è possibile attivare/disattivare questa modifica. Viene registrato solo dal framework di compatibilità.
Abilita la limitazione di frequenza del numero di chiamate
Toast.show()
per evitare di sovraccaricare l'utente con troppi toast in
un periodo di tempo limitato. Qualsiasi tentativo di mostrare più toast rispetto a quello consentito in un determinato periodo di tempo comporterà l'eliminazione del toast.
|
REQUIRE_EXACT_ALARM_PERMISSION
ID modifica: 171306433
Stato predefinito: abilitato per le app destinate ad Android 12 (livello API 31) o versioni successive.
Per le app che hanno come target Android 12 (livello API 31) e versioni successive, le app devono disporre dell'autorizzazione Manifest.permission.SCHEDULE_EXACT_ALARM
per poter utilizzare qualsiasi API per l'impostazione di sveglie esatte, ad esempio setExactAndAllowWhileIdle(int, long, PendingIntent)
e setAlarmClock(AlarmClockInfo, PendingIntent) .
|
REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_ACTIVE_DATA_SUB_ID
ID modifica: 182478738
Stato predefinito: abilitato per le app destinate ad Android 12 (livello API 31) o versioni successive.
Per le app che hanno come target Android 12 (livello API 31) e versioni successive, le app devono avere l'autorizzazione Manifest.permission.READ_PHONE_STATE per
chiamare TelephonyCallback.ActiveDataSubscriptionIdListener .
|
REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_CELL_INFO
ID modifica: 184323934
Stato predefinito: abilitato per le app destinate ad Android 12 (livello API 31) o versioni successive.
Per le app che hanno come target Android 12 (livello API 31) e versioni successive, le app devono avere l'autorizzazione Manifest.permission.READ_PHONE_STATE per
chiamare TelephonyCallback.CellInfoListener .
|
REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_DISPLAY_INFO
ID modifica: 183164979
Stato predefinito: abilitato per le app destinate ad Android 12 (livello API 31) o versioni successive.
Per le app che hanno come target Android 12 (livello API 31) e versioni successive, le app devono avere l'autorizzazione Manifest.permission.READ_PHONE_STATE per
chiamare TelephonyCallback.DisplayInfoListener .
|
RESTRICT_ADB_BACKUP
ID modifica: 171032338
Stato predefinito: abilitato per le app destinate ad Android 12 (livello API 31) o versioni successive.
Per le app che hanno come target Android 12 (livello API 31) e versioni successive, adb backup viene attivato automaticamente per le app eseguite come debug (android:debuggable impostato su true ) e non disponibile per altre app.
|
RESTRICT_DOMAINS
ID modifica: 175408749
Stato predefinito: attivata per le app destinate ad Android 12 (livello API 31) o versioni successive.
Per le app che hanno come target Android 12 (livello API 31) e versioni successive, è obbligatoria la forma aggiornata dell'API di verifica dei link dell'app. Questo requisito significa che un'app deve dichiarare i domini all'interno di un filtro per intent che
include quanto segue:
android:autoVerify="true"
Intent.ACTION_VIEW
Intent.CATEGORY_BROWSABLE
Intet.CATEGORY_DEFAULT
- Solo
IntentFilter.SCHEME_HTTP e/o IntentFilter.SCHEME_HTTPS , senza altri schemi
Nelle versioni precedenti di Android, Intent.CATEGORY_BROWSABLE non era un requisito, erano consentiti altri schemi e l'impostazione di autoVerify su true in qualsiasi filtro per intent
presupporrebbe implicitamente che tutti i filtri per intent fossero impostati su autoVerify="true" .
|
SECURITY_EXCEPTION_ON_INVALID_ATTRIBUTION_TAG_CHANGE
ID modifica: 151105954
Stato predefinito: attivata per le app destinate ad Android 12 (livello API 31) o versioni successive.
Per le app che hanno come target Android 12 (livello API 31) e versioni successive, applica che tutti i attributionTags inviati a noteOp(String, int, String) ,
noteProxyOp(String, String)
e startOp(String, int, String)
siano definiti nel file manifest del pacchetto, specificato come parametro dei metodi.
Per abilitare questa modifica, questa modifica deve essere abilitata sia per il pacchetto che chiama noteOp(String, int, String)
sia per il pacchetto specificato come parametro del metodo.
|
SELINUX_LATEST_CHANGES
ID modifica: 143539591
Stato predefinito: abilitato per le app destinate ad Android 12 (livello API 31) o versioni successive.
Per le app destinate ad Android 12 (livello API 31) e versioni successive, vengono attivate le modifiche più recenti di SELinux. La disattivazione di questa modifica per un'app che ha come target Android 12 (livello API 31) o versioni successive non è automatica. Non ha alcun effetto sulle app che utilizzano un ID utente condiviso.
|
SETTINGS_API_V2
ID modifica: 178111421
Stato predefinito: attivata per tutte le app.
La nuova API User preferred per la verifica dei domini contrassegnati come autoVerify=true nei filtri per intent di AndroidManifest.xml non è ancora implementata nell'anteprima attuale della piattaforma. Per il momento è possibile visualizzare l'anteprima delle nuove modifiche alle preferenze utente abilitando questo ChangeId e utilizzando i comandi
adb shell pm set-app-links-user-selection e simili.
|
USE_SHORT_FGS_USAGE_INTERACTION_TIME
ID modifica: 183972877
Stato predefinito: abilitato per le app destinate ad Android 12 (livello API 31) o versioni successive.
Per le app che hanno come target Android 12 (livello API 31) e versioni successive, determina se utilizzare un timeout più breve prima di elevare il bucket in standby a ACTIVE quando le app avviano un servizio in primo piano.
|