Индикаторы конфиденциальности

Android обеспечивает пользователям прозрачность, отображая индикаторы конфиденциальности для следующих типов доступа:

  • Доступ к камере и микрофону. Индикатор появляется, когда приложение использует частный источник данных через разрешения на доступ к камере и микрофону. Соответствующие требования CDD см. в разделе 2.2.5. Модель безопасности .

  • Доступ к местоположению. Индикатор появляется, когда приложение получает доступ к местоположению устройства. Требования к CDD см. в разделе 9.8.8. Местоположение .

Пользователи нажимают на индикатор, чтобы увидеть, какие приложения получили доступ к их данным.

Активные и недавние случаи использования

Пользовательский интерфейс Android различает текущие и недавние случаи использования:

  • В Android 17 и более поздних версиях использование местоположения считается активным, если система помечает его как запущенное или если прошло менее 10 секунд с момента получения данных. Для точки местоположения доступ считается активным, если несистемное приложение работает в фоновом режиме .

  • В Android 12 и более поздних версиях использование микрофона и камеры считается активным, если система помечает их как запущенные или если прошло менее пяти секунд с момента их запуска.

Значки в строке состояния показывают, когда приложение постоянно использует конфиденциальную для пользователя информацию о микрофоне, камере или местоположении. Пользователи могут нажать на эти значки и увидеть, какие приложения используют микрофон, камеру, местоположение или их комбинацию. Вот пример индикаторов использования:

Индикаторы, показывающие активный доступ

Рисунок 1. Индикаторы использования, показывающие активный доступ (верхний правый угол).

Доступ считается активным до тех пор, пока отображаются индикаторы. Сначала появляется значок, затем он сменяется точкой, которая остается на экране до тех пор, пока приложение не будет закрыто или удалено. Когда пользователь открывает быстрые настройки и затем нажимает на индикаторы, появляется диалоговое окно, в котором отображается информация о том, использует ли приложение микрофон, камеру, местоположение или их комбинацию.

На рисунке 2 показаны индикаторы активного доступа, когда данные были доступны в течение активного временного окна работающим приложением.

Индикаторы активного и недавнего доступа и источника

Рисунок 2. Индикаторы активного и недавнего доступа.

Индикаторы недавнего доступа показывают, что приложение обращалось к данным в течение предыдущих 15 секунд (или 20 секунд для данных о местоположении), но при этом приложение неактивно. В диалоговом окне отображаются все активные приложения, но в качестве источника недавнего доступа отображается только одно приложение, даже если в течение предыдущих 15 или 20 секунд к данным обращалось более одного приложения. В диалоговом окне отображаются все приложения, которые обращались к данным о местоположении в течение активного или недавнего временного интервала. Отображение доступа сохраняется до тех пор, пока пользователь не закроет диалоговое окно уведомления.

Обеспечить доставку и внедрение

Класс PermissionManager предоставляет метод для заполнения диалогового окна (которое находится в системном пользовательском интерфейсе). Системный пользовательский интерфейс реагирует на переключатель конфигурации устройства privacy/mic_camera_indicators_enabled ; этот переключатель необходим, поскольку существует два отдельных способа доставки: (1) доставка, затем (2) включение.

Технологический процесс

Функционал индикатора разрешений состоит из трех основных частей:

  • Приложения
  • Индикаторы (обрабатываются пользовательским интерфейсом системы)
  • Способ определить, какие приложения используют данные.

PermissionController предоставляет механизм для определения того, какие приложения используют данные. Системный интерфейс отслеживает приложения, использующие личные данные. Системный интерфейс отображает значок в верхней панели навигации, соответствующий используемым разрешениям. PermissionController отображает данные об использовании, когда пользователь нажимает на значок.

Схема процесса работы функций индикатора разрешения

Рисунок 3. Последовательность перехода между компонентами системы и (пользовательским интерфейсом).

  • 1. Приложение запрашивает у системы личные данные.

  • 2. Система проверяет права доступа. Если права доступа разрешены, система уведомляет поставщика данных и фиксирует использование в операциях приложения.

  • 3. Поставщик данных предоставляет данные приложению.

  • 4-5 Пользователь нажимает на значки. Системный интерфейс запрашивает данные у PermissionManager и отображает диалоговое окно пользователю.

Детали процесса

Операции приложения записывают обращения к защищенным разрешениями API во время выполнения, отслеживая статус активности и количество отдельных вызовов API, а также взаимодействуя с камерой, микрофоном и индикаторами, чтобы показывать пользователям, когда приложения обращались к аудио- и видеоданным на их устройствах.

  1. Приложения используют микрофон, камеру или местоположение, вызывая AppOpsManager.startOp , stopOp или noteOp . Это создает записи операций приложения на системном сервере. В версиях 17 и выше индикатор местоположения также использует эти записи операций приложения.

  2. Системный интерфейс отслеживает новые операции приложения с помощью слушателей AppOpsManager.OnOpActiveChangedInternalListener и OnOpNotedListener . Когда поступает новое сообщение об использовании (через вызов startOp или noteOp ), системный интерфейс проверяет, что это использование системного приложения:

    • Если пользовательский интерфейс системы проверяет использование системных приложений, и если это использование микрофона, то пользовательский интерфейс системы проверяет, отключен ли микрофон.

    • Если пользовательский интерфейс системы проверяет использование приложений, не являющихся системными (и, в случае использования микрофона, что микрофон включен; в случае использования камеры, что камера включена), он отображает значок, отражающий такое использование.

    • Если пользовательский интерфейс системы проверяет использование приложений, не входящих в систему, он отображает значок, отражающий такое использование, при условии, что соответствующие переключатели активны:

      • Что касается микрофона: микрофон включен.
      • Для камеры: Камера включена.
      • Что касается местоположения: приложение работает в фоновом режиме.

Если пользовательский интерфейс системы получает noteOp , не имеющий продолжительности, он отображает значок как минимум 5 секунд (10 секунд для location). В противном случае значок отображается либо до получения stopOp , либо в течение минимальной продолжительности 5 или 10 секунд, в зависимости от того, какая из них дольше. Нажатие пользователем на значок инициирует Intent, который обращается к PermissionController для запуска диалога.

PermissionController загружает все данные о недавнем использовании микрофона, камеры и определения местоположения. Он проверяет, запущены ли какие-либо из этих приложений или были ли они запущены в течение временного интервала, установленного системным интерфейсом (15 секунд для микрофона или камеры, 20 секунд для определения местоположения). Если найдено совпадение, отображается название приложения и используемые разрешения.

Для обеспечения корректной работы телефонии необходимо реализовать использование разрешений (с учетом отдельного стека микрофонов, используемого в телефонных звонках) при взаимодействии с приложением Google Search для Android (AGSA) и GMS.