| ID de modification : 185004937ALWAYS_SANDBOX_DISPLAY_APIS
État par défaut : Désactivé pour toutes les applications.
 
 Lorsque cette modification est activée, le bac à sable de l'API Display est appliqué à un package, quel que soit le mode de fenêtrage. Les API Display fournissent toujours les limites de l'application. Pour en savoir plus sur cette modification, consultez la section sur les 
           méthodes Display obsolètes de la page dédiée aux modifications de comportement d'Android 12. | 
      
        | ID de modification : 163400105AUTOFILL_NON_TEXT_REQUIRES_ON_RECEIVE_CONTENT_LISTENER
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 32) ou version ultérieure.
 
 À partir d'Android 12, la plate-forme peut fournir des suggestions non textuelles (telles que des images) à l'aide du framework de saisie automatique augmentée (voir Services de saisie automatique). Pour qu'une application puisse gérer ces suggestions, elle doit normalement implémenter l'API OnReceiveContentListener. Pour faciliter l'adoption de cette API pour les applications qui ont déjà implémenté l'API InputConnection.commitContent(InputContentInfo, int, Bundle), nous réutilisons cette API comme solution de secours siOnReceiveContentListenern'est pas encore implémentée par l'application. Cette solution de secours n'est activée que sur Android 12 (niveau d'API 31). Cet ID de modification désactive le remplacement, de sorte que les applications ciblant Android 12 (niveau d'API 32) et versions ultérieures doivent implémenter l'APIOnReceiveContentListenerpour accepter les suggestions non textuelles. | 
      
        | ID de modification : 157929241BLOCK_FLAG_SLIPPERY
État par défaut : Activé pour toutes les applications.
 
 Pour les applications exécutées sur Android 12 (niveau d'API 31), vérifie si FLAG_SLIPPERYest utilisé avec des fenêtres dans l'application. Nous nous attendons à ce que cet indicateur ne soit probablement utilisé que par les composants système, car il s'agit d'un champ non compatible. Si c'est le cas, il sera soumis à des restrictions. | 
      
        | ID de modification : 144027538BLOCK_GPS_STATUS_USAGE
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Pour les applications ciblant Android 12 (niveau d'API 31) et versions ultérieures, toute utilisation de l'API GpsStatusdoit être remplacée par les APIGnssStatus. | 
      
        | ID de modification : 171317480BLOCK_IMMUTABLE_PENDING_INTENTS
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Pour les applications ciblant Android 12 (niveau d'API 31) ou version ultérieure, les objets PendingIntentimmuables transmis aux API de localisation génèrent uneIllegalArgumentException.. | 
      
        | ID de modification : 169887240BLOCK_PENDING_INTENT_SYSTEM_API_USAGE
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Pour les applications ciblant Android 12 (niveau d'API 31) ou version ultérieure, les API système LocationRequestne peuvent pas être utilisées avec les requêtes de localisationPendingIntent. | 
      
        | ID de modification : 158002302BLOCK_UNTRUSTED_TOUCHES
État par défaut : Activé pour toutes les applications.
 
 Pour préserver la sécurité du système et offrir une bonne expérience utilisateur, Android 12 empêche les applications de consommer des événements tactiles lorsqu'une superposition bloque l'application de manière non sécurisée. Pour en savoir plus sur ce changement, consultez Les événements tactiles non fiables sont bloqués. | 
      
        | ID de modification : 78294732CALL_ACTIVITY_RESULT_BEFORE_RESUME
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 32) ou version ultérieure.
 
 Pour les applications ciblant Android 12 (niveau d'API 32) et versions ultérieures, corrige le cycle de vie du résultat de l'activité pour garantir qu'une activité obtient le résultat de l'activité juste avant la reprise. | 
      
        | ID de modification : 162547999CAMERA_MIC_INDICATORS_NOT_PRESENT
État par défaut : Désactivé pour toutes les applications.
 
 Indique que cet appareil est compatible avec les indicateurs d'appareil photo et de micro. La valeur est falsesi présente, car la méthodeCompatChanges#isChangeEnabledrenvoietruesi l'ID de modification n'est pas présent. | 
      
        | ID de modification : 146211400CANNOT_INSTALL_WITH_BAD_PERMISSION_GROUPS
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 32) ou version ultérieure.
 
 Pour les applications ciblant Android 12 (niveau d'API 32) ou version ultérieure, le gestionnaire de packages n'installera pas de package si des groupes d'autorisations sont mal formés.
             Les groupes d'autorisations ne doivent être partagés qu'entre les applications qui partagent un certificat. Si une autorisation appartient à un groupe, ce groupe doit également être défini. | 
      
        | ID de modification : 181350407CHANGE_ID_AUTH_STATE_DENIED
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Pour les applications clientes ciblant Android 12 (niveau d'API 31) ou version ultérieure, une SecurityExceptionest générée lorsqu'elles sont dans l'état d'autorisation refusée et tentent d'envoyer un message à une nano-application. | 
      
        | ID de modification : 136069189CHANGE_ID_SAMPLING_RATE_SENSORS_PERMISSION
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Pour les applications ciblant Android 12 (niveau d'API 31) ou version ultérieure, une SecurityExceptionest générée lorsqu'elles ne disposent pas de l'autorisationHIGH_SAMPLING_RATE_SENSORS, qu'elles s'exécutent en mode débogage et qu'elles demandent des taux d'échantillonnage supérieurs à 200 Hz. | 
      
        | ID de modification : 73144566DELIVER_HISTORICAL_LOCATIONS
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Pour les applications ciblant Android 12 (niveau d'API 31) et versions ultérieures, les clients de localisation peuvent recevoir des positions historiques (antérieures à l'heure actuelle) dans certaines circonstances. | 
      
        | ID de modification : 181658987DISPLAY_INFO_NR_ADVANCED_SUPPORTED
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Pour les applications ciblant Android 12 (niveau d'API 31) et les versions ultérieures, assure la rétrocompatibilité pour les modifications apportées à TelephonyDisplayInfo. | 
      
        | ID de modification : 170503758DISPLAY_MODE_RETURNS_PHYSICAL_REFRESH_RATE
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Pour les applications ciblant Android 12 (niveau d'API 31) et versions ultérieures, la plate-forme peut réduire la fréquence d'images d'une application à un diviseur de la fréquence d'actualisation si cela est préférable (par exemple, si l'application a appelé Surface.setFrameRate(float, int)). Les applications recevront des rappelsChoreographer.postFrameCallback(Choreographer.FrameCallback)et une contre-pression à la fréquence d'images réduite. Les applications utilisentDisplay.getRefreshRate()etDisplay.Mode.getRefreshRate()pour connaître la fréquence d'actualisation de l'écran.Display.getRefreshRate()renverra toujours la fréquence d'images de l'application et non la fréquence d'actualisation physique de l'écran pour permettre aux applications de cadencer correctement les images.Display.Mode.getRefreshRate()renverra la fréquence d'images de l'application si elle est compilée dans une version antérieure. À partir d'Android 12 (niveau d'API 31), elle renverra la fréquence d'actualisation de l'écran physique. | 
      
        | ID de modification : 168419799DOWNSCALED
État par défaut : Désactivé pour toutes les applications.
 
 Cette modification contrôle toutes les modifications de taille de la mémoire tampon par application. L'activation de cette modification permet d'appliquer les facteurs de scaling suivants : Lorsque cette modification est activée pour un package d'application, l'application est automatiquement redimensionnée au facteur de scaling le plus élevé et activé. Par exemple, la valeur 80 % est utilisée si les valeurs 80 % et 70 % (DOWNSCALE_80etDOWNSCALE_70) sont activées. | 
      
        | ID de modification : 189970040DOWNSCALE_30
État par défaut : Désactivé pour toutes les applications.
 
 Lorsque DOWNSCALEDest également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 30 % de l'affichage réel. | 
      
        | ID de modification : 189969749DOWNSCALE_35
État par défaut : Désactivé pour toutes les applications.
 
 Lorsque DOWNSCALEDest également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 35 % de l'affichage réel. | 
      
        | ID de modification : 189970038DOWNSCALE_40
État par défaut : Désactivé pour toutes les applications.
 
 Lorsque DOWNSCALEDest également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 40 % de l'affichage réel. | 
      
        | ID de modification : 189969782DOWNSCALE_45
État par défaut : Désactivé pour toutes les applications.
 
 Lorsque DOWNSCALEDest également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 45 % de l'affichage réel. | 
      
        | ID de modification : 176926741DOWNSCALE_50
État par défaut : Désactivé pour toutes les applications.
 
 Lorsque DOWNSCALEDest également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 50 % de l'affichage réel. | 
      
        | ID de modification : 189970036DOWNSCALE_55
État par défaut : Désactivé pour toutes les applications.
 
 Lorsque DOWNSCALEDest également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 55 % de l'affichage réel. | 
      
        | ID de modification : 176926771DOWNSCALE_60
État par défaut : Désactivé pour toutes les applications.
 
 Lorsque DOWNSCALEDest également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 60 % de l'affichage réel. | 
      
        | ID de modification : 189969744DOWNSCALE_65
État par défaut : Désactivé pour toutes les applications.
 
 Lorsque DOWNSCALEDest également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 65 % de l'affichage réel. | 
      
        | ID de modification : 176926829DOWNSCALE_70
État par défaut : Désactivé pour toutes les applications.
 
 Lorsque DOWNSCALEDest également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 70 % de l'affichage réel. | 
      
        | ID de modification : 189969779DOWNSCALE_75
État par défaut : Désactivé pour toutes les applications.
 
 Lorsque DOWNSCALEDest également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 75 % de l'affichage réel. | 
      
        | ID de modification : 176926753DOWNSCALE_80
État par défaut : Désactivé pour toutes les applications.
 
 Lorsque DOWNSCALEDest également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 80 % de l'affichage réel. | 
      
        | ID de modification : 189969734DOWNSCALE_85
État par défaut : Désactivé pour toutes les applications.
 
 Lorsque DOWNSCALEDest également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 85 % de l'affichage réel. | 
      
        | ID de modification : 182811243DOWNSCALE_90
État par défaut : Désactivé pour toutes les applications.
 
 Lorsque DOWNSCALEDest également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 90 % de l'affichage réel. | 
      
        | ID de modification : 157629738DO_NOT_DOWNSCALE_TO_1080P_ON_TV
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Les applications Android TV ciblant Android 12 (niveau d'API 31) ou version ultérieure doivent gérer toutes les tailles de fenêtre, y compris celles supérieures à 1080p.
             Les applications ciblant des versions antérieures d'Android ne s'attendent pas à recevoir des fenêtres de plus de 1080p. Leurs fenêtres sont donc redimensionnées à 1080p si nécessaire. | 
      
        | ID de modification : 174664120DROP_CLOSE_SYSTEM_DIALOGS
État par défaut : Activé pour toutes les applications.
 
 Pour améliorer le contrôle des utilisateurs lorsqu'ils interagissent avec les applications et le système, l'action d'intent ACTION_CLOSE_SYSTEM_DIALOGSest obsolète depuis Android 12. Pour en savoir plus sur cette modification, consultez Les applications ne peuvent pas fermer les boîtes de dialogue système. | 
      
        | ID de modification : 172100307ENABLE_CHECKS_FOR_PRIVATE_FILES
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Les applications ciblant Android 12 (niveau d'API 31) et les versions ultérieures ne peuvent pas insérer ni mettre à jour des fichiers privés à l'aide du fournisseur de contenu multimédia. | 
      
        | ID de modification : 180326732ENABLE_DEFERRED_SCAN
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Activez cette option pour différer l'analyse déclenchée dans le cadre de MediaProvider#update(). | 
      
        | ID de modification : 157233955ENABLE_GET_CALL_STATE_PERMISSION_PROTECTION
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Pour les applications ciblant Android 12 (niveau d'API 31) et versions ultérieures, active la protection READ_PHONE_STATEsur les API interrogeant et notifiant l'état des appels, telles queTelecomManager#getCallState,TelephonyManager.getCallStateForSubscription()etTelephonyCallback.CallStateListener. | 
      
        | ID de modification : 183407956ENABLE_GET_PHONE_ACCOUNT_PERMISSION_PROTECTION
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Pour les applications ciblant Android 12 (niveau d'API 31) ou version ultérieure, active les protections READ_PHONE_NUMBERSouREAD_PRIVILEGED_PHONE_STATEsurgetPhoneAccount(PhoneAccountHandle). | 
      
        | ID de modification : 182734110ENABLE_INCLUDE_ALL_VOLUMES
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Activez cette option pour inclure les lignes de base de données des fichiers d'un volume récemment démonté dans MediaProvider#query. | 
      
        | ID de modification : 178209446ENABLE_RAW_MANAGE_EXTERNAL_STORAGE_ACCESS
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Activez cette option pour autoriser les applications disposant de l'autorisation Manifest.permission.MANAGE_EXTERNAL_STORAGEà demander un accès brut au stockage externe. | 
      
        | ID de modification : 185199076ENFORCE_MINIMUM_WINDOW_ON_INEXACT_ALARMS
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Pour les applications ciblant Android 12 (niveau d'API 31) ou version ultérieure, toutes les alarmes inexactes doivent avoir une taille de fenêtre minimale, qui devrait être de l'ordre de quelques minutes. En pratique, toutes les alarmes nécessitant des fenêtres plus petites sont identiques aux alarmes exactes et doivent utiliser les API correspondantes fournies, telles que setExact(int, long, PendingIntent). Les fenêtres des alarmes inexactes avec des fenêtres plus courtes spécifiées seront allongées par le système. | 
      
        | ID de modification : 142191088ENFORCE_NATIVE_SHARED_LIBRARY_DEPENDENCIES
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Les applications ciblant Android 12 (niveau d'API 31) ou une version ultérieure doivent déclarer les dépendances aux bibliothèques partagées natives publiques définies par le fabricant de l'appareil à l'aide de la balise uses-native-librarydans sonAndroidManifest.xml. Si l'une des dépendances ne peut pas être satisfaite (par exemple, si l'une des dépendances n'existe pas), le gestionnaire de packages n'installera pas l'application. La dépendance peut être spécifiée comme facultative à l'aide de l'attributandroid:requireddans la balise. Dans ce cas, l'échec de la satisfaction de la dépendance n'empêchera pas l'installation. Une fois installée, une application ne reçoit que les bibliothèques partagées natives spécifiées dans le fichier manifeste de l'application. L'appel de dlopensur une bibliothèque partagée native qui n'apparaît pas dans le fichier manifeste de l'application échouera, même si elle existe réellement sur l'appareil. | 
      
        | ID de modification : 143231523ENFORCE_STRICT_QUERY_BUILDER
État par défaut : Désactivé pour toutes les applications.
 
 Lorsque cette modification est activée, le SQLiteQueryBuildervérifie toutes les sélections de requêtes deCalendarProvider2par rapport à des arguments malveillants. | 
      
        | ID de modification : 170668199FGS_BG_START_RESTRICTION_CHANGE_ID
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Pour les applications ciblant Android 12 (niveau d'API 31) ou version ultérieure, cette option restreint le moment où les applications peuvent démarrer des services de premier plan lorsqu'elles s'exécutent en arrière-plan. | 
      
        | ID de modification : 174041399FGS_START_EXCEPTION_CHANGE_ID
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Pour les applications ciblant Android 12 (niveau d'API 31) et versions ultérieures, permet au système de générer une IllegalStateExceptionsi une application tente de démarrer un service de premier plan lorsqu'elle s'exécute en arrière-plan. | 
      
        | ID de modification : 156215187 État par défaut : Désactivé pour toutes les applications.
 
 Pour les applications ciblant Android 12 (niveau d'API 31) ou version ultérieure, terminez InputConnectionlorsque l'appareil devientnon-interactive. Si l'input methodactuel l'a activé, la connexion d'entrée actuelle serafinishedchaque fois que les appareils deviendront non interactifs. Si elle n'est pas activée, la connexion d'entrée actuelle sera désactivée silencieusement lorsque l'appareil deviendra non interactif, et une paire onFinishInput()etonStartInput()sera envoyée lorsque l'appareil redeviendra interactif. | 
      
        | ID de modification : 174227820FORCE_DISABLE_HEVC_SUPPORT
État par défaut : Désactivé pour toutes les applications.
 
 Forcer la désactivation de la compatibilité d'une application avec les fonctionnalités multimédias HEVC.
           Les applications doivent déclarer les fonctionnalités multimédias compatibles dans leur fichier manifeste, mais vous pouvez utiliser cet indicateur pour forcer une application à ne pas prendre en charge HEVC, forçant ainsi le transcodage lorsque cette dernière accède à des médias encodés en HEVC. L'utilisation de cet indicateur remplace toutes les valeurs par défaut au niveau de l'OS pour les applications. Il est désactivé par défaut, ce qui signifie que les valeurs par défaut de l'OS prévalent. Si cet indicateur et FORCE_ENABLE_HEVC_SUPPORTsont tous les deux activés, l'OS ignore les deux indicateurs. | 
      
        | ID de modification : 174228127FORCE_ENABLE_HEVC_SUPPORT
État par défaut : Désactivé pour toutes les applications.
 
 Forcer l'activation d'une application pour la compatibilité avec les fonctionnalités multimédias HEVC. Les applications doivent déclarer leurs fonctionnalités multimédias compatibles dans leur fichier manifeste, mais cet indicateur peut être utilisé pour forcer une application à prendre en charge le format HEVC, évitant ainsi le transcodage pour accéder aux fichiers multimédias encodés en HEVC. L'utilisation de cet indicateur remplace toutes les valeurs par défaut au niveau de l'OS pour les applications. Il est désactivé par défaut, ce qui signifie que les valeurs par défaut de l'OS prévalent. Si cet indicateur et FORCE_DISABLE_HEVC_SUPPORTsont tous les deux activés, l'OS ignore les deux indicateurs. | 
      
        | ID de modification : 181136395FORCE_NON_RESIZE_APP
État par défaut : Désactivé pour toutes les applications.
 
 Empêche le non-redimensionnement des packages auxquels il est appliqué. | 
      
        | ID de modification : 174042936FORCE_RESIZE_APP
État par défaut : Désactivé pour toutes les applications.
 
 Force le redimensionnement des packages auxquels il est appliqué. Nous n'autorisons le redimensionnement qu'en mode fenêtrage plein écran, sans forcer l'application à passer en mode multifenêtrage redimensionnable. | 
      
        | ID de modification : 171979766HIDE_PROP_ICUBINARY_DATA_PATH
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Pour les applications ciblant Android 12 (niveau d'API 31) ou version ultérieure, l'accès à la propriété android.icu.impl.ICUBinary.dataPathest supprimé. | 
      
        | ID de modification : 183147249IGNORE_ALLOW_BACKUP_IN_D2D
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Pour les applications ciblant Android 12 (niveau d'API 31) et versions ultérieures, android:allowBackupest ignoré lors des migrations d'appareil à appareil (D2D). | 
      
        | ID de modification : 180523564IGNORE_FULL_BACKUP_CONTENT_IN_D2D
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Pour les applications ciblant Android 12 (niveau d'API 31) ou version ultérieure, les règles d'inclusion et d'exclusion spécifiées à l'aide de android:fullBackupContentsont ignorées lors des transferts d'appareil à appareil (D2D). | 
      
        | ID de modification : 169273070IME_AUTOFILL_DEFAULT_SUPPORTED_LOCALES_IS_EMPTY
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Pour les applications ciblant Android 12 (niveau d'API 31) et versions ultérieures, getSupportedLocales()renvoie désormais une liste de paramètres régionaux vide lorsqu'elle n'est pas définie, au lieu du paramètre régional système par défaut. | 
      
        | ID de modification : 158482162IS_BACKUP_SERVICE_ACTIVE_ENFORCE_PERMISSION_IN_SERVICE
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Pour les applications ciblant Android 12 (niveau d'API 31) et versions ultérieures, l'autorisation BACKUPrequise pourisBackupServiceActive()est appliquée côté service plutôt que côté client dansBackupManager. | 
      
        | ID de modification : 169897160KEYSTORE_OPERATION_CREATION_MAY_FAIL
État par défaut : Désactivé pour toutes les applications.
 
 Lorsque cette modification est activée, la création d'opérations keystore peut échouer en fonction de la nouvelle stratégie d'élagage. Auparavant, le keystore partait du principe que la création d'opérations de chiffrement aboutissait toujours.
           Toutefois, le backend KeyMint ne dispose que d'un nombre limité d'emplacements d'opérations. Afin de maintenir l'apparence des emplacements d'opérations "infinis", le daemon Keystore élague les opérations les moins récemment utilisées si aucun emplacement d'opération n'est disponible. Par conséquent, toute opération de qualité peut être interrompue prématurément. Cela a permis à AndroidKeystore de s'intéresser au déni de service (DoS) et au verrouillage intempestif. Par exemple, si plusieurs applications s'activent en même temps en raison d'optimisations de la gestion de l'alimentation et tentent d'effectuer des opérations de cryptographie, elles s'arrêtent les unes les autres sans progresser. Pour échapper aux verrouillages et décourager les tentatives d'attaque DoS, nous avons modifié la stratégie d'élagage pour que les clients qui utilisent peu d'emplacements d'opérations soient privilégiés. Par conséquent, les opérations uniques qui ne restent pas inactives pendant plus de cinq secondes se terminent presque toujours sans entrave par la stratégie d'élagage. Dans des cas extrêmement rares, certaines opérations liées au chiffrement du système de fichiers peuvent malgré tout élaguer ces opérations. En raison de cette nouvelle stratégie d'élagage, la création peut maintenant échouer si le client dispose d'une puissance d'élagage inférieure à toutes les opérations existantes. Stratégie d'élagage : pour trouver un candidat approprié, nous calculons le malus pour l'appelant et chaque opération existante. Le malus est l'inverse du pouvoir d'élagage (appelant) ou de la résistance d'élagage (opération existante). Pour que l'appelant puisse élaguer une opération, il doit trouver une opération dont le malus est supérieur au sien. Pour en savoir plus sur la stratégie d'élagage, consultez l'implémentation de operation.rs.
          Sur Android 11 (niveau d'API 30) ou version antérieure, KeyStore2 interroge le daemon Keystore pour obtenir un emplacement d'opération libre. Pour les applications ciblant Android 11 (niveau d'API 30) et versions antérieures, l'algorithme de chiffrement et l'initialisation des objets de signature pourront toujours fonctionner. Toutefois, l'opération peut prendre plus de temps. Toutes les versions d'Android bénéficient d'une planification plus équitable des emplacements d'opérations et d'une meilleure chance de terminer une opération. | 
      
        | ID de modification : 174664365LOCK_DOWN_CLOSE_SYSTEM_DIALOGS
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Pour les applications ciblant Android 12 (niveau d'API 31) ou version ultérieure, le Intent.ACTION_CLOSE_SYSTEM_DIALOGSne peut pas être envoyé, sauf si l'application dispose également de l'autorisationandroid.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS. Notez qu'il s'agit de la version la plus restrictive de#DROP_CLOSE_SYSTEM_DIALOGSqui attend de l'application qu'elle cesse d'envoyer l'intentIntent.ACTION_CLOSE_SYSTEM_DIALOGSune fois que l'application commence à cibler Android 12 (niveau d'API 31) ou version ultérieure. | 
      
        | ID de modification : 173031413LOCK_DOWN_COLLAPSE_STATUS_BAR
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Pour les applications ciblant Android 12 (niveau d'API 31) ou version ultérieure, l'autorisation Manifest.permission.STATUS_BARest requise pour réduire les panneaux de la barre d'état pour des raisons de sécurité. Des logiciels malveillants exploitaient cette fonctionnalité pour empêcher l'utilisateur d'accéder aux notifications importantes. | 
      
        | ID de modification : 168936375LOW_POWER_EXCEPTIONS
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Pour les applications ciblant Android 12 (niveau d'API 31) et versions ultérieures, tous les objets LocationRequestmarqués comme basse consommation génèrent des exceptions si l'appelant ne dispose pas de l'autorisationLOCATION_HARDWARE, au lieu de supprimer silencieusement la partie basse consommation de la requête. | 
      
        | ID de modification : 150232615MISSING_EXPORTED_FLAG
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Pour les applications ciblant Android 12 (niveau d'API 31) ou version ultérieure, une valeur explicite doit être spécifiée pour l'attribut android:exportedchaque fois qu'un filtre d'intent est défini. Pour en savoir plus sur ce changement, consultez Exportation plus sécurisée des composants. | 
      
        | ID de modification : 207557677NATIVE_HEAP_POINTER_TAGGING_APP_ZYGOTE
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 32) ou version ultérieure.
 
 Pour les applications ciblant Android 12 (niveau d'API 32) ou version ultérieure, les allocations de tas natif dans le processus AppZygoteet ses descendants utilisent une balise non nulle dans l'octet le plus significatif. Pour en savoir plus sur ce changement, consultez Balisage des pointeurs. | 
      
        | ID de modification : 178038272NATIVE_HEAP_ZERO_INIT
État par défaut : Désactivé pour toutes les applications.
 
 Active l'initialisation automatique à zéro des allocations de mémoire du tas de mémoire natif. | 
      
        | ID de modification : 135772972NATIVE_MEMTAG_ASYNC
État par défaut : Désactivé pour toutes les applications.
 
 Active la vérification asynchrone (ASYNC) des tags de mémoire dans ce processus. Cet indicateur n'affecte que le matériel compatible avec la Memory Tagging Extension (MTE) ARM. | 
      
        | ID de modification : 177438394NATIVE_MEMTAG_SYNC
État par défaut : Désactivé pour toutes les applications.
 
 Active la vérification synchrone (SYNC) des tags de mémoire dans ce processus. Cet indicateur n'affecte que le matériel compatible avec la Memory Tagging Extension (MTE) ARM. Si NATIVE_MEMTAG_ASYNCet cette option sont activés, cette option est prioritaire et la MTE est activée en mode SYNC. | 
      
        | ID de modification : 184838306NEVER_SANDBOX_DISPLAY_APIS
État par défaut : Désactivé pour toutes les applications.
 
 Lorsque cette modification est activée, le bac à sable de l'API Display ne peut pas être appliqué à une activité de boîte aux lettres ou SCM. Les API Display continueront de définir des limites pour DisplayArea. Pour en savoir plus sur cette modification, consultez la section sur les 
           méthodes Display obsolètes de la page dédiée aux modifications de comportement d'Android 12. | 
      
        | ID de modification : 175319604NOTIFICATION_CANCELLATION_REASONS
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Permet aux écouteurs de notifications de comprendre les nouvelles raisons d'annulation plus spécifiques. | 
      
        | ID de modification : 167676448NOTIFICATION_TRAMPOLINE_BLOCK
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Pour améliorer les performances et l'expérience utilisateur, les applications qui ciblent Android 12 ne peuvent pas utiliser de services ni de broadcast receivers comme trampolines de notification. Pour en savoir plus sur cette modification, consultez Il n'est pas possible de créer des trampolines de notification à partir de services ou de récepteurs de diffusion. | 
      
        | ID de modification : 182185642NULL_TELEPHONY_THROW_NO_CB
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Utilisé pour vérifier si la version du SDK cible pour le processus actuel est Android 12 (niveau d'API 31) ou version ultérieure. S'applique aux méthodes suivantes :
              | 
      
        | ID de modification : 174042980OVERRIDE_MIN_ASPECT_RATIO
État par défaut : Désactivé pour toutes les applications.
 
 Cette modification contrôle toutes les modifications qui forcent un format minimal donné. L'activation de cette modification permet d'appliquer les formats minimaux suivants : Lorsque cette modification est activée pour un package d'application, le format minimal indiqué dans le fichier manifeste de l'application est remplacé par le plus grand format activé, sauf si la valeur du fichier manifeste de l'application est plus élevée. | 
      
        | ID de modification : 180326787OVERRIDE_MIN_ASPECT_RATIO_LARGE
État par défaut : Désactivé pour toutes les applications.
 
 Lorsque OVERRIDE_MIN_ASPECT_RATIOest également activé, l'activation de cette modification pour un package définit le format minimal de l'activité sur une valeur élevée, telle que définie parOVERRIDE_MIN_ASPECT_RATIO_LARGE_VALUE. | 
      
        | ID de modification : 180326845OVERRIDE_MIN_ASPECT_RATIO_MEDIUM
État par défaut : Désactivé pour toutes les applications.
 
 Lorsque OVERRIDE_MIN_ASPECT_RATIOest également activé, l'activation de cette modification pour un package définit le format minimal de l'activité sur une valeur moyenne telle que définie parOVERRIDE_MIN_ASPECT_RATIO_MEDIUM_VALUE. | 
      
        | ID de modification : 160794467PENDING_INTENT_EXPLICIT_MUTABILITY_REQUIRED
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Pour les applications ciblant Android 12 (niveau d'API 31) ou version ultérieure, vous devez spécifier la mutabilité de chaque objet PendingIntentque votre application crée. Cette exigence supplémentaire améliore la sécurité de votre application. Pour en savoir plus sur ce changement, consultez Les intents en attente doivent déclarer la mutabilité. | 
      
        | ID de modification : 165573442PREVENT_SETTING_PASSWORD_QUALITY_ON_PARENT
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Les applications d'administration ciblant Android 12 (niveau d'API 31) et versions ultérieures ne peuvent pas utiliser DevicePolicyManager.setPasswordQuality(ComponentName, int)pour définir la qualité du mot de passe sur l'instanceDevicePolicyManagerobtenue en appelantDevicePolicyManager.getParentProfileInstance(ComponentName).
             Ils doivent plutôt utiliserDevicePolicyManager.setRequiredPasswordComplexity(int)pour définir des exigences de mot de passe générales à l'échelle de l'appareil. | 
      
        | ID de modification : 174840628RATE_LIMIT_TOASTS
État par défaut : Cette modification ne peut pas être activée/désactivée. Il n'est enregistré que par le framework de compatibilité.
 
 Active la limitation du nombre d'appels de Toast.show()pour éviter de surcharger l'utilisateur avec trop de toasts en peu de temps. Toute tentative d'affichage d'un nombre de toasts supérieur à celui autorisé sur une période donnée entraîne la suppression du toast. | 
      
        | ID de modification : 171306433REQUIRE_EXACT_ALARM_PERMISSION
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Pour les applications ciblant Android 12 (niveau d'API 31) ou version ultérieure, l'autorisation Manifest.permission.SCHEDULE_EXACT_ALARMest requise pour utiliser les API permettant de définir des alarmes exactes, telles quesetExactAndAllowWhileIdle(int, long, PendingIntent)etsetAlarmClock(AlarmClockInfo, PendingIntent). | 
      
        | ID de modification : 182478738REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_ACTIVE_DATA_SUB_ID
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Pour les applications ciblant Android 12 (niveau d'API 31) et versions ultérieures, les applications doivent disposer de l'autorisation Manifest.permission.READ_PHONE_STATEpour pouvoir appelerTelephonyCallback.ActiveDataSubscriptionIdListener. | 
      
        | ID de modification : 184323934REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_CELL_INFO
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Pour les applications ciblant Android 12 (niveau d'API 31) et versions ultérieures, les applications doivent disposer de l'autorisation Manifest.permission.READ_PHONE_STATEpour pouvoir appelerTelephonyCallback.CellInfoListener. | 
      
        | ID de modification : 183164979REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_DISPLAY_INFO
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Pour les applications ciblant Android 12 (niveau d'API 31) et versions ultérieures, les applications doivent disposer de l'autorisation Manifest.permission.READ_PHONE_STATEpour pouvoir appelerTelephonyCallback.DisplayInfoListener. | 
      
        | ID de modification : 171032338RESTRICT_ADB_BACKUP
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Pour les applications ciblant Android 12 (niveau d'API 31) ou version ultérieure, adb backupest automatiquement activé pour les applications exécutées en mode débogable (android:debuggabledéfini surtrue) et n'est pas disponible pour les autres applications. | 
      
        | ID de modification : 175408749RESTRICT_DOMAINS
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Pour les applications ciblant Android 12 (niveau d'API 31) ou version ultérieure, la version mise à jour de l'API de validation des liens d'application est requise. Cette exigence signifie qu'une application doit déclarer des domaines dans un filtre d'intent qui inclut tous les éléments suivants :  
             android:autoVerify="true"Intent.ACTION_VIEWIntent.CATEGORY_BROWSABLEIntet.CATEGORY_DEFAULTSeuls IntentFilter.SCHEME_HTTPet/ouIntentFilter.SCHEME_HTTPS, sans aucun autre schéma Dans les versions antérieures d'Android, Intent.CATEGORY_BROWSABLEn'était pas obligatoire. D'autres schémas étaient autorisés. De plus, définirautoVerifysurtruedans n'importe quel filtre d'intent faisait implicitement croire que tous les filtres d'intent étaient définis surautoVerify="true". | 
      
        | ID de modification : 151105954SECURITY_EXCEPTION_ON_INVALID_ATTRIBUTION_TAG_CHANGE
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Pour les applications ciblant Android 12 (niveau d'API 31) ou version ultérieure, cette règle impose que tous les attributionTagsenvoyés ànoteOp(String, int, String),noteProxyOp(String, String)etstartOp(String, int, String)soient définis dans le fichier manifeste du package spécifié comme paramètre des méthodes. Pour activer cette modification, le package appelant noteOp(String, int, String)et le package spécifié comme paramètre de la méthode doivent tous deux avoir cette modification activée. | 
      
        | ID de modification : 143539591SELINUX_LATEST_CHANGES
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Pour les applications ciblant Android 12 (niveau d'API 31) ou version ultérieure, active les dernières modifications SELinux. La désactivation de cette modification pour une application ciblant Android 12 (niveau d'API 31) ou version ultérieure n'a aucun effet. Elle n'a pas non plus d'incidence sur les applications qui utilisent un ID utilisateur partagé. | 
      
        | ID de modification : 178111421SETTINGS_API_V2
État par défaut : Activé pour toutes les applications.
 
 La nouvelle API de préférences utilisateur permettant de valider les domaines marqués autoVerify=truedans les filtres d'intent AndroidManifest.xml n'est pas encore implémentée dans l'aperçu actuel de la plate-forme. Pour le moment, il est possible de prévisualiser les nouvelles modifications des préférences utilisateur en activant cet ID de modification et en utilisant les commandesadb shell pm set-app-links-user-selectionet similaires. | 
      
        | ID de modification : 183972877USE_SHORT_FGS_USAGE_INTERACTION_TIME
État par défaut : Activé pour les applications qui ciblent Android 12 (niveau d'API 31) ou version ultérieure.
 
 Pour les applications ciblant Android 12 (niveau d'API 31) ou version ultérieure, détermine s'il faut utiliser un délai avant expiration plus court avant d'élever le bucket de veille à ACTIVElorsque les applications démarrent un service de premier plan. |