개인 정보 표시기

Android 6 이상의 런타임 권한은 사용자가 기기 마이크의 오디오 또는 기기 카메라의 동영상을 녹음하도록 허용하는 시기를 제어할 수 있도록 합니다. 앱을 기록하려면 사용자가 시스템이 표시하는 대화 상자를 통해 앱에 권한을 부여하거나 거부해야 합니다.

Android 12는 앱이 카메라 및 마이크 앱 작동 권한 을 통해 비공개 데이터 소스를 사용할 때 표시기를 표시하여 사용자에게 투명성을 제공합니다. App-ops는 런타임 권한으로 보호되는 API에 대한 액세스를 기록합니다.

App-op은 활동 상태와 개별 API 호출 수를 모두 추적하고 Android 12의 마이크 및 카메라 표시기와 상호 작용하여 앱이 기기의 오디오 및 카메라 데이터에 액세스했을 때 사용자에게 표시합니다. 사용자가 마이크 또는 카메라 표시기를 클릭하면 데이터에 액세스한 앱이 표시됩니다. 이 기능은 모든 OEM에 필수입니다.

지표 가시성 요구 사항

Android 12 이상에서 실행되는 기기의 마이크 및 카메라 표시기에 대한 요구 사항은 다음과 같습니다.

  • 표시기는 상태 표시줄에 나타나야 하고 가장 높은 시각적 우선 순위를 유지해야 합니다(예: 오른쪽 상단 모서리의 가장 오른쪽 위치에 있음).
  • 표시기는 일관되게 동일한 위치에 있어야 하며 앱이 실행될 때 앱에 의해 차단되어서는 안 됩니다.
  • 두 표시기 모두 색상이 녹색(또는 녹색의 변형) 이어야 합니다 .
  • 하나 또는 두 지표를 모두 클릭하면 다음을 수행하는 애플리케이션 어트리뷰션 어포던스 알림을 렌더링 해야 합니다 .
    • 마이크 및(또는) 카메라를 사용하는 앱의 이름을 표시합니다.
    • 지난 15초 이내에 마이크 및(또는) 카메라를 사용한 앱의 이름을 표시합니다.
    • 사용자를 설정 의 앱 권한 페이지로 이동합니다.

사용법 및 기능

Android 12에서 UI는 실행 중인 사용량과 최근 사용량을 구분합니다. 사용은 시스템에서 "실행 중"으로 표시되거나 5초 미만인 경우 "활성"으로 간주됩니다.

  • 상태 표시줄 아이콘은 앱이 사용자에 민감한 마이크 또는 카메라에 지속적으로 액세스할 때마다 표시됩니다.
  • 사용자는 이 아이콘을 클릭하여 마이크, 카메라 또는 둘 다에 액세스하는 앱을 확인할 수 있습니다.

Microphone and camera in-use indicators showing that access is active

그림 1. 활성 액세스를 표시하는 마이크 및 카메라 사용 표시기(오른쪽 상단)

표시기가 표시되는 동안 액세스가 활성 상태로 간주됩니다. 아이콘이 먼저 표시된 다음 앱이 닫히거나 닫힐 때까지 지속되는 점으로 전환됩니다.

사용자가 표시기를 탭하면 앱이 현재 카메라, 마이크 또는 둘 다를 사용하고 있음을 보여주는 대화 상자가 펼쳐집니다.

Indicators for both active and recent access, and whether the access was from camera or microphone

그림 2. 활성 및 최근 액세스 표시기

그림 2 의 이미지는 실행 중인 앱이 지난 5초 동안 데이터에 액세스한 경우 활성 액세스 표시기를 보여줍니다.

최근 액세스 표시기는 이전 15초 동안 앱에서 데이터에 액세스했지만 앱이 활성화되지 않았음을 보여줍니다. 모든 활성 앱이 대화 상자에 표시되지만 1개 이상의 앱이 이전 15초 기간 내에 데이터에 액세스한 경우에도 최근 액세스 소스로 하나의 앱만 표시됩니다. 액세스 보기는 사용자가 알림 대화 상자를 닫을 때까지 고정된 상태로 유지됩니다.

