ALWAYS_SANDBOX_DISPLAY_APIS
ID modifica: 185004937
Stato predefinito: disattivato per tutte le app.
Se attivata, applica la sandbox dell'API Display a un pacchetto
indipendentemente dalla modalità windowing. Le API Display forniranno sempre
i limiti dell'app.
Per scoprire di più su questa modifica, consulta la sezione su Android 12
la pagina delle modifiche al comportamento degli utenti
Visualizza i metodi che sono stati ritirati.
|
AUTOFILL_NON_TEXT_REQUIRES_ON_RECEIVE_CONTENT_LISTENER
ID modifica: 163400105
Stato predefinito: abilitato per le app che hanno come target Android 12 (livello API 32) o versioni successive.
A partire da Android 12, la piattaforma può fornire suggerimenti non di testo (ad esempio immagini) utilizzando il framework della compilazione automatica migliorata (vedi servizi di compilazione automatica). Affinché un'app possa gestire questi suggerimenti,
in genere deve implementare l'API OnReceiveContentListener .
Per semplificare l'adozione di questa API per le app che hanno già implementato l'API
InputConnection.commitContent(InputContentInfo, int, Bundle)
, la riutilizziamo come opzione di riserva se OnReceiveContentListener non è ancora implementata dall'app. Questa opzione di riserva è attivata solo su
Android 12 (livello API 31). Questo ID modifica disattiva il fallback, pertanto le app che hanno come target Android 12 (livello API 32) e versioni successive devono implementare l'API
OnReceiveContentListener per accettare suggerimenti non di testo.
|
BLOCK_FLAG_SLIPPERY
Modifica ID: 157929241
Stato predefinito: attiva per tutte le app.
Per le app eseguite su Android 12 (livello API 31), controlla se
FLAG_SLIPPERY
viene utilizzato con qualsiasi finestra dell'app. Ci aspettiamo che questo flag sia probabilmente utilizzato solo dai componenti del sistema
campo non supportato. In questo caso, verrà limitato.
|
BLOCK_GPS_STATUS_USAGE
Modifica ID: 144027538
Stato predefinito: attivato 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, tutto l'utilizzo dell'API GpsStatus
deve essere sostituito con le API GnssStatus .
|
BLOCK_IMMUTABLE_PENDING_INTENTS
Modifica ID: 171317480
Stato predefinito: attivato 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, gli oggetti PendingIntent immutabili passati alle API di geolocalizzazione genereranno un IllegalArgumentException.
|
BLOCK_PENDING_INTENT_SYSTEM_API_USAGE
ID modifica: 169887240
Stato predefinito: abilitato per le app che hanno come target 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 LocationRequest non possono essere utilizzate con le richieste di accesso alla posizione PendingIntent .
|
BLOCK_UNTRUSTED_TOUCHES
Modifica ID: 158002302
Stato predefinito: attiva per tutte le app.
Per preservare la sicurezza del sistema e un'esperienza utente positiva, Android 12 impedisce alle app di utilizzare eventi tocco
quando un overlay blocca l'app in modo non sicuro.
Per scoprire di più su questa modifica, vedi Gli eventi di tocco non attendibili sono bloccati.
|
CALL_ACTIVITY_RESULT_BEFORE_RESUME
Modifica ID: 78294732
Stato predefinito: attivato per le app destinate ad Android 12 (livello API 32) o versioni successive.
Per le app destinate ad 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 dell'attività appena prima della ripresa.
|
CAMERA_MIC_INDICATORS_NOT_PRESENT
Modifica ID: 162547999
Stato predefinito: disabilitato 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 che hanno come target 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 pacchetti non installerà un pacchetto se sono presenti gruppi di autorizzazioni con formato non corretto.
I gruppi di autorizzazioni devono essere condivisi solo tra app che condividono un certificato. Se un'autorizzazione appartiene a un gruppo, è necessario definire anche quel gruppo.
|
CHANGE_ID_AUTH_STATE_DENIED
ID modifica: 181350407
Stato predefinito: abilitato per le app che hanno come target 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 nella sezione
stato di autorizzazione e tentare di inviare un messaggio a una nanoapp.
|
CHANGE_ID_SAMPLING_RATE_SENSORS_PERMISSION
ID modifica: 136069189
Stato predefinito: abilitato per le app che hanno come target 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 sono
HIGH_SAMPLING_RATE_SENSORS , eseguire in modalità di debug e richiedere frequenze di campionamento superiori a 200 Hz.
|
DELIVER_HISTORICAL_LOCATIONS
Modifica ID: 73144566
Stato predefinito: attivato 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, i client posizione potrebbero ricevere le posizioni storiche (prima del
attuale) in alcune circostanze.
|
DISPLAY_INFO_NR_ADVANCED_SUPPORTED
ID modifica: 181658987
Stato predefinito: abilitato per le app che hanno come target Android 12 (livello API 31) o versioni successive.
Per le app che hanno come target Android 12 (livello API 31) e versioni successive, offre la compatibilità con le versioni precedenti per le modifiche in TelephonyDisplayInfo .
|
DISPLAY_MODE_RETURNS_PHYSICAL_REFRESH_RATE
Modifica ID: 170503758
Stato predefinito: attivato 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 del valore
frequenza di aggiornamento se è più preferibile (ad esempio, se l'app ha chiamato Surface.setFrameRate(float, int) ).
Le app useranno Choreographer.postFrameCallback(Choreographer.FrameCallback)
e la contropressione alla frequenza fotogrammi limitata. Le app utilizzano Display.getRefreshRate() e
Display.Mode.getRefreshRate() per conoscere 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 fotogrammi. Display.Mode.getRefreshRate() restituirà la frequenza frame dell'app se compilato in una tabella precedente
e, a partire da Android 12 (livello API 31), verrà restituita la frequenza di aggiornamento del display fisico.
|
DOWNSCALED
Modifica ID: 168419799
Stato predefinito: disabilitato per tutte le app.
Questa modifica funge da punto di riferimento per tutto il downscaling del buffer per app
modifiche. Se abiliti questa modifica, i seguenti fattori di scalabilità potranno essere
applicare:
Quando questa modifica è attivata per un pacchetto di app, l'app viene ridimensionata forzatamente in base al fattore di scala più elevato abilitato. Ad esempio, l'80% è
utilizzata se sia l'80% che il 70%
(DOWNSCALE_80 e
DOWNSCALE_70 ) sono
in un bucket in cui è abilitato
il controllo delle versioni.
|
DOWNSCALE_30
ID modifica: 189970040
Stato predefinito: disattivato per tutte le app.
Se è attivata anche la proprietà DOWNSCALED , l'attivazione di questa modifica per un pacchetto forza l'app a supporre che sia in esecuzione su un display con il 30% della risoluzione verticale e orizzontale del display reale.
|
DOWNSCALE_35
Modifica ID: 189969749
Stato predefinito: disabilitato per tutte le app.
Se è attivata anche l'opzione DOWNSCALED , l'attivazione di questa modifica per un pacchetto forza l'app a supporre di essere 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.
Se è attivata anche l'opzione DOWNSCALED , l'attivazione di questa modifica per un pacchetto forza l'app a supporre di essere 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.
Se è attivata anche l'opzione DOWNSCALED , l'attivazione di questa modifica per un pacchetto forza l'app a supporre che sia in esecuzione su un display con il 45% della risoluzione verticale e orizzontale del display reale.
|
DOWNSCALE_50
Modifica ID: 176926741
Stato predefinito: disabilitato per tutte le app.
Quando DOWNSCALED è anche
abilitata, l'attivazione di questa modifica per un pacchetto impone all'app di assumere
viene mostrata su un display con il 50% dei campi verticali e orizzontali
risoluzione del display reale.
|
DOWNSCALE_55
Modifica ID: 189970036
Stato predefinito: disabilitato per tutte le app.
Se è attivata anche l'opzione DOWNSCALED , l'attivazione di questa modifica per un pacchetto forza l'app a supporre di essere in esecuzione su un display con il 55% della risoluzione verticale e orizzontale del display reale.
|
DOWNSCALE_60
Modifica ID: 176926771
Stato predefinito: disabilitato per tutte le app.
Se è attivata anche l'opzione DOWNSCALED , l'attivazione di questa modifica per un pacchetto forza l'app a supporre 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: disabilitato per tutte le app.
Quando DOWNSCALED è anche
abilitata, l'attivazione di questa modifica per un pacchetto impone all'app di assumere
viene mostrata su un display con il 65% dei campi verticali e orizzontali
risoluzione del display reale.
|
DOWNSCALE_70
ID modifica: 176926829
Stato predefinito: disabilitato per tutte le app.
Se è attivata anche l'opzione DOWNSCALED , l'attivazione di questa modifica per un pacchetto forza l'app a supporre di essere in esecuzione su un display con il 70% della risoluzione verticale e orizzontale del display reale.
|
DOWNSCALE_75
Modifica ID: 189969779
Stato predefinito: disabilitato per tutte le app.
Se è attivata anche l'opzione DOWNSCALED , l'attivazione di questa modifica per un pacchetto forza l'app a supporre 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: disabilitato per tutte le app.
Quando DOWNSCALED è anche
abilitata, l'attivazione di questa modifica per un pacchetto impone all'app di assumere
viene eseguita su un display con l'80% dei campi verticali e orizzontali
risoluzione del display reale.
|
DOWNSCALE_85
Modifica ID: 189969734
Stato predefinito: disabilitato per tutte le app.
Se è attivata anche l'opzione DOWNSCALED , l'attivazione di questa modifica per un pacchetto forza l'app a supporre di essere in esecuzione su un display con l'85% della risoluzione verticale e orizzontale del display reale.
|
DOWNSCALE_90
ID modifica: 182811243
Stato predefinito: disabilitato per tutte le app.
Quando DOWNSCALED è anche
abilitata, l'attivazione di questa modifica per un pacchetto impone all'app di assumere
viene eseguita su un display con il 90% dei campi verticali e orizzontali
risoluzione del display reale.
|
DO_NOT_DOWNSCALE_TO_1080P_ON_TV
Modifica ID: 157629738
Stato predefinito: attivato per le app destinate ad Android 12 (livello API 31) o versioni successive.
Le app per Android TV che hanno come target Android 12 (livello API 31) e versioni successive dovrebbero gestire qualsiasi dimensione di finestra, incluse quelle di dimensioni superiori a 1080p.
Le app destinate a versioni precedenti di Android non prevedono di ricevere Windows con risoluzione superiore a 1080p, quindi le app di Windows vengono ridimensionate a 1080p quando necessario.
|
DROP_CLOSE_SYSTEM_DIALOGS
ID modifica: 174664120
Stato predefinito: attivo per tutte le app.
Per migliorare il controllo dell'utente quando interagisce con le app e il sistema, l'azione intent ACTION_CLOSE_SYSTEM_DIALOGS è stata ritirata a partire da Android 12.
Per scoprire di più su questa modifica, consulta Le app non riescono a chiudere le finestre di dialogo di sistema.
|
ENABLE_CHECKS_FOR_PRIVATE_FILES
ID modifica: 172100307
Stato predefinito: abilitato per le app che hanno come target 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 che hanno come target 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
Modifica ID: 157233955
Stato predefinito: attivato 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, attiva la protezione di READ_PHONE_STATE per l'esecuzione di query sulle API e la notifica dello stato delle chiamate, ad esempio TelecomManager#getCallState ,
TelephonyManager.getCallStateForSubscription() e
TelephonyCallback.CallStateListener .
|
ENABLE_GET_PHONE_ACCOUNT_PERMISSION_PROTECTION
Modifica ID: 183407956
Stato predefinito: attivato 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, attiva READ_PHONE_NUMBERS o READ_PRIVILEGED_PHONE_STATE
su getPhoneAccount(PhoneAccountHandle) .
|
ENABLE_INCLUDE_ALL_VOLUMES
Modifica ID: 182734110
Stato predefinito: attivato per le app destinate ad Android 12 (livello API 31) o versioni successive.
Attiva questa opzione per includere in MediaProvider#query le righe del database dei file di un volume smontato di recente.
|
ENABLE_RAW_MANAGE_EXTERNAL_STORAGE_ACCESS
Modifica ID: 178209446
Stato predefinito: attivato per le app destinate ad Android 12 (livello API 31) o versioni successive.
Attiva questa opzione per consentire alle app che dispongono dell'autorizzazione Manifest.permission.MANAGE_EXTERNAL_STORAGE
di richiedere l'accesso allo spazio di archiviazione esterno non elaborato.
|
ENFORCE_MINIMUM_WINDOW_ON_INEXACT_ALARMS
ID modifica: 185199076
Stato predefinito: abilitato per le app che hanno come target 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 allarmi inesatti devono avere una dimensione minima della finestra, che dovrebbe essere nell'ordine di qualche minuto. In pratica, tutte le sveglie che richiedono finestre più piccole sono uguali alle sveglie esatte e devono utilizzare le API corrispondenti fornite, ad esempio setExact(int, long, PendingIntent) . Allarme inesatto con periodi più brevi specificati
le finestre saranno allungate dal sistema.
|
ENFORCE_NATIVE_SHARED_LIBRARY_DEPENDENCIES
ID modifica: 142191088
Stato predefinito: abilitato per le app che hanno come target 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 nelle librerie condivise native pubbliche che
vengono definite dal produttore del dispositivo utilizzando il tag uses-native-library nel relativo AndroidManifest.xml . Se c'è una qualsiasi delle dipendenze
non può essere soddisfatto (ad esempio, una delle dipendenze non esiste): il gestore di pacchetti non installa l'app. La dipendenza può essere
specificato come facoltativo utilizzando l'attributo android:required nel tag; in questo caso, se la dipendenza non viene soddisfatta non verrà interrotta
l'installazione.
Una volta installata, a un'app vengono fornite solo le librerie condivise native specificate nel file manifest dell'app. Chiamata a dlopen attiva
una libreria condivisa nativa che non viene visualizzata nel file manifest dell'app non riuscirà anche se esiste effettivamente sul dispositivo.
|
ENFORCE_STRICT_QUERY_BUILDER
Modifica ID: 143231523
Stato predefinito: disabilitato per tutte le app.
Se abilitato, SQLiteQueryBuilder
verifica tutte le selezioni di query CalendarProvider2 rispetto ad argomenti dannosi.
|
FGS_BG_START_RESTRICTION_CHANGE_ID
ID modifica: 170668199
Stato predefinito: abilitato per le app che hanno come target Android 12 (livello API 31) o versioni successive.
Per le app che hanno come target Android 12 (livello API 31) e versioni successive, limita il momento in cui le app possono avviare i servizi in primo piano durante l'esecuzione in background.
|
FGS_START_EXCEPTION_CHANGE_ID
Modifica ID: 174041399
Stato predefinito: attivato 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'istruzione IllegalStateException se un'app tenta di avviare un servizio in primo piano mentre viene eseguita in background.
|
Modifica ID: 156215187
Stato predefinito: disabilitato 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 diventa
non-interactive .
Se abilitato dall'attuale input method , la connessione di input corrente sarà
finished ogni volta che i dispositivi non sono interattivi.
Se non viene attivata, la connessione di ingresso corrente verrà disattivata automaticamente quando i dispositivi non diventeranno interattivi, e verrà
onFinishInput() e
onStartInput()
viene inviata quando il dispositivo diventa di nuovo interattivo.
|
FORCE_DISABLE_HEVC_SUPPORT
Modifica ID: 174227820
Stato predefinito: disabilitato per tutte le app.
Forza la disattivazione di un'app in modo che non supporti la funzionalità dei contenuti multimediali HEVC.
Le app devono dichiarare le funzionalità multimediali supportate nel proprio
ma questo flag può essere usato per forzare l'installazione di un'app
supportando HEVC, forzando di conseguenza la transcodifica durante l'accesso ai contenuti multimediali
con codifica HEVC. L'impostazione di questo flag sostituisce le impostazioni predefinite
a livello di sistema operativo per le app. È disattivato per impostazione predefinita, il che significa che le impostazioni predefinite del sistema operativo
hanno la precedenza. Se sono attivati sia questo flag sia FORCE_ENABLE_HEVC_SUPPORT , il sistema operativo ignora entrambi i flag.
|
FORCE_ENABLE_HEVC_SUPPORT
Modifica ID: 174228127
Stato predefinito: disabilitato per tutte le app.
Forza l'attivazione di un'app per supportare la funzionalità multimediale HEVC
devono dichiarare le funzionalità multimediali supportate nel file manifest
ma questo flag può essere usato per forzare l'app a supportare HEVC,
evitando la transcodifica durante l'accesso a contenuti multimediali codificati in HEVC. Impostazione
questo flag sostituisce qualsiasi impostazione predefinita a livello di sistema operativo per le app. È disattivato da
predefinito, il che significa che le impostazioni predefinite del sistema operativo hanno la precedenza. Se sia questo flag sia FORCE_DISABLE_HEVC_SUPPORT sono abilitati, il sistema operativo ignora entrambi i flag.
|
FORCE_NON_RESIZE_APP
Modifica ID: 181136395
Stato predefinito: disabilitato per tutte le app.
Obbliga i pacchetti a cui viene applicato come non ridimensionabili.
|
FORCE_RESIZE_APP
Modifica ID: 174042936
Stato predefinito: disabilitato per tutte le app.
Forza il ridimensionamento dei pacchetti a cui viene applicato. Consentiamo solo il ridimensionamento in modalità finestra a schermo intero, ma non forziamo l'app in modalità multi-finestra ridimensionabile.
|
HIDE_PROP_ICUBINARY_DATA_PATH
Modifica ID: 171979766
Stato predefinito: attivato 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 rimosso l'accesso alla proprietà android.icu.impl.ICUBinary.dataPath .
|
IGNORE_ALLOW_BACKUP_IN_D2D
Modifica ID: 183147249
Stato predefinito: attivato 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, android:allowBackup viene ignorato per le app durante le migrazioni da dispositivo a dispositivo (D2D).
|
IGNORE_FULL_BACKUP_CONTENT_IN_D2D
Modifica ID: 180523564
Stato predefinito: attivato 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
Modifica ID: 169273070
Stato predefinito: attivato 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, getSupportedLocales() ora restituisce un elenco di impostazioni internazionali vuoto quando non è impostato, anziché le impostazioni internazionali predefinite del sistema.
|
IS_BACKUP_SERVICE_ACTIVE_ENFORCE_PERMISSION_IN_SERVICE
Modifica ID: 158482162
Stato predefinito: attivato 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 lato servizio anziché lato client in BackupManager .
|
KEYSTORE_OPERATION_CREATION_MAY_FAIL
ID modifica: 169897160
Stato predefinito: disabilitato per tutte le app.
Se questa opzione è attivata, la creazione dell'operazione del keystore potrebbe non riuscire in base alla nuova strategia di potatura. Il keystore funzionava in base all'assunto
che la creazione di operazioni di crittografia vada sempre a buon fine.
Tuttavia, il backend di KeyMint ha solo un numero limitato di slot per le operazioni.
Per mantenere l'aspetto dell'"infinito" gli slot delle operazioni,
il daemon dell'archivio chiavi eliminerebbe le operazioni utilizzate meno di recente
non c'era nessuno spazio operativo disponibile. Di conseguenza, l'operatività
potrebbe essere terminata prematuramente. In questo modo, AndroidKeystore è diventato vulnerabile a attacchi di denial-of-service (DoS) e a un livelock involontario. Ad esempio, se
più app si riattivano contemporaneamente a causa di ottimizzazioni
di gestione dell'alimentazione e tentano di eseguire operazioni di crittografia, inizieranno
a terminare le operazioni l'una dell'altra senza fare alcun progresso.
Per uscire dai livelock e scoraggiare i tentativi di DoS, abbiamo
modificato la strategia di potatura in modo che dia la preferenza ai client che
utilizzano brevemente alcuni slot di operazione. Di conseguenza, le singole operazioni
se non rimangono inattivi per più di 5 secondi sarà quasi sempre
non ostacolate dalla strategia di eliminazione. Ci sono ancora
operazioni relative alla crittografia del file system che possono eliminare anche
queste operazioni, ma si tratta di casi estremamente rari. Come lato
l'effetto di questa nuova operazione di strategia di eliminazione, la creazione ora può non riuscire
se il client ha un potere di potatura inferiore a quello di tutte le risorse
operazioni.
Strategia di potatura: per trovare un candidato adatto,
calcoliamo il malus per il chiamante e per ogni operazione esistente. Il
malus è l'inverso della potenza di potatura (chiamante) o della resistenza
alla potatura (operazione esistente). Affinché il chiamante possa potare
un'operazione, deve trovare un'operazione con un malus superiore al suo.
Per ulteriori dettagli sulla strategia di potatura, consulta l'implementazione
di
operation.rs .
Su Android 11 (livello API 30) e versioni precedenti, KeyStore2 eseguirà il polling del daemon Keystore per individuare uno slot di operazione libero. Per le app che hanno come target Android 11 (livello API 30) e versioni precedenti, l'inizializzazione degli oggetti di crittografia e firma avrà sempre esito positivo, ma potrebbe essere necessario più tempo per eseguire un'operazione. Per tutte le versioni di Android i vantaggi sono
pianificazione degli slot operativi e una migliore possibilità di concludere
per eseguire un'operazione.
|
LOCK_DOWN_CLOSE_SYSTEM_DIALOGS
Modifica ID: 174664365
Stato predefinito: attivato 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 una volta avviata l'app e ha come target Android 12 (livello API 31) o versioni successive.
|
LOCK_DOWN_COLLAPSE_STATUS_BAR
Modifica ID: 173031413
Stato predefinito: attivato 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, è necessaria l'autorizzazione Manifest.permission.STATUS_BAR per comprimere la
riquadri nella barra di stato per motivi di sicurezza. Questo veniva sfruttato dai malware per impedire all'utente di accedere alle notifiche critiche.
|
LOW_POWER_EXCEPTIONS
ID modifica: 168936375
Stato predefinito: abilitato per le app che hanno come target 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 a basso consumo energetico
eccezioni se il chiamante non dispone dell'autorizzazione LOCATION_HARDWARE , invece di abbassare automaticamente la temperatura bassa
della richiesta.
|
MISSING_EXPORTED_FLAG
Modifica ID: 150232615
Stato predefinito: attivato 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, deve essere specificato un valore esplicito per l'attributo android:exported ogni volta che è definito un filtro intent.
Per scoprire di più su questa modifica, consulta Esportazione più sicura dei componenti.
|
NATIVE_HEAP_POINTER_TAGGING_APP_ZYGOTE
Modifica ID: 207557677
Stato predefinito: attivato 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, allocazioni dell'heap nativo nel processo AppZygote e nei relativi discendenti
utilizzare un tag diverso da zero nel byte più significativo.
Per saperne di più su questa modifica, consulta Cursori con tag.
|
NATIVE_HEAP_ZERO_INIT
Modifica ID: 178038272
Stato predefinito: disabilitato per tutte le app.
Abilita l'inizializzazione automatica zero delle allocazioni della memoria heap nativa.
|
NATIVE_MEMTAG_ASYNC
Modifica ID: 135772972
Stato predefinito: disabilitato per tutte le app.
Attiva il controllo dei tag di memoria asincroni (ASYNC) in questo processo. Questo flag riguarda solo l'hardware che supporta l'estensione ARM
Memory Tagging Extension (MTE).
|
NATIVE_MEMTAG_SYNC
Modifica ID: 177438394
Stato predefinito: disabilitato per tutte le app.
Consente il controllo dei tag di memoria sincroni (SYNC) in questo processo. Questo flag riguarda solo l'hardware che supporta ARM
Memory Tagging Extension (MTE). Se sono attive sia NATIVE_MEMTAG_ASYNC sia questa opzione, quest'ultima ha la precedenza e MTE è attivato in modalità SYNC.
|
NEVER_SANDBOX_DISPLAY_APIS
ID modifica: 184838306
Stato predefinito: disattivato per tutte le app.
Se attivata, impedisce che la sandbox dell'API Display venga applicata a un
in formato letterbox o SCM. Le API Display continueranno a fornire i confini di DisplayArea.
Per scoprire di più su questa modifica, consulta la sezione della pagina Modifiche al comportamento di Android 12 relativa ai metodi di visualizzazione ritirati.
|
NOTIFICATION_CANCELLATION_REASONS
Modifica ID: 175319604
Stato predefinito: attivato per le app destinate ad Android 12 (livello API 31) o versioni successive.
Consente ai listener di notifiche di comprendere i nuovi motivi di annullamento più specifici.
|
NOTIFICATION_TRAMPOLINE_BLOCK
Modifica ID: 167676448
Stato predefinito: attivato 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 che hanno come target Android 12 non possono utilizzare servizi o broadcast receiver come trampolini di notifiche.
Per ulteriori informazioni su questa modifica, consulta l'argomento Impossibile creare trampolini per le notifiche da servizi o broadcast receiver.
|
NULL_TELEPHONY_THROW_NO_CB
Modifica ID: 182185642
Stato predefinito: attivato per le app destinate ad Android 12 (livello API 31) o versioni successive.
Viene 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: disabilitato per tutte le app.
Questa modifica è il gatekeeper di tutte le modifiche che forzano un determinato formato immagine minimo. L'attivazione di questa modifica consente il seguente aspetto minimo
proporzioni da applicare:
Quando questa modifica viene abilitata per un pacchetto dell'app, il formato minimo specificato nel file manifest dell'app viene sostituito dal formato più grande abilitato
proporzioni, a meno che il valore del file manifest dell'app non sia più elevato.
|
OVERRIDE_MIN_ASPECT_RATIO_LARGE
Modifica ID: 180326787
Stato predefinito: disabilitato per tutte le app.
Se viene abilitato anche OVERRIDE_MIN_ASPECT_RATIO , l'attivazione di questa modifica per un set di pacchetti
proporzioni minime dell'attività a un valore elevato come definito da OVERRIDE_MIN_ASPECT_RATIO_LARGE_VALUE .
|
OVERRIDE_MIN_ASPECT_RATIO_MEDIUM
ID modifica: 180326845
Stato predefinito: disabilitato per tutte le app.
Se è attivato anche OVERRIDE_MIN_ASPECT_RATIO , l'attivazione di questa modifica per un pacchetto imposta
il formato immagine minimo dell'attività su un valore medio come definito da OVERRIDE_MIN_ASPECT_RATIO_MEDIUM_VALUE .
|
PENDING_INTENT_EXPLICIT_MUTABILITY_REQUIRED
Modifica ID: 160794467
Stato predefinito: attivato 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 mutabilità di ogni PendingIntent
creato dalla tua app. Questo requisito aggiuntivo migliora la sicurezza della tua app.
Per scoprire di più su questa modifica, consulta l'articolo Gli intent in attesa devono dichiarare la mutabilità.
|
PREVENT_SETTING_PASSWORD_QUALITY_ON_PARENT
Modifica ID: 165573442
Stato predefinito: attivato per le app destinate ad Android 12 (livello API 31) o versioni successive.
Le app amministrative 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 sull'istanza DevicePolicyManager ottenuta chiamando DevicePolicyManager.getParentProfileInstance(ComponentName) .
Dovrebbe invece utilizzare DevicePolicyManager.setRequiredPasswordComplexity(int) per impostare requisiti per le password a livello granulare su tutto il dispositivo.
|
RATE_LIMIT_TOASTS
ID modifica: 174840628
Stato predefinito: questa modifica non può essere attivata o disattivata. Viene registrato solo dal framework di compatibilità.
Consente di limitare la frequenza del numero di chiamate
Toast.show()
per evitare di sovraccaricare l'utente con troppi avvisi popup in un
periodo di tempo limitato. Qualsiasi tentativo di mostrare più toast di quanto consentito in un
un determinato periodo di tempo comporta
l'eliminazione del toast.
|
REQUIRE_EXACT_ALARM_PERMISSION
Modifica ID: 171306433
Stato predefinito: attivato 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, è necessaria l'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 che hanno come target 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 in
per chiamare TelephonyCallback.ActiveDataSubscriptionIdListener .
|
REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_CELL_INFO
ID modifica: 184323934
Stato predefinito: abilitato per le app che hanno come target 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 in
per chiamare TelephonyCallback.CellInfoListener .
|
REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_DISPLAY_INFO
Modifica ID: 183164979
Stato predefinito: attivato 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 in
per chiamare TelephonyCallback.DisplayInfoListener .
|
RESTRICT_ADB_BACKUP
Modifica ID: 171032338
Stato predefinito: attivato 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 in esecuzione come debbugabili (android:debuggable impostato su true ) e non è disponibile per altre app.
|
RESTRICT_DOMAINS
Modifica ID: 175408749
Stato predefinito: attivato 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, è richiesta la forma aggiornata dell'API App Links Verification. Questo requisito significa che un'app deve dichiarare i domini all'interno di un filtro 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 lo consentiva
fingere implicitamente che tutti i filtri per intent siano impostati su autoVerify="true" .
|
SECURITY_EXCEPTION_ON_INVALID_ATTRIBUTION_TAG_CHANGE
ID modifica: 151105954
Stato predefinito: abilitato per le app che hanno come target Android 12 (livello API 31) o versioni successive.
Per le app che hanno come target Android 12 (livello API 31) e versioni successive, impone l'invio di tutti i attributionTags a noteOp(String, int, String) :
noteProxyOp(String, String) ,
e startOp(String, int, String)
sono definiti nel manifest del pacchetto specificato come parametro dei metodi.
Per attivare questa modifica, sia il pacchetto che chiama noteOp(String, int, String)
sia il pacchetto specificato come parametro del metodo devono avere questa modifica attivata.
|
SELINUX_LATEST_CHANGES
Modifica ID: 143539591
Stato predefinito: attivato 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, attiva le ultime modifiche di SELinux. Disattivazione di questa modifica per il targeting di un'app
Android 12 (livello API 31) o versioni successive è una modalità autonoma. Non ha effetto per le app che utilizzano un ID utente condiviso.
|
SETTINGS_API_V2
ID modifica: 178111421
Stato predefinito: attivo per tutte le app.
La nuova API di preferenze utente per la verifica dei domini contrassegnati come autoVerify=true nei filtri intent di AndroidManifest.xml non è ancora implementata nell'attuale anteprima della piattaforma. Per il momento, è possibile visualizzare l'anteprima delle modifiche alle preferenze del nuovo utente attivando 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 che hanno come target 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.
|