Содержание статьи
Почитать
Чего ожидать в Android Q
Android Q May Block Background Clipboard Reads, Better Protect Your Media Files, Support Downgrading Apps, and more — журналисты XDA Developers продолжают изучать непонятно как попавшую к ним раннюю сборку Android Q.
Ранее они уже рассказывали о новом шрифте, изменяемых цветовых схемах, темной теме интерфейса, а также о новом полномочии для приложений, которое позволит отключать доступ к местоположению, когда приложение находится в фоне (разрешение ACCESS_BACKGROUND_LOCATION
, примерно такое же есть в iOS).
Теперь они рассказывают о более низкоуровневых вещах:
- Запрет на чтение буфера обмена в фоне. В Android любое приложение может прочитать буфер обмена безо всяких разрешений. Это security-фейл из-за ошибки проектирования: читать буфер обмена приложениям нужно, чтобы пользователь смог скопировать текст в их поле ввода. Судя по всему, инженеры Google не придумали, как безболезненно устранить этот недочет, поэтому решили хотя бы частично обезопасить пользователей, введя новое разрешение —
READ_CLIPBOARD_IN_BACKGROUND
. Без этого разрешения приложения не смогут читать буфер обмена, находясь в фоне, а получить его может только системный софт из состава прошивки. - Возможность даунгрейдить приложения. В Android Q появятся доступные только приложениям из комплекта прошивки разрешения
PACKAGE_ROLLBACK_AGENT
иMANAGE_ROLLBACKS
, а у командыpm
, позволяющей устанавливать и удалять приложения из командной строки, появится флаг--enable-rollback
. Это свидетельство, что добавится возможность откатиться до старых версий приложения. - Ограничение на доступ к файлам на карте памяти. Сейчас, имея разрешения
READ_EXTERNAL_STORAGE
иWRITE_EXTERNAL_STORAGE
, приложения могут читать всю карту памяти целиком, включая любые файлы, не принадлежащие самому приложению. Так сделано потому, что в картах памяти используется файловая система без разграничения полномочий, а также потому, что бесполезно разграничивать доступ на носителе, который в любой момент можно вынуть и прочитать все данные. Android Q позволит разграничить доступ к файлам на уровне их типов; появятся разрешенияREAD_MEDIA_AUDIO
,READ_MEDIA_VIDEO
иREAD_MEDIA_IMAGES
.
Модульный Android
APEX in Android Q: What Could Be The Biggest Thing Since Project Treble — статья об APEX, новой подсистеме Android, которая должна смягчить проблему с обновлениями ОС в будущем.
Как мы все знаем, Google испытывает огромные проблемы с обновлениями Android. Только малая часть производителей соглашается поддерживать устройства в течение хотя бы двух лет. Остальные же выпускают на рынок смартфон и переходят к разработке нового. А старое устройство если уж и обновляется, то с очень большими задержками.
Чтобы как-то решить эту проблему, Google уже реализовала идею патчей безопасности и инициировала Project Treble. Последний разделяет Android на две независимые части, которые можно обновлять отдельно друг от друга. Идея здесь в том, что обычно проблемы с обновлениями возникают из-за производителей оборудования, которые отказываются обновлять драйверы своих устройств для новых версий Android. Project Treble позволяет обновлять ОС, не затрагивая драйверы и ядро Android.
Однако на этом Google не остановилась. В Android Q Google собирается внедрить подсистему APEX, которая позволит обновлять куски Android даже в обход производителя устройства. По своей сути APEX — это пакетный менеджер, очень похожий на тот, что используется в дистрибутивах Linux и новой операционке Google Fuchsia. Работает он примерно так: допустим, по очередному указу правительства в России вновь изменяют часовые пояса. Команда разработчиков Android формирует новую версию пакета с часовыми поясами и выкладывает ее в Google Play. Пользователи получают обновление — все счастливы.
Таким же образом могут быть обновлены библиотеки и целые подсистемы. Уже сейчас в AOSP доступны пакеты с рантаймом ART («виртуальная машина», ответственная за запуск приложений) и библиотека криптографических алгоритмов conscrypt. В теории в пакет APEX можно упаковать практически любой компонент системы, и пользователи смогут обновить его независимо от производителя смартфона.
Интересно, что APEX не производит обновление «на живую», когда старый компонент заменяется на новый. Раздел /system
в Android недоступен для записи, поэтому APEX использует трюк с монтированием. Все обновляемые файлы внутри пакета APEX находятся в образе файловой системы ext4. Когда происходит «установка» пакета, система монтирует этот образ поверх раздела /system
в режиме bind. В результате файлы пакета как бы заменяют оригинальные файлы Android, хотя в реальности все остается на своих местах.
Точно такой же трюк использует Magisk для установки модификаций Android без изменения раздела /system
. И его автор уже сказал, что APEX станет проблемой для Magisk.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»