제공 및 활성화

PermissionManager 클래스는 시스템 UI에 있는 대화 상자를 채우는 메서드를 제공합니다.

  • 시스템 UI는 장치 구성 스위치에 반응합니다: privacy/mic_camera_indicators_enabled .
  • 두 개의 개별 배송 차량이 다음 순서로 있기 때문에 전환이 필요합니다.
    1. 배달.
    2. 할 수 있게 하다.
  • PermissionManager 의 메서드가 필요한 데이터를 제공할 수 없는 경우 시스템 UI가 충돌하지 않아야 합니다.

프로세스 흐름

권한 표시기 기능에는 세 가지 주요 부분이 있습니다.

  • 표시기(SystemUI에서 처리)
  • 어떤 앱이 데이터를 사용하고 있는지 확인하는 방법

PermissionController 는 데이터를 사용하는 앱을 결정하는 메커니즘을 제공합니다. SystemUI는 개인 데이터를 사용하는 앱을 수신 대기합니다. SystemUI는 사용된 권한에 해당하는 상단 탐색 모음에 아이콘을 표시합니다. PermissionController 는 사용자가 아이콘을 클릭할 때 사용에 대한 데이터를 표시합니다.

Process flow for Permission Indicator functions

그림 3. 시스템 구성 요소 및 (UI) 전환 흐름

그림 3 의 번호가 지정된 전환은 아래에 설명되어 있습니다.

1- 앱이 시스템에서 개인 데이터를 요청합니다.

2- 시스템이 권한을 확인합니다. 권한이 허용되면 시스템이 데이터 제공자에게 알리고 앱 운영에 사용량을 기록합니다.

3- 데이터 제공자는 앱에 데이터를 제공합니다.

4-5 사용자가 아이콘을 클릭합니다. 시스템 UI는 PermissionManager 에서 데이터를 요청하고 사용자에게 대화 상자를 표시합니다.

프로세스 세부 정보

  1. 앱은 마이크와 카메라를 사용하여 AppOpsManager.startOp , stopOp 및 (또는) noteOp 를 호출합니다. 이렇게 하면 시스템 서버에 앱 작업 ​​레코드가 생성됩니다.
  2. 시스템 UI는 AppOpsManager.OnOpActiveChangedInternalListenerOnOpNotedListener 수신기를 사용하여 새 앱 작업을 수신합니다. startOp 또는 noteOp 에 대한 호출을 통해 새로운 사용량이 들어오면 시스템 UI는 사용량이 시스템 앱인지 확인합니다.
  3. 시스템 UI가 시스템 앱 사용을 확인하고 사용이 마이크인 경우 시스템 UI는 마이크가 음소거되었는지 확인합니다.
  4. 시스템 UI가 비시스템 앱 사용을 확인하는 경우(마이크 사용의 경우 마이크가 음소거 해제되어 있고 카메라 사용의 경우 카메라가 켜져 있음) 이러한 사용을 반영하는 아이콘이 표시됩니다.

시스템 UI가 지속 시간이 없는 noteOp 를 수신하면 아이콘이 5초 이상 표시됩니다. 그렇지 않으면 아이콘은 stopOp 를 수신할 때까지 또는 5초 중 더 긴 시간 동안 표시됩니다. 아이콘을 클릭하는 사용자는 대화 상자를 시작하기 위해 PermissionController 로 이동하는 인텐트를 시작합니다.

PermissionController 는 마이크와 카메라에 대한 모든 최근 사용을 로드합니다. 현재 실행 중이거나 시스템 UI에서 설정한 시간 범위 내에서 실행 중인지 확인합니다. 일치하는 항목을 찾으면 권한을 사용한 앱의 이름과 앱에서 사용한 권한이 표시됩니다.

Android 12 이상에서 이러한 변경으로 인해 일부 앱은 동작을 변경하거나 특별한 동작을 구현해야 합니다.

전화 통신은 Android Google 검색 앱(AGSA) 및 Google 모바일 서비스(GMS)와 함께 작업하는 동안 권한 사용(전화 통화에 사용되는 별도의 마이크 스택을 설명하기 위해)을 구현해야 합니다.