В Android Q будет обновлено управление разрешениями и улучшения для защиты конфиденциальности пользователей. Вот что изменилось в Google со времен Android Pie.
Проникновение Android 9 Pie на рынок едва ли вспышка на радаре по сравнению со старыми версиями Android, но это не задержит планы Google по выпуску следующей версии Android — Android Q. Мы ожидаем, что Google представит первую предварительную версию Android Q для разработчиков где-то в следующем месяце, но раньше Google. объявление, что нам удалось получить сборку Android Q, которая, вероятно, находится на довольно далекой стадии разработки в Google цикл. В нашей первой статье, подробно описывающей изменения, которые появятся в следующей версии десерта, мы говорили о новом интерфейсе управления разрешениями. Однако я показал лишь несколько скриншотов обновленной системы управления разрешениями, поэтому хотел бы уточнить подробности. Я также провел дополнительное тестирование и собрал больше информации о новых разрешениях в Android Q, функции «ролей», новом установщике пакетов и многом другом. Но сначала кратко рассмотрим управление разрешениями в Android.
Краткая история управления разрешениями в Android
Android 4.3 Желейные бобы впервые представил детальное управление разрешениями с помощью функции «App Ops», хотя оно было скрыто от пользователя. В Android 4.4 KitKat даже появились новые управляемые пользователем разрешения в интерфейсе App Ops. нужен root-доступ и модуль Xposed чтобы получить к нему доступ. Наконец, в Android 6.0 Marshmallow появилась знакомая всем нам система разрешений, хотя и с ограничениями на то, какие разрешения вы можете ограничить. Старая функция App Ops все еще существует в Android, хотя доступ к ней возможен только через командную строку (cmd appops
). Некоторые приложения в магазине Google Play воспользуйтесь преимуществами реализации командной строки App Ops, чтобы предоставить более мощный интерфейс управления разрешениями. Google не предоставляет пользователям доступ к App Ops, поскольку пользователь может не знать, что он делает, в результате чего он отказывает приложению в некоторых разрешениях, которые ему действительно могут понадобиться для правильной работы. К сожалению, с момента появления управления разрешениями в Android Marshmallow мы не видели каких-либо серьезных изменений в этой функции — то есть до появления Android Q.
Управление приложениями в Android 4.3 Jelly Bean
В Android 6.0 Marshmallow также произошли серьезные изменения в способе предоставления определенных разрешений приложениям. До Android 6.0 все разрешения определены в файл манифеста приложения предоставляются при установке. В Android 6.0 Google введено управление разрешениями во время выполнения для определенных разрешений, которые они считали опасными, таких как доступ к внешнему хранилищу, доступ к камере, доступ к местоположению и многое другое. Разрешения во время выполнения предоставляются только после установки приложения, и пользователь должен явно дать согласие на предоставление этих разрешений, нажав «разрешить» в диалоговом окне разрешений по запросу. Пока Google расправился в приложениях, ориентированных на более старый уровень API, разработчики приложений могут обходить разрешения во время выполнения, ориентируясь на уровень API 22 или ниже (Android Lollipop или старше). Android Q предупредит пользователей пытается запустить приложение с таргетингом на уровень API 22 или ниже, что еще больше стимулирует разработчиков обновлять свои приложения, чтобы их не опозорила ОС. Таким образом, к тому времени, когда Android Q появится на устройствах, почти каждое приложение на устройстве пользователя должно быть подвергнуто контролю управления разрешениями, представленному в Android 6.0+. Имея это в виду, Google очищает элементы управления разрешениями в Android Q, чтобы пользователям было проще управлять уровнем доступа приложений на их устройстве.
Более простое управление разрешениями в Android Q по сравнению с Android Pie
Начиная с Android 6.0 Marshmallow и заканчивая Android 9 Pie, существующее управление разрешениями во время выполнения позволяет пользователю разрешать или запрещать приложению только определенные разрешения. В нашей предыдущей статье мы отмечали, что Android Q позволит пользователю ограничивать разрешения только во время использования приложения. Эта функция взволновала многих людей, но мы должны уточнить, что только разрешение на определение местоположения может быть ограничено, когда приложение используется.. Это означает, что вы не можете ограничить использование микрофона или камеры только во время использования приложения. Однако вас это не должно разочаровывать, поскольку Android Pie уже представил некоторые ограничения на фоновое использование камера и микрофон требуя, чтобы приложения находились на переднем плане или использовали службу переднего плана. Кроме того, Android Q расширяет эту возможность за счет раскрытие пользователю информации о том, когда какое-либо приложение использует микрофон, камеру или получает доступ к местоположению устройства. Это отображается пользователю в виде значков строки состояния в правом верхнем углу. Когда строка состояния развернута, текст, отображаемый рядом со значками, сообщает пользователю, какое приложение в данный момент использует одно из этих трех конфиденциальных разрешений. Наконец, если пользователь нажимает на этот значок, отображается диалоговое окно, в котором сообщается пользователю, какие приложения и какие разрешения используют. Опять же, это относится только к разрешениям камеры, местоположения и микрофона.
Google, похоже, поощряет пользователей ограничивать доступ к местоположению только тогда, когда приложение используется, поскольку они запрограммированы в напоминание в Android Q, когда пользователь разрешил приложению всегда получать доступ к своему местоположению. Это напоминание приходит в виде уведомления, которое сообщает пользователю, что приложение использовало его местоположение и что у него всегда есть возможность это сделать. Нажав на уведомление, вы попадете на страницу разрешений на определение местоположения для этого приложения, позволяя пользователю ограничить разрешение на определение местоположения только во время использования этого приложения. Спасибо за это, Google.
Наконец, в моей сборке пользовательский интерфейс для специальных разрешений доступа к приложениям (например, оптимизация батареи, администрирование устройства, доступ «Не беспокоить», доступ к уведомлениям и т. д.) не изменился. Однако в список было добавлено новое специальное разрешение «Доступ к финансовым приложениям по SMS», хотя я не уверен, как это сделать. оно отличается от разрешения «Доступ к Премиум-СМС», которое требуется приложениям для отправки текстовых сообщений в премиум-класс. цифры. Возможно, это новое разрешение предназначено для банковских приложений, которые используют SMS для определенных транзакций, в соответствии с Новые правила Google Play ограничение разрешений на SMS и журнал вызовов.
Управление разрешениями в Android Q
Вот галерея скриншотов, демонстрирующая новые изменения интерфейса управления разрешениями в Android Q. Я включил подробное описание каждой страницы в подписи к каждому изображению.
Предоставление разрешений в Android Q
Вот скриншоты, демонстрирующие управление разрешениями во время выполнения в Android Q. Мы уже говорили о том, что показано на первых двух скриншотах, но третий скриншот представляет собой совершенно новую функцию Android Q, о которой я раньше не рассказывал. Возможность Android разрешить пользователю контролировать разрешения перед запуском устаревшего приложения (определяемого как уровень API таргетинга приложения < 23) — это то, что уже возможно в Android Pie с помощью правильная конфигурация, но Google наконец-то щелкнул переключателем и включил его в Android Q.
Мониторинг разрешений в реальном времени в Android Q
Вот скриншоты, показывающие, как Android Q предупреждает пользователя, когда приложение получает доступ к одному из нескольких конфиденциальных/опасных разрешений, включая камеру, местоположение и микрофон.
Новые ограничения на доступ к буферу обмена и доступ к внешним файлам
Ограничения доступа к фоновому буферу обмена
В моей предыдущей статье я отметил новое разрешение в платформе Android Q, которое предполагает, что несистемные приложения, работающие в фоновом режиме, больше не смогут читать системный буфер обмена. После того, как мы заработали в Google Play Store, я решил установить несколько популярных приложений-менеджеров буфера обмена, таких как Менеджер буфера обмена, Клипер, и Стек клипов чтобы проверить, прав ли я. К лучшему или худшему, Google блокирует фоновый доступ к буферу обмена в Android Q, поскольку ни одно из протестированных мной приложений не смогло обнаружить текст, который я скопировал в буфер обмена.. Я даже подтвердил, что в этих приложениях есть функция "READ_CLIPBOARD
" разрешение, которое они запросили с помощью следующей команды App Ops:
adb shell cmd appops query-op --user 0 READ_CLIPBOARD allow
К счастью, копирование и вставка текста в любое приложение и из него по-прежнему работает, но приложения, работающие в фоновом режиме, больше не могут читать копируемый текст. Пока слишком рано говорить, приведет ли это изменение к уничтожению приложений менеджера буфера обмена, поскольку существует вероятность, что Google может представить новый API, чтобы сделать приложение обработчиком «менеджера буфера обмена» по умолчанию. Однако я не вижу никаких доказательств того, что это происходит в Android Q.
Доступ к файлам внешнего хранилища
Я рассказал почти все об этом изменении в своей предыдущей статье, но вот краткое изложение того, что Google меняет в Android Q в отношении доступа к файлам во внешнем хранилище. Во-первых, нам нужно определить, что означает «внешнее хранилище». В Android внешнее хранилище — это место, где хранятся все файлы и папки, которые вы можете видеть при подключении телефона к компьютеру, например «Загрузки», DCIM, «Музыка», «Фильмы» и «Изображения». Предполагается, что приложения хранят во внешнем хранилище только файлы, к которым могут захотеть получить доступ другие приложения, например музыку, изображения, видео, документы и т. д.
Чтобы приложение могло получить доступ к файлам на внешнем хранилище, оно должно хранить ЧТЕНИЕ_EXTERNAL_STORAGE и/или ЗАПИСАТЬ_EXTERNAL_STORAGE разрешения, которые являются разрешениями времени выполнения. Если приложение имеет эти разрешения, нет никаких ограничений на то, какие файлы на внешнем хранилище оно может читать или изменять. В Android Q Google разбивает эти два разрешения на более детальные, позволяя пользователю ограничить приложение, чтобы оно могло читать или записывать только определенные типы файлов. В частности, новые разрешения в Android Q позволят пользователю ограничить приложение, чтобы оно могло только:
- Прочитайте места из ваших СМИ.
- Чтение или запись музыкальных файлов.
- Чтение или запись файлов фотографий/изображений.
- Чтение или запись видеофайлов.
Приложение, которому уже было предоставлено разрешение READ_EXTERNAL_STORAGE до обновления пользователя до Android Q автоматически получит разрешения на «чтение», перечисленные выше, но не на «запись». разрешения.
Фоновый доступ к местоположению
В прошлом году в отчете Нью-Йорк Таймс пролил свет на широкое распространение приложений, отслеживающих местоположение пользователей, чтобы продавать их рекламодателям. Неправильное отслеживание местоположения – это проблема, о которой Google хорошо знает. обвиняют в этом сами. Представлен Android 8.0 Oreo ограничения о том, как часто приложения, работающие в фоновом режиме, могут получить доступ к местоположению устройства. Запросы местоположения от приложений, работающих в фоновом режиме, сильно ограничиваются, поэтому, если приложение хочет отслеживать ваше местоположение с помощью любого степени точности, ему необходимо сообщить, что он делает это с помощью видимой активности или службы переднего плана и постоянного уведомление.
Однако каждый раз, когда Google меняет способ работы основных API-интерфейсов Android, это затрагивает разработчиков, чьи приложения законно использовали эти API по назначению. Недавно мы видели, как это происходит с ограничениями Google Play на разрешения SMS и журнала вызовов, в результате чего многие популярные приложения теряют ключевую функциональность. Та же ситуация произошла, когда Google ограничил доступ к фоновому местоположению пользователям популярного приложения. приложение для игры в гольфжаловаться что они больше не смогут использовать его для отслеживания своих выстрелов. К счастью, в Android Q добавлен новый "ACCESS_BACKGROUND_LOCATION
" разрешение, которое, если оно предоставлено, всегда позволяет приложению иметь доступ к местоположению устройства, даже если приложение работает в фоновом режиме. Таким образом, новая версия Android не только продолжит защищать пользователей от нежелательного фонового доступа к местоположению, но также предоставит пользователям механизм, позволяющий приложениям по своему выбору отслеживать их местоположение в фоновом режиме.
Добавление «Ролей» в Android Q
В Дэниэлс практическое видео для нашего YouTube-канал XDA TVВозможно, вы слышали, как он упомянул новый раздел «Роли» в настройках приложений по умолчанию (Настройки -> Приложения и уведомления -> Приложения по умолчанию). Единственные «роли», показанные в видео, — это «Браузер», «Телефон» и «Сообщения», что казалось излишним, поскольку уже существуют категории приложений по умолчанию для браузера, телефонных приложений и приложений для SMS. Проведя еще некоторое время с Android Q на Pixel 3 XL, я обнаружил «ролевой» сервис, для которого я мог сбросить состояние через «dumpsys role
команда. После этого я обнаружил несколько «ролей», которые не соответствуют ни одной из уже существующих категорий приложений по умолчанию: CAR_MODE_DIALER_APP
, CALL_COMPANION_APP
, CALL_SCREENING_APP
, и PROXY_CALLING_APP
. После установки нескольких сторонних приложений Google мне удалось заставить «Телефонное приложение в режиме автомобиля» и «Приложение для проверки вызовов» отображаться на страницах «роли», как показано ниже.
Я декомпилировал новый системный APK, отвечающий за интерфейс управления разрешениями Android Q, новое приложение под названием «PermissionController» и нашел файл roles.xml, который намекает на то, что «роли» будут делать в следующем Android. версия. Я не буду вставлять сюда весь XML, но поделюсь фрагментом одной из ролей, который должен помочь вам понять, какие роли будут выполнять.
Допустим, я выбираю приложение, которому будет присвоена роль «галерея». Чтобы приложение отображалось как действительное приложение галереи, оно должно иметь один обязательный компонент: действие, которое запускается с фильтрами действий и намерений категории. android.intent.action.MAIN
и android.intent.category.APP_GALLERY
соответственно. Если это правда и приложению предоставлена роль «галерея», то приложению автоматически будут предоставлены разрешения. в наборе разрешений «media_visual», который, как я полагаю, относится к новому разрешению аудио, видео и изображений, которое я описал ранее. Фактически, новый WRITE_MEDIA_VIDEO
и WRITE_MEDIA_IMAGES
разрешения явно разрешены для приложения с рулоном «галерея». Наконец, приложение становится предпочтительным обработчиком, когда другое приложение отправляет намерение вызвать приложение галереи.
По сути, любому приложению, которому предоставлена определенная «роль» и в котором объявлены необходимые компоненты и разрешения, автоматически предоставляются другие наборы разрешений, соответствующие их вариантам использования. В примере, который я опубликовал выше, приложению с «ролью» галереи автоматически предоставляется разрешение на доступ к файлам, связанные с наборами разрешений, которые ему необходимы для работы. Предположительно, это означает, что приложению, которому пользователь предоставил роль галереи, не нужно будет запрашивать у пользователя разрешение на чтение или запись файлов изображений или видео.
Судя по названиям, CAR_MODE_DIALER_APP
, CALL_COMPANION_APP
, CALL_SCREENING_APP
, и PROXY_CALLING_APP
роли позволят пользователю выбирать другое приложение для набора номера, когда он за рулем, приложение для выполнения различных функций, пока пользователь находится в телефонный звонок, приложение для проверки телефонных звонков до того, как пользователь возьмет трубку, и приложение для облегчения звонка с помощью промежуточного номера, соответственно. Мы не считаем, что роль проверки вызовов напрямую связана с возможностями Google Pixel. Экран вызова особенность, судя по тому, что мы видели в AOSP. Скорее, он предназначен для приложений, которые хотят действовать как отражатель спам-вызовов, например фильтр вызовов.
Обновленный установщик пакетов
Установщик пакетов Android по умолчанию (приложение, которое отвечает за установку новых приложений) претерпевает изменения. Вместо того, чтобы показывать полноэкранную активность каждый раз, когда вы хотите установить новое приложение, обновленный установщик пакетов в Android Q отображает небольшое диалоговое окно в центре экрана. Этот пользовательский интерфейс мини-установщика пакетов уже давно используется на планшетах Android, но на смартфонах Android мы видим его впервые.
В Android Q при запуске любого приложения, ориентированного на уровень API 22 или ниже (Android 5.0 Lollipop), появится предупреждение о том, что приложение устарело. Я подозреваю, что этого предупреждения достаточно, чтобы удержать большинство пользователей от беспокойства о приложениях, предназначенных для версий до Android Marshmallow. Добавьте к этому тот факт, что Google потребует, чтобы все приложения, отправленные в Play Store после августа 2019 года, были нацелены на Уровень API 28, вы можете увидеть, как разработчики устаревших приложений вынуждены переделывать свои приложения для использования более нового API. уровень. Как все это связано с новым установщиком пакетов? Что ж, поскольку Android 5.0 Lollipop является последним уровнем API без обязательных запросов разрешений во время выполнения для определенных конфиденциальных разрешений, возможная смерть приложений, ориентированных на Уровень API 22 и ниже означает, что Google больше не нужно выделять место в сообщении установщика пакета для отображения длинного списка разрешений, которые предоставляются приложению. монтаж.
Однако вы, вероятно, не увидите этот упрощенный установщик пакетов на всех устройствах Android Q. Huawei, например, снабжает установщик пакетов встроенным сканером вирусов и вредоносных программ (что я ненавижу), а также встроенный менеджер разрешений (что мне нравится). Поэтому EMUI 10, вероятно, будет придерживаться полноэкранного установщика пакетов, которым мы все являемся. привыкший.
Новые возможности блокировки вызовов
Особенность мы думали, что это появится в Android Pie действительно появился в Android Q, показав вам, насколько мы близки к завершению основных функций Android Q. Функция, которую мы тогда обнаружили, позволит вам блокировать вызовы с неизвестных, частных номеров телефонов-автоматов или любых номеров, которых нет в вашем списке контактов. Вот скриншот функции приложения дозвона AOSP. В приложении Google Phone эта функция еще не обновлена, но мы предполагаем, что она появится в ближайшее время.
Все установленные приложения теперь показывают значки запуска (возможная ошибка?)
Большинство приложений на вашем устройстве имеют значки запуска, поскольку они предназначены для входа в пользовательский интерфейс. Однако не каждое приложение имеет пользовательский интерфейс, и в этом случае разработчик может отказаться от объявления действия с фильтрами действий и категорий. android.intent.action.MAIN
и android.intent.category.LAUNCHER
соответственно. Я не уверен, что это просто ошибка, но в Android Q все приложения, даже те, которые пытаются скрыть свои значки запуска описанным выше способом, будут отображать значки в панели запуска. Я тестировал это на стандартных AOSP Launcher, Pixel Launcher и Nova Launcher на Google Pixel 3 XL, работающем просочившуюся сборку Android Q и сравнил ее с Google Pixel 2 XL под управлением последней версии Android 9 Pie. строить. Когда вы нажимаете на один из этих значков, вы просто попадаете на информационную страницу этого приложения в настройках.
Если это не просто ошибка, то это позволит пользователям быстро узнать, установлено ли новое приложение, даже если это приложение пытается скрыть себя от пользователя.
Плитка быстрых настроек «Датчики выключены»
Появилась новая плитка быстрых настроек под названием «Датчики выключены», которая не только включает режим полета, но и отключает все показания датчиков на устройстве. Я подтвердил это, установив DevCheck от признанного разработчика XDA flar2 и сравнение выходных показаний датчиков с переключателем «датчики выключены» и без него. Когда плитка «датчики выключены» включена, устройство перестает отправлять отчеты со всех датчиков на устройстве. Я не уверен, что эта плитка быстрых настроек предназначена только для отладки инженерами Google, но это будет полезная функция для тех, кто действительно обеспокоен тем, какие данные собирает их устройство об их среда.
Цена: Бесплатно.
4.6.
Подробнее об Android Q
Это все, что я нашел в Android Q, связанное с конфиденциальностью и разрешениями. Оставайтесь с нами, чтобы прочитать мою последнюю статью, в которой рассказывается обо всех мелких изменениях пользовательского интерфейса и UX. Следите за нашими Тег Android Q чтобы увидеть больше подобных статей. Вот ссылка на некоторые статьи, к которым я чаще ссылаюсь, а также на несколько других, которые, я думаю, вам стоит прочитать:
- Эксклюзив: ранняя сборка Android Q имеет общесистемную темную тему, обновленные разрешения, намек на «режим рабочего стола» и многое другое.
- Эксклюзив: Google работает над функцией Face ID для Android Q
- Android Q может блокировать фоновое чтение из буфера обмена, лучше защищать ваши медиафайлы, поддерживать понижение версии приложений и многое другое
- Android Q может поставляться с новым шрифтом, формой значков и накладками акцентного цвета
- «Динамический Android» может позволить разработчикам протестировать AOSP GSI на любом устройстве Android Q.
- Темный режим Android Q: как следующая ОС Android от Google будет справляться с ослепительно светлыми темами