Google сломала жизнь банковским троянам в новом Android.

Google выпустила обновление Android 16 QPR2, которое приносит заметные изменения в интерфейсе, инструментах для разработчиков и системных возможностях. Это первый релиз платформы, использующий механизм минорного SDK, то есть новые API и функции доставляются не только в рамках большого ежегодного обновления Android, а в промежуточных сборках.
Минорные SDK релизы позволяют добавлять возможности быстрее и с меньшим риском для совместимости приложений. В QPR2 изменения в основном носят добавочный характер, а возможные изменения поведения затрагивают главным образом безопасность и доступность, например защиту SMS с одноразовыми кодами или расширенную темную тему. Для работы с такими обновлениями в Android 16 появились новые поля в классе Build, которые позволяют приложению проверить не только основной номер SDK, но и минорную версию и безопасно вызывать дополнительные API, доступные именно в QPR2.
На уровне пользовательского опыта Android 16 QPR2 развивает персонализацию и доступность. В системе появилась расширенная темная тема для людей с пониженным зрением, светочувствительностью или просто тех, кто предпочитает темный интерфейс. При включении этой опции Android анализирует атрибут темы isLightTheme и при необходимости инвертирует цвета стандартных компонентов интерфейса вроде View, Jetpack Compose и WebView. Если приложение наследуется от стандартных тем DayNight, все делается автоматически, в других случаях разработчикам рекомендуют явно указывать isLightTheme в темной теме, чтобы избежать некорректной инверсии. Google подчеркивает, что это в первую очередь функция доступности, а не замена нормальной нативной темной темы, которая по прежнему считается обязательной для аккуратного и предсказуемого интерфейса.
Еще одно изменение касается внешнего вида рабочего стола. Пользователи получили возможность выбирать форму значков приложений, и выбранная форма применяется как к отдельным иконкам, так и к превью папок. Если разработчик не подготовил отдельную темизированную иконку, система может автоматически сгенерировать ее, применяя цветовой фильтр к обычному лаунчер значку. Дополнительно в Android 16 QPR2 появились категории для плиток быстрых настроек. В режиме редактирования шторки такие плитки группируются по типам, что упрощает поиск нужной функции и делает меню быстрых настроек менее хаотичным.
Обновился и системный экран "Поделиться". Теперь приложения могут оставаться интерактивными, пока открыт системный диалог выбора, и динамически обновлять контент, который пользователь собирается отправить, в рамках интерактивных сессий. Это позволяет, например, менять список доступных вариантов или актуализировать данные без закрытия шэра.
Для разработчиков Google расширила Linux окружение для разработки внутри Android. Теперь в нем можно запускать не только консольные утилиты, но и полноценные Linux GUI приложения в том же терминальном окружении. На уровне Android Runtime появился поколенческий сборщик мусора Generational CMC, который концентрируется на недавно выделенных объектах. По задумке это уменьшает нагрузку на CPU и положительно сказывается на энергопотреблении. Появились метрики взаимодействия с виджетами: приложения могут анализировать клики, прокрутки и показы, чтобы лучше понимать, как пользователи взаимодействуют с виджетами на рабочем столе.
Важный блок изменений связан с переходом экосистемы к размеру страницы памяти 16 КБ. В Android 16 реализованы оптимизации использования локального хранилища потоков, которые помогают экономить память как на системах с 16 КБ страницами, так и на устройствах с традиционными 4 КБ. В QPR2 добавлены ранние предупреждения для отладочных приложений, которые не выровнены под 16 КБ. Такой софт начинает получать системные уведомления об ошибочной конфигурации, чтобы разработчики заранее адаптировали код и библиотеки под будущие требования архитектуры и снизили риск проблем при массовом переходе.
На уровне мультимедиа и связи Android 16 QPR2 добавляет программную поддержку декодирования Immersive Audio Model and Formats, открытого формата пространственного аудио. Также в системный переключатель аудиовыхода напрямую интегрирована функция персонального аудиошеринга для Bluetooth LE Audio, что упрощает совместное прослушивание контента. В экосистеме Health Connect система теперь сама считает шаги по данным сенсоров устройства, и если приложению выдано разрешение на чтение шагов, оно может получать эту информацию из системного пакета. Такой подход упрощает код и делает трекинг более энергоэффективным. Кроме того, Health Connect научилась отслеживать дополнительные показатели вроде веса и субъективной оценки нагрузки в рамках тренировок.
Для упрощения миграций между устройствами появился новый Data Transfer API для сторонних разработчиков. Он должен повысить надежность переноса данных при переходе между Android и iOS и уменьшить количество ручных действий при переезде на новый смартфон.
В области приватности и безопасности QPR2 приносит сразу несколько новшеств. В систему встроены API для проверки разработчика при установке приложения и новые команды ADB, позволяющие эмулировать разные исходы такой проверки. При этом разработчики по прежнему могут свободно ставить свои сборки через ADB, минуя верификацию, чтобы тестировать приложения до выхода в прод. Существенно меняется работа с SMS, содержащими одноразовые пароли и хэши для автозаполнения. Для большинства приложений доставка таких сообщений теперь будет искусственно задерживаться на три часа. В этот период система не отправляет широковещательный интент RECEIVE_SMS и фильтрует обращения к базе SMS, а по истечении задержки делает сообщения доступными, что должно осложнить перехват одноразовых кодов злоумышленниками.
Еще одна новинка уровня платформы - режим Secure Lock Device. Это новый системный статус безопасности, который можно, например, активировать через сервис поиска устройства. В этом состоянии смартфон немедленно блокируется, для разблокировки нужен основной PIN, графический ключ или пароль, уведомления и быстрые элементы на экране блокировки скрываются, а биометрическая аутентификация может временно отключаться для повышения защиты.
Кроме пользовательских функций, Android 16 QPR2 содержит ряд изменений, ориентированных на производителей устройств и корпоративных заказчиков. Вместе с релизом вышла обновленная редакция документа определения совместимости Android 16, обновлен набор тестов Camera ITS и комплекты CTS Verifier, в том числе для Bluetooth MIDI, барометра, работы нескольких устройств и подключения к точкам доступа Wi-Fi. Для Better Together сценариев в QPR2 добавлен новый набор тестов подключения к Wi-Fi хотспотам, который помогает вендорам корректно реализовать совместную работу устройств.
На стороне сетевой подсистемы Android 16 получает сервис идентификации ОС по Bluetooth, который позволяет периферийным устройствам считывать уровень API Android и при необходимости включать отдельные оптимизации для смартфонов на этой платформе. Улучшены системные API для IMS, поддержки экстренного обратного вызова и управления трафиком голосовых и мультимедийных звонков. Для производителей автомобильных устройств расширены возможности API программной точки доступа Wi-Fi, которые позволяют, например, получить список отключенных клиентов и причины отключения.
Дополнительно Google продолжает развивать тактильную обратную связь. В Android 16 появляются нормализованные API для создания тактильных эффектов, которые позволяют собирать базовый набор "примитивов" вроде клика или короткой вибрации и добиваться более предсказуемого восприятия виброотклика на разных устройствах без индивидуальной ручной настройки для каждого смартфона.
Отдельного внимания заслуживают изменения, связанные с безопасностью и приватностью данных. В Android 16 QPR2 добавлен новый макрос SELinux для фильтрации некоторых системных вызовов драйверов GPU. Он ограничивает доступ к устаревшим и отладочным IOCTL в обычной рабочей среде, что усложняет эксплуатацию уязвимостей в графических драйверах и повышает стойкость системы к атакам. Еще одно практическое улучшение касается личного пространства на устройстве. Пользователи получили возможность импортировать файлы и фотографии напрямую в личное пространство из основного профиля через специальный ярлык "Добавить файлы". Системное приложение позволяет перемещать или копировать выбранные материалы в каталог загрузок внутри личного пространства. Реализация этой функции для конкретных моделей устройств остается на усмотрение производителей, но при ее наличии пользователю удобнее изолировать чувствительные данные от основного профиля.
Одновременно с QPR2 Google продолжает развивать механизмы бесшовных обновлений приложений и виртуализацию. За счет изменения порядка оптимизации кода время, когда крупные и критически важные приложения находятся в "замороженном" состоянии при обновлении, сокращается с секунд до десятков миллисекунд, что делает процесс менее заметным. Android Virtualization Framework получает улучшения для раннего запуска виртуальных машин, обновления Microdroid и поддержку защищенных виртуальных машин с размером страниц 16 КБ, что в перспективе позволяет выносить наиболее чувствительные компоненты системы в отдельные изолированные окружения.
Финальная версия Android 16 QPR2 постепенно приходит на устройства Pixel, которые не участвуют в бета или канарейских программах. Разработчики без физического Pixel могут использовать 64-битные системные образы Android 16 QPR2 в эмуляторе Android Studio. Участники беты QPR2, которые еще не перешли на Android 16 QPR3 Beta, могут выйти из программы и получить стабильное обновление по воздуху. Для работы с новыми возможностями Google рекомендует использовать последние канарейские сборки Android Studio Otter и следить за документацией Android 16 и Android 16 QPR2 на сайте для разработчиков.