ALWAYS_SANDBOX_DISPLAY_APIS Идентификатор изменения: 185004937 Состояние по умолчанию : Отключено для всех приложений.
При включении этой функции пакет будет подвергаться изоляции с помощью Display API независимо от режима отображения окна. Display API всегда будут предоставлять границы приложения. Чтобы узнать больше об этом изменении, см. раздел на странице изменений поведения Android 12, посвященный устаревшим методам отображения . |
AUTOFILL_NON_TEXT_REQUIRES_ON_RECEIVE_CONTENT_LISTENER Идентификатор изменения: 163400105 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 32) или выше.
Начиная с Android 12, платформа может предоставлять нетекстовые подсказки (например, изображения) с помощью расширенной системы автозаполнения (см. сервисы автозаполнения ). Для обработки этих подсказок приложение, как правило, должно реализовать API OnReceiveContentListener . Чтобы упростить внедрение этого API для приложений, которые ранее реализовали API InputConnection.commitContent(InputContentInfo, int, Bundle) , мы повторно используем этот API в качестве резервного варианта, если OnReceiveContentListener еще не реализован в приложении. Этот резервный вариант включен только в Android 12 (уровень API 31). Данное изменение с этим ID отключает резервный вариант, так что приложения, ориентированные на Android 12 (уровень API 32) и выше, должны реализовать API OnReceiveContentListener , чтобы принимать нетекстовые подсказки. |
BLOCK_FLAG_SLIPPERY Идентификатор изменения: 157929241 Состояние по умолчанию : Включено для всех приложений.
Для приложений, работающих на Android 12 (уровень API 31), проверяется, используется ли флаг FLAG_SLIPPERY с какими-либо окнами в приложении. Мы предполагаем, что этот флаг, скорее всего, используется только системными компонентами, поскольку это неподдерживаемое поле . В этом случае его использование будет ограничено. |
BLOCK_GPS_STATUS_USAGE Идентификатор изменения: 144027538 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Для приложений, ориентированных на Android 12 (уровень API 31) и выше, все использование API GpsStatus должно быть заменено на использование API GnssStatus . |
BLOCK_IMMUTABLE_PENDING_INTENTS Идентификатор изменения: 171317480 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Для приложений, ориентированных на Android 12 (уровень API 31) и выше, неизменяемые данные Объекты PendingIntent , передаваемые в API определения местоположения, вызовут исключение IllegalArgumentException. |
BLOCK_PENDING_INTENT_SYSTEM_API_USAGE Идентификатор изменения: 169887240 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Для приложений, ориентированных на Android 12 (уровень API 31) и выше, системные API LocationRequest нельзя использовать с запросами местоположения PendingIntent . |
BLOCK_UNTRUSTED_TOUCHES Идентификатор изменения: 158002302 Состояние по умолчанию : Включено для всех приложений.
Для обеспечения безопасности системы и удобства использования Android 12 предотвращает обработку приложениями событий касания в тех случаях, когда наложение блокирует работу приложения небезопасным образом. Чтобы узнать больше об этом изменении, см. раздел «Ненадежные события касания заблокированы» . |
CALL_ACTIVITY_RESULT_BEFORE_RESUME Идентификатор изменения: 78294732 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 32) или выше.
Для приложений, ориентированных на Android 12 (уровень API 32) и выше, корректируется жизненный цикл результата активности, чтобы гарантировать, что активность получит результат активности непосредственно перед возобновлением. |
CAMERA_MIC_INDICATORS_NOT_PRESENT Идентификатор изменения: 162547999 Состояние по умолчанию : Отключено для всех приложений.
Указывает, что данное устройство поддерживает индикаторы камеры и микрофона. Если индикатор присутствует, значение будет false , поскольку метод CompatChanges#isChangeEnabled возвращает true если идентификатор изменения отсутствует. |
CANNOT_INSTALL_WITH_BAD_PERMISSION_GROUPS Идентификатор изменения: 146211400 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 32) или выше.
Для приложений, ориентированных на Android 12 (уровень API 32) и выше, менеджер пакетов не установит пакет, если группы разрешений некорректно сформированы. Группы разрешений должны использоваться совместно только приложениями, имеющими общий сертификат. Если разрешение принадлежит группе, эта группа также должна быть определена. |
CHANGE_ID_AUTH_STATE_DENIED Идентификатор изменения: 181350407 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Для клиентских приложений, ориентированных на Android 12 (уровень API 31) и выше, при попытке отправить сообщение в nanoapp в состоянии отказа в авторизации генерируется исключение SecurityException . |
CHANGE_ID_SAMPLING_RATE_SENSORS_PERMISSION Идентификатор изменения: 136069189 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Для приложений, ориентированных на Android 12 (уровень API 31) и выше, генерируется исключение SecurityException , если у них отсутствует разрешение HIGH_SAMPLING_RATE_SENSORS , они работают в режиме отладки и запрашивают частоту дискретизации выше 200 Гц. |
DELIVER_HISTORICAL_LOCATIONS Идентификатор изменения: 73144566 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Для приложений, ориентированных на Android 12 (уровень API 31) и выше, при определенных условиях клиенты определения местоположения могут получать исторические данные о местоположении (за период до настоящего времени). |
DISPLAY_INFO_NR_ADVANCED_SUPPORTED Идентификатор изменения: 181658987 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Для приложений, ориентированных на Android 12 (уровень API 31) и выше, обеспечивается обратная совместимость с изменениями в TelephonyDisplayInfo . |
DISPLAY_MODE_RETURNS_PHYSICAL_REFRESH_RATE Идентификатор изменения: 170503758 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Для приложений, ориентированных на Android 12 (уровень API 31) и выше, платформа может снизить частоту кадров приложения до делителя частоты обновления экрана, если это предпочтительнее (например, если приложение вызвало Surface.setFrameRate(float, int) ). Приложения будут испытывать обратные вызовы Choreographer.postFrameCallback(Choreographer.FrameCallback) и обратное давление при сниженной частоте кадров. Приложения используют Display.getRefreshRate() и Display.Mode.getRefreshRate() для определения частоты обновления экрана. Display.getRefreshRate() всегда возвращает частоту кадров приложения, а не физическую частоту обновления экрана, чтобы приложения могли корректно регулировать частоту кадров. Display.Mode.getRefreshRate() возвращает частоту кадров приложения, если скомпилировано для предыдущей версии, а начиная с Android 12 (уровень API 31) — физическую частоту обновления экрана. |
DOWNSCALED Идентификатор изменения: 168419799 Состояние по умолчанию : Отключено для всех приложений.
Это изменение является определяющим фактором для всех изменений масштабирования буфера для каждого приложения. Включение этого изменения позволяет применять следующие коэффициенты масштабирования: Если для пакета приложения включено это изменение, размер приложения принудительно изменяется до максимального включенного коэффициента масштабирования. Например, используется 80%, если включены как 80%, так и 70% ( DOWNSCALE_80 и DOWNSCALE_70 ). |
DOWNSCALE_30 Идентификатор изменения: 189970040 Состояние по умолчанию : Отключено для всех приложений.
Если DOWNSCALED также включен, то активация этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 30% вертикального и горизонтального разрешения реального дисплея. |
DOWNSCALE_35 Идентификатор изменения: 189969749 Состояние по умолчанию : Отключено для всех приложений.
Если DOWNSCALED также включен, то активация этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 35% вертикального и горизонтального разрешения реального дисплея. |
DOWNSCALE_40 Идентификатор изменения: 189970038 Состояние по умолчанию : Отключено для всех приложений.
Если DOWNSCALED также включен, то активация этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 40% вертикального и горизонтального разрешения реального дисплея. |
DOWNSCALE_45 Идентификатор изменения: 189969782 Состояние по умолчанию : Отключено для всех приложений.
Если DOWNSCALED также включен, то активация этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 45% вертикального и горизонтального разрешения реального дисплея. |
DOWNSCALE_50 Идентификатор изменения: 176926741 Состояние по умолчанию : Отключено для всех приложений.
Если DOWNSCALED также включен, то активация этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 50% вертикального и горизонтального разрешения реального дисплея. |
DOWNSCALE_55 Идентификатор изменения: 189970036 Состояние по умолчанию : Отключено для всех приложений.
Если DOWNSCALED также включен, то активация этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 55% вертикального и горизонтального разрешения реального дисплея. |
DOWNSCALE_60 Идентификатор изменения: 176926771 Состояние по умолчанию : Отключено для всех приложений.
Если DOWNSCALED также включен, то активация этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 60% вертикального и горизонтального разрешения реального дисплея. |
DOWNSCALE_65 Идентификатор изменения: 189969744 Состояние по умолчанию : Отключено для всех приложений.
Если DOWNSCALED также включен, то активация этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 65% вертикального и горизонтального разрешения реального дисплея. |
DOWNSCALE_70 Идентификатор изменения: 176926829 Состояние по умолчанию : Отключено для всех приложений.
Если DOWNSCALED также включен, то активация этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 70% вертикального и горизонтального разрешения реального дисплея. |
DOWNSCALE_75 Идентификатор изменения: 189969779 Состояние по умолчанию : Отключено для всех приложений.
Если DOWNSCALED также включен, то активация этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 75% вертикального и горизонтального разрешения реального дисплея. |
DOWNSCALE_80 Идентификатор изменения: 176926753 Состояние по умолчанию : Отключено для всех приложений.
Если DOWNSCALED также включен, то активация этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 80% вертикального и горизонтального разрешения реального дисплея. |
DOWNSCALE_85 Идентификатор изменения: 189969734 Состояние по умолчанию : Отключено для всех приложений.
Если DOWNSCALED также включен, то активация этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 85% вертикального и горизонтального разрешения реального дисплея. |
DOWNSCALE_90 Идентификатор изменения: 182811243 Состояние по умолчанию : Отключено для всех приложений.
Если DOWNSCALED также включен, то активация этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 90% вертикального и горизонтального разрешения реального дисплея. |
DO_NOT_DOWNSCALE_TO_1080P_ON_TV Идентификатор изменения: 157629738 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Приложения для Android TV, ориентированные на Android 12 (уровень API 31) и выше, должны поддерживать любой размер окна, включая окна размером более 1080p. Приложения, ориентированные на более ранние версии Android, не рассчитаны на окна размером более 1080p, поэтому при необходимости их окна масштабируются до 1080p. |
DROP_CLOSE_SYSTEM_DIALOGS Идентификатор изменения: 174664120 Состояние по умолчанию : Включено для всех приложений.
Для улучшения пользовательского контроля при взаимодействии с приложениями и системой, действие интента ACTION_CLOSE_SYSTEM_DIALOGS устарело, начиная с Android 12. Чтобы узнать больше об этом изменении, см. раздел «Приложения не могут закрывать системные диалоговые окна» . |
ENABLE_CHECKS_FOR_PRIVATE_FILES Идентификатор изменения: 172100307 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Приложения, ориентированные на Android 12 (уровень API 31) и выше, не могут вставлять или обновлять приватные файлы с помощью медиа-провайдера. |
ENABLE_DEFERRED_SCAN Идентификатор изменения: 180326732 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Включите эту опцию, чтобы отложить сканирование, запускаемое в рамках метода MediaProvider#update() . |
ENABLE_GET_CALL_STATE_PERMISSION_PROTECTION Идентификатор изменения: 157233955 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Для приложений, ориентированных на Android 12 (уровень API 31) и выше, включается защита READ_PHONE_STATE для API, запрашивающих и уведомляющих о состоянии вызова, таких как TelecomManager#getCallState , TelephonyManager.getCallStateForSubscription() и TelephonyCallback.CallStateListener . |
ENABLE_GET_PHONE_ACCOUNT_PERMISSION_PROTECTION Идентификатор изменения: 183407956 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Для приложений, ориентированных на Android 12 (уровень API 31) и выше, включается защита READ_PHONE_NUMBERS или READ_PRIVILEGED_PHONE_STATE при вызове getPhoneAccount(PhoneAccountHandle) . |
ENABLE_INCLUDE_ALL_VOLUMES Идентификатор изменения: 182734110 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Включите эту опцию, чтобы включить в базу данных строки файлов из недавно отмонтированного тома в MediaProvider#query . |
ENABLE_RAW_MANAGE_EXTERNAL_STORAGE_ACCESS Идентификатор изменения: 178209446 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Включите эту опцию, чтобы разрешить приложениям, обладающим разрешением Manifest.permission.MANAGE_EXTERNAL_STORAGE , запрашивать доступ к внешнему хранилищу в необработанном виде. |
ENFORCE_MINIMUM_WINDOW_ON_INEXACT_ALARMS Идентификатор изменения: 185199076 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Для приложений, ориентированных на Android 12 (уровень API 31) и выше, все неточные оповещения должны иметь минимальный размер окна, который, как ожидается, составляет несколько минут. На практике любые оповещения, требующие меньшего окна, аналогичны точным оповещениям и должны использовать соответствующие предоставленные API, такие как setExact(int, long, PendingIntent) . Для неточных оповещений с указанием более коротких окон система увеличит их продолжительность. |
ENFORCE_NATIVE_SHARED_LIBRARY_DEPENDENCIES Идентификатор изменения: 142191088 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Приложения, ориентированные на Android 12 (уровень API 31) и выше, должны объявлять зависимости от общедоступных нативных библиотек, определенных производителем устройства, используя тег uses-native-library в файле AndroidManifest.xml . Если какая-либо из зависимостей не может быть удовлетворена — например, одна из зависимостей отсутствует — менеджер пакетов не установит приложение. Зависимость может быть указана как необязательная с помощью атрибута android:required в теге, в этом случае неудовлетворение зависимости не приведет к остановке установки. После установки приложению предоставляются только те нативные разделяемые библиотеки, которые указаны в манифесте приложения. Вызов функции dlopen для нативной разделяемой библиотеки, которая не указана в манифесте приложения, завершится ошибкой, даже если она фактически существует на устройстве. |
ENFORCE_STRICT_QUERY_BUILDER Идентификатор изменения: 143231523 Состояние по умолчанию : Отключено для всех приложений.
При включении SQLiteQueryBuilder проверяет все параметры запросов CalendarProvider2 на наличие вредоносных аргументов. |
FGS_BG_START_RESTRICTION_CHANGE_ID Идентификатор изменения: 170668199 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Для приложений, ориентированных на Android 12 (уровень API 31) и выше, устанавливается ограничение на запуск служб переднего плана во время работы в фоновом режиме. |
FGS_START_EXCEPTION_CHANGE_ID Идентификатор изменения: 174041399 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Для приложений, ориентированных на Android 12 (уровень API 31) и выше, эта функция позволяет системе генерировать исключение IllegalStateException если приложение пытается запустить службу переднего плана, работая в фоновом режиме. |
Идентификатор изменения: 156215187 Состояние по умолчанию : Отключено для всех приложений.
Для приложений, ориентированных на Android 12 (уровень API 31) и выше, завершайте InputConnection , когда устройство перестает быть non-interactive . Если это разрешено текущим input method , текущее входное соединение будет finished всякий раз, когда устройство перестанет быть интерактивным. Если эта функция не включена, текущее входное соединение будет незаметно деактивировано, когда устройство перестанет быть интерактивным, а при повторном переходе устройства в интерактивное состояние будет вызвана пара вызовов onFinishInput() и onStartInput() . |
FORCE_DISABLE_HEVC_SUPPORT Идентификатор изменения: 174227820 Состояние по умолчанию : Отключено для всех приложений.
Принудительное отключение поддержки HEVC для приложений. Приложения должны указывать поддерживаемые ими возможности воспроизведения мультимедиа в своем манифесте, но этот флаг можно использовать для принудительного отключения поддержки HEVC, что приводит к принудительному перекодированию при доступе к медиафайлам, закодированным в HEVC. Установка этого флага переопределяет любые настройки ОС по умолчанию для приложений. По умолчанию он отключен, то есть приоритет имеют настройки ОС по умолчанию. Если включены и этот флаг, и FORCE_ENABLE_HEVC_SUPPORT , ОС игнорирует оба флага. |
FORCE_ENABLE_HEVC_SUPPORT Идентификатор изменения: 174228127 Состояние по умолчанию : Отключено для всех приложений.
Принудительное включение поддержки HEVC для приложений. Приложения должны указывать поддерживаемые ими возможности воспроизведения мультимедиа в своем манифесте, но этот флаг можно использовать для принудительного включения поддержки HEVC, что позволяет избежать перекодирования при доступе к медиафайлам, закодированным в HEVC. Установка этого флага переопределяет любые настройки ОС по умолчанию для приложений. По умолчанию он отключен, то есть приоритет имеют настройки ОС по умолчанию. Если включены и этот флаг, и FORCE_DISABLE_HEVC_SUPPORT , ОС игнорирует оба флага. |
FORCE_NON_RESIZE_APP Идентификатор изменения: 181136395 Состояние по умолчанию : Отключено для всех приложений.
Устанавливает для пакетов, к которым применяется, запрет изменения размера. |
FORCE_RESIZE_APP Идентификатор изменения: 174042936 Состояние по умолчанию : Отключено для всех приложений.
Принудительно делает изменяемые размеры пакетов, к которым применяется это свойство. Мы разрешаем изменение размера только в полноэкранном оконном режиме, но не принуждаем приложение к переходу в многооконный режим с возможностью изменения размера. |
HIDE_PROP_ICUBINARY_DATA_PATH Идентификатор изменения: 171979766 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Для приложений, ориентированных на Android 12 (уровень API 31) и выше, удаляется доступ к свойству android.icu.impl.ICUBinary.dataPath . |
IGNORE_ALLOW_BACKUP_IN_D2D Идентификатор изменения: 183147249 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Для приложений, ориентированных на Android 12 (уровень API 31) и выше, android:allowBackup игнорируется при миграции приложений с одного устройства на другое (D2D). |
IGNORE_FULL_BACKUP_CONTENT_IN_D2D Идентификатор изменения: 180523564 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Для приложений, ориентированных на Android 12 (уровень API 31) и выше, правила включения и исключения, указанные с помощью android:fullBackupContent игнорируются во время передачи данных между устройствами (D2D). |
IME_AUTOFILL_DEFAULT_SUPPORTED_LOCALES_IS_EMPTY Идентификатор изменения: 169273070 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Для приложений, ориентированных на Android 12 (уровень API 31) и выше, getSupportedLocales() теперь возвращает пустой список локалей, если он не задан, вместо системной локали по умолчанию. |
IS_BACKUP_SERVICE_ACTIVE_ENFORCE_PERMISSION_IN_SERVICE Идентификатор изменения: 158482162 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Для приложений, ориентированных на Android 12 (уровень API 31) и выше, разрешение BACKUP , необходимое для функции isBackupServiceActive() обеспечивается на стороне службы, а не на стороне клиента в BackupManager . |
KEYSTORE_OPERATION_CREATION_MAY_FAIL Идентификатор изменения: 169897160 Состояние по умолчанию : Отключено для всех приложений.
При включении этой функции создание операций хранилища ключей может завершиться неудачей в соответствии с новой стратегией очистки. Ранее хранилище ключей работало, исходя из предположения, что создание криптографических операций всегда завершается успешно. Однако бэкэнд KeyMint имеет лишь ограниченное количество слотов для операций. Чтобы создать видимость «бесконечного» количества слотов для операций, демон Keystore удалял наименее часто используемые операции, если свободных слотов не было. В результате корректные операции могли преждевременно завершаться. Это делало AndroidKeystore уязвимым для атак типа «отказ в обслуживании» (DoS) и непреднамеренной блокировки. Например, если несколько приложений одновременно активировались из-за оптимизации управления питанием и пытались выполнить криптографические операции, они начинали прерывать операции друг друга, не продвигаясь дальше. Чтобы разорвать тупиковые ситуации и предотвратить попытки DoS-атак, мы изменили стратегию отсеивания таким образом, что она отдает предпочтение клиентам, которые используют небольшое количество слотов операций в течение короткого времени. В результате отдельные операции, которые не остаются неактивными более 5 секунд, почти всегда завершаются без помех со стороны стратегии отсеивания. Некоторые операции, связанные с шифрованием файловой системы, по-прежнему могут отсеивать даже эти операции, но такие случаи крайне редки. В качестве побочного эффекта этой новой стратегии отсеивания, создание теперь может завершиться неудачей, если у клиента меньше возможностей отсеивания, чем у всех существующих операций. Стратегия отсечения : Чтобы найти подходящего кандидата, мы вычисляем штраф для вызывающей стороны и каждой существующей операции. Штраф является обратной величиной силы отсечения (для вызывающей стороны) или сопротивления отсечению (для существующей операции). Чтобы вызывающая сторона могла отсечь операцию, она должна найти операцию со штрафом выше, чем у нее самой. Более подробную информацию о стратегии отсечения см. в реализации operation.rs . На Android 11 (уровень API 30) и ниже KeyStore2 будет опрашивать демон Keystore на наличие свободного слота для операции. Для приложений, ориентированных на Android 11 (уровень API 30) и ниже, будет казаться, что инициализация объекта шифрования и подписи всегда проходит успешно, однако получение операции может занять больше времени. Все версии Android выигрывают от более справедливого планирования слотов для операций и большей вероятности успешного завершения операции. |
LOCK_DOWN_CLOSE_SYSTEM_DIALOGS Идентификатор изменения: 174664365 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Для приложений, ориентированных на Android 12 (уровень API 31) и выше, Intent.ACTION_CLOSE_SYSTEM_DIALOGS не может быть отправлен, если у приложения также нет разрешения android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS . Обратите внимание, что это более ограничительная версия #DROP_CLOSE_SYSTEM_DIALOGS , которая ожидает, что приложение прекратит отправку Intent.ACTION_CLOSE_SYSTEM_DIALOGS после запуска приложения на Android 12 (уровень API 31) или выше. |
LOCK_DOWN_COLLAPSE_STATUS_BAR Идентификатор изменения: 173031413 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Для приложений, ориентированных на Android 12 (уровень API 31) и выше, требуется разрешение Manifest.permission.STATUS_BAR для сворачивания панелей строки состояния по соображениям безопасности. Это использовалось вредоносными программами для предотвращения доступа пользователя к важным уведомлениям. |
LOW_POWER_EXCEPTIONS Идентификатор изменения: 168936375 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Для приложений, ориентированных на Android 12 (уровень API 31) и выше, все объекты LocationRequest , помеченные как энергоэффективные, генерируют исключения, если у вызывающей стороны нет разрешения LOCATION_HARDWARE , вместо того, чтобы молча отклонять часть запроса, относящуюся к энергоэффективности. |
MISSING_EXPORTED_FLAG Идентификатор изменения: 150232615 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Для приложений, ориентированных на Android 12 (уровень API 31) и выше, необходимо явно указывать значение атрибута android:exported всякий раз, когда определяется фильтр намерений. Чтобы узнать больше об этом изменении, см. раздел «Более безопасный экспорт компонентов» . |
NATIVE_HEAP_POINTER_TAGGING_APP_ZYGOTE Идентификатор изменения: 207557677 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 32) или выше.
Для приложений, ориентированных на Android 12 (уровень API 32) и выше, в процессе AppZygote и его потомках выделение памяти в куче осуществляется с использованием ненулевого тега в старшем байте. Чтобы узнать больше об этом изменении, см. раздел «Помеченные указатели» . |
NATIVE_HEAP_ZERO_INIT Идентификатор изменения: 178038272 Состояние по умолчанию : Отключено для всех приложений.
Включить автоматическую инициализацию нулями выделенной памяти в собственной куче. |
NATIVE_MEMTAG_ASYNC Идентификатор изменения: 135772972 Состояние по умолчанию : Отключено для всех приложений.
Включить асинхронную (ASYNC) проверку тегов памяти в этом процессе. Этот флаг влияет только на оборудование, поддерживающее расширение ARM Memory Tagging Extension (MTE). |
NATIVE_MEMTAG_SYNC Идентификатор изменения: 177438394 Состояние по умолчанию : Отключено для всех приложений.
Включает синхронную (SYNC) проверку тегов памяти в этом процессе. Этот флаг влияет только на оборудование, поддерживающее расширение ARM Memory Tagging Extension (MTE). Если включены и NATIVE_MEMTAG_ASYNC , и этот параметр, приоритет имеет этот параметр, и MTE включается в синхронном режиме. |
NEVER_SANDBOX_DISPLAY_APIS Идентификатор изменения: 184838306 Состояние по умолчанию : Отключено для всех приложений.
При включении этой функции предотвращается применение песочницы Display API к действиям типа letterbox или SCM. Display API по-прежнему будут предоставлять границы DisplayArea. Чтобы узнать больше об этом изменении, см. раздел на странице изменений поведения Android 12, посвященный устаревшим методам отображения . |
NOTIFICATION_CANCELLATION_REASONS Идентификатор изменения: 175319604 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Позволяет слушателям уведомлений получать более конкретную информацию о новых причинах отмены. |
NOTIFICATION_TRAMPOLINE_BLOCK Идентификатор изменения: 167676448 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Для повышения производительности и удобства использования приложений, ориентированных на Android 12, запрещено использовать сервисы или широковещательные приемники в качестве каналов для отправки уведомлений. Чтобы узнать больше об этом изменении, см. раздел «Создание батутов уведомлений из служб или широковещательных приемников невозможно» . |
NULL_TELEPHONY_THROW_NO_CB Идентификатор изменения: 182185642 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Используется для проверки того, соответствует ли целевая версия SDK для текущего процесса Android 12 (уровень API 31) или выше. Применяется к следующим методам: |
OVERRIDE_MIN_ASPECT_RATIO Идентификатор изменения: 174042980 Состояние по умолчанию : Отключено для всех приложений.
Это изменение является своего рода «привратником» для всех изменений, которые принудительно устанавливают заданное минимальное соотношение сторон. Включение этого изменения позволяет применять следующие минимальные соотношения сторон: Если это изменение включено для пакета приложения, минимальное соотношение сторон, указанное в манифесте приложения, заменяется наибольшим доступным соотношением сторон, если только значение в манифесте приложения не выше. |
OVERRIDE_MIN_ASPECT_RATIO_LARGE Идентификатор изменения: 180326787 Состояние по умолчанию : Отключено для всех приложений.
Если OVERRIDE_MIN_ASPECT_RATIO также включен, то при включении этого изменения для пакета минимальное соотношение сторон действия устанавливается на большое значение, определенное параметром OVERRIDE_MIN_ASPECT_RATIO_LARGE_VALUE . |
OVERRIDE_MIN_ASPECT_RATIO_MEDIUM Идентификатор изменения: 180326845 Состояние по умолчанию : Отключено для всех приложений.
Если OVERRIDE_MIN_ASPECT_RATIO также включен, то при включении этого изменения для пакета минимальное соотношение сторон действия устанавливается на среднее значение, определенное параметром OVERRIDE_MIN_ASPECT_RATIO_MEDIUM_VALUE . |
PENDING_INTENT_EXPLICIT_MUTABILITY_REQUIRED Идентификатор изменения: 160794467 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Для приложений, ориентированных на Android 12 (уровень API 31) и выше, необходимо указать возможность изменения каждого объекта PendingIntent , создаваемого вашим приложением. Это дополнительное требование повышает безопасность вашего приложения. Чтобы узнать больше об этом изменении, см. раздел «Ожидающие намерения должны объявлять о возможности изменения» . |
PREVENT_SETTING_PASSWORD_QUALITY_ON_PARENT Идентификатор изменения: 165573442 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Административные приложения, ориентированные на Android 12 (уровень API 31) и выше, не могут использовать DevicePolicyManager.setPasswordQuality(ComponentName, int) для установки качества пароля в экземпляре DevicePolicyManager , полученном путем вызова DevicePolicyManager.getParentProfileInstance(ComponentName) . Вместо этого им следует использовать DevicePolicyManager.setRequiredPasswordComplexity(int) для установки общих требований к паролю для всего устройства. |
RATE_LIMIT_TOASTS Идентификатор изменения: 174840628 Состояние по умолчанию : Это изменение нельзя переключить. Оно регистрируется только системой совместимости.
Включает ограничение количества вызовов Toast.show() , чтобы предотвратить перегрузку пользователя слишком большим количеством всплывающих уведомлений за ограниченное время. Любая попытка показать больше уведомлений, чем разрешено за определенный промежуток времени, приводит к удалению уведомления. |
REQUIRE_EXACT_ALARM_PERMISSION Идентификатор изменения: 171306433 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Для приложений, ориентированных на Android 12 (уровень API 31) и выше, необходимо иметь разрешение Manifest.permission.SCHEDULE_EXACT_ALARM , чтобы использовать любые API для установки точных будильников, такие как setExactAndAllowWhileIdle(int, long, PendingIntent) и setAlarmClock(AlarmClockInfo, PendingIntent) . |
REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_ACTIVE_DATA_SUB_ID Идентификатор изменения: 182478738 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Для приложений, ориентированных на Android 12 (уровень API 31) и выше, необходимо иметь разрешение Manifest.permission.READ_PHONE_STATE , чтобы вызывать TelephonyCallback.ActiveDataSubscriptionIdListener . |
REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_CELL_INFO Идентификатор изменения: 184323934 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Для приложений, ориентированных на Android 12 (уровень API 31) и выше, необходимо иметь разрешение Manifest.permission.READ_PHONE_STATE , чтобы вызывать TelephonyCallback.CellInfoListener . |
REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_DISPLAY_INFO Идентификатор изменения: 183164979 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Для приложений, ориентированных на Android 12 (уровень API 31) и выше, необходимо иметь разрешение Manifest.permission.READ_PHONE_STATE , чтобы вызывать TelephonyCallback.DisplayInfoListener . |
RESTRICT_ADB_BACKUP Идентификатор изменения: 171032338 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Для приложений, ориентированных на Android 12 (уровень API 31) и выше, adb backup автоматически включается для приложений, работающих в режиме отладки ( android:debuggable установлен в true ) и недоступных для других приложений. |
RESTRICT_DOMAINS Идентификатор изменения: 175408749 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Для приложений, ориентированных на Android 12 (уровень API 31) и выше, требуется обновленная версия API проверки ссылок приложения. Это требование означает, что приложение должно объявить домены внутри фильтра намерений, который включает в себя все следующие элементы: -
android:autoVerify="true" -
Intent.ACTION_VIEW -
Intent.CATEGORY_BROWSABLE -
Intet.CATEGORY_DEFAULT - Только
IntentFilter.SCHEME_HTTP и/или IntentFilter.SCHEME_HTTPS , без других схем.
В более ранних версиях Android Intent.CATEGORY_BROWSABLE не был обязательным, допускались другие схемы, и установка autoVerify в true в любом фильтре намерения неявно создавала впечатление, что все фильтры намерений установлены в значение autoVerify="true" . |
SECURITY_EXCEPTION_ON_INVALID_ATTRIBUTION_TAG_CHANGE Идентификатор изменения: 151105954 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Для приложений, ориентированных на Android 12 (уровень API 31) и выше, обеспечивается, что все attributionTags , отправляемые в функции noteOp(String, int, String) , noteProxyOp(String, String) и startOp(String, int, String) определены в манифесте пакета, указанного в качестве параметра методов. Для активации этого изменения необходимо, чтобы как пакет, вызывающий noteOp(String, int, String) , так и пакет, указанный в качестве параметра метода, имели включенную эту функцию. |
SELINUX_LATEST_CHANGES Идентификатор изменения: 143539591 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Для приложений, ориентированных на Android 12 (уровень API 31) и выше, активируются последние изменения SELinux. Отключение этого изменения для приложения, ориентированного на Android 12 (уровень API 31) или выше, ничего не меняет. Не оказывает никакого эффекта на приложения, использующие общий идентификатор пользователя. |
SETTINGS_API_V2 Идентификатор изменения: 178111421 Состояние по умолчанию : Включено для всех приложений.
Новый API для проверки пользовательских настроек, помеченный параметром autoVerify=true в фильтрах намерений AndroidManifest.xml, пока не реализован в текущей предварительной версии платформы. На данный момент можно предварительно ознакомиться с изменениями пользовательских настроек, включив этот ChangeId и используя команды adb shell pm set-app-links-user-selection и аналогичные. |
USE_SHORT_FGS_USAGE_INTERACTION_TIME Идентификатор изменения: 183972877 Состояние по умолчанию : Включено для приложений, ориентированных на Android 12 (уровень API 31) или выше.
Для приложений, ориентированных на Android 12 (уровень API 31) и выше, определяется, следует ли использовать более короткий тайм-аут перед повышением статуса режима ожидания до ACTIVE при запуске приложения в фоновом режиме. |