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

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

  • Доступ к камере и микрофону. Индикатор появляется, когда приложение использует источник конфиденциальных данных через камеру и микрофон с помощью разрешений app-op. Требования к 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 Система проверяет разрешения. Если разрешения предоставлены, система уведомляет поставщика данных и регистрирует использование в app ops.

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

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

Сведения о процессе

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

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

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

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

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

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

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

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

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

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