PermissionController 모듈은 업데이트할 수 있는 개인정보처리방침과 UI 요소(예: 권한 부여 및 관리에 관한 정책 및 UI)를 지원합니다.
Android 12부터 Role
의 프레임워크 및 시스템 서버 클래스가 모듈로 이동하여 Role
이 완전히 모듈화됩니다.
PermissionController 정보
com.google.android.permissioncontroller
APK는 권한 관련 UI, 로직 및 역할을 처리하여 특정 목적의 앱 액세스를 허용합니다. PermissionController는 다음을 제어합니다.
런타임 권한 부여(시스템 앱에 권한 부여 포함)
런타임 권한 관리(권한 그룹화 포함)
런타임 권한 사용 추적
역할
Android 9에서 이러한 권한은 com.google.android.packageinstaller
의 일부였습니다. Android 10에서는 패키지 설치 앱을 섹션으로 분할하여 권한 로직을 업데이트할 수 있도록 합니다. PermissionController는 업데이트 가능한 메인라인 모듈로서 다음을 실행합니다.
안정적인
@SystemApi
API를 통해서만 프레임워크와 상호작용합니다(@hide
API 사용 안 함).우선순위가 0보다 큰 권한 관련 인텐트를 처리합니다.
OEM이 테마를 맞춤설정할 수 있도록 하는 메커니즘을 노출합니다.
역할 관리, 권한 취소, 설정과 관련된 기본 권한 정보처럼 시스템과 앱이 결합할 수 있는 서비스를 제공합니다.
미사용 앱 자동 취소 기능을 지원합니다(Android 11의 새로운 기능).
사용하지 않는 앱의 자동 취소
Android 11에서는 PermissionsController 모듈이 장기간 사용되지 않은 앱의 런타임 권한을 자동으로 취소할 수 있습니다. SDK 30 이상을 타겟팅하는 앱에는 자동 취소 기능이 기본적으로 사용 설정되어 있지만, SDK 29 이하를 타겟팅하는 앱에서는 기본적으로 사용 중지되어 있습니다. 자동 취소가 사용 설정되면 정책 및 시스템 고정 권한과 기본적으로 부여되거나 역할에 따라 부여되는 권한 등 사전 부여 권한을 제외한 모든 런타임 권한이 영향을 받습니다. 자세한 내용은 사용하지 않는 앱의 권한 자동 재설정을 참고하세요.
패키지 형식
PermissionController 모듈은 APK 파일로 제공됩니다.
모듈 경계
Android 12에서는 packages/apps/PermissionController
(platform/packages/apps/PackageInstaller
프로젝트) 및 frameworks/base/apex/permission
(frameworks/base
프로젝트의 하위 디렉터리)에서 권한 모듈 코드가 이동되었습니다.
packages/modules/Permission
의 새 프로젝트 구조는 다음과 같습니다.
frameworks/base/apex/permission
의 파일packages/apps/PermissionController
의 PermissionController 파일
OEM은 샘플 명령어를 사용하여 원본 프로젝트 디렉터리에서 새 프로젝트 디렉터리로 패치를 이동할 수 있습니다.
frameworks/base/apex/permission에서 패치 이동
root/frameworks/base/$ git format-patch -1 --relative=apex/permission commit --stdout > patch-file.txt
root/packages/modules/Permission$ git am -p2 patch-file.txt
packages/apps/PermissionController에서 패치 이동
root/packages/apps/PermissionController$ git format-patch -1 commit --stdout > patch-file.txt
root/packages/modules/Permission$ git am -p2 --directory=PermissionController patch-file.txt
맞춤설정
OEM은 런타임 리소스 오버레이(RROS)를 사용하여 권한 UI 테마(색상, 여백, 글꼴, 드로어블)를 맞춤설정할 수 있습니다.