Android permission

dank27·2022년 5월 5일
0

작성일: 2022-05-05

Android permission

https://source.android.com/devices/tech/config

  • Android 9 이하에서는 패키지 설치 및 권한 제어 기능이 PackageInstaller 패키지에 포함됨
    • packages/apps/PackageInstaller
  • Android 10 이상에서는 권한 제어 기능이 별도의 패키지인 PermissionController로 나눠짐
    • packages/apps/PermissionController
    • GPSU(mainline project)에서 모듈로 제공
  • Android 6.0 이상에서는 앱이 런타임 시 위험한 권한에 대해 액세서를 요청함

런타임 권한

https://source.android.com/devices/tech/config/runtime_perms

  • Android 6.0 부터 “설치 시간 권한” → “런타임 권한”
  • 설치 시간 권한
    • Android 5.1 이하
    • 앱 설치하거나 업데이트할 때 위험한 권한 부여
    • 기기제조업체와 이동통신사는 사용자에게 알리지 않고 사전부여된 권한으로 앱을 사전 설치할 수 있음
  • 런타임 권한
    - Android 6.0 이상
    - 사용자가 앱을 실행할 때 위험한 권한을 앱에 부여
    - OEM/이동통신사는 앱을 사전 설치할 수 있지만, 예외 프로세스(예외 생성)를 거치지 않는 이상 권한을 미리 부여할 수 없음

예외 생성

PackageManager에서 DefaultPermissionGrantPolicy.java 클래스를 사용하면 핵심 OS 기능의 기본핸들러 또는 제공업체인 애플리케이션에 권한을 사전 부여할 수 있습니다.

ACTION_CALL (Dialer) Default
Phone, Contacts, SMS, Microphone
SMS_DELIVER_ACTION (SMS/MMS) Default
Phone, Contacts, SMS
  • 대부분 priv-app 임

TedPermmision

https://github.com/ParkSangGwon/TedPermission

  • 앱에서 Permission 요청하는 예제
profile
임베디드 시스템 개발자의 공부 노트

0개의 댓글