회사에서 하이브리드 앱 프로젝트를 진행하던 중
안드로이드에서 권한 체크는 언제 도입이 되었는지 궁금해 졌다.
먼저
2015년 10월 5일에 출시 된 안드로이드 6.0 (Marshmallow) API 23부터 권한 체크가 지원이 되었다.
안드로이드 6.0 이전 버전에서는
앱을 설치할 때 사용자에게 모든 권한 동의를 한번에 받았다.
사용자들은 전체 접근권한에 동의를 해야 앱 다운로드 및 설치가 가능했다.
앱이 필요해서 설치했지만 앱에서 가져가는 권한들이 싫다면 앱을 사용하지 않는 방법밖에 없었다.
우리 개발자 입장에서는
AndroidManifest.xml에 필요한 권한들을 선언하기만하면
설치 시점에 한번 동의를 받으면 그 이후 해당 권한들을 사용할 수 있었다.
위에 권한 방식은 개인정보 무단 수집 등 악용 사례로 이뤄졌다.
https://n.news.naver.com/mnews/article/008/0003521941?sid=105
Android 6.0부터는 Google이 도입한
"Runtime Permission"
2015년 10월 5일에 출시 된 안드로이드 6.0 (Marshmallow) API 23부터 지원이 되었다.
Android 6.0부터는 앱 설치 시 사용자의 권한 허용 여부를 받는 것이 아닌,
앱에서 권한이 필요 할 때 사용자에게 권한을 받도록 변경이 되었다.
사용자가 권한을 허락하였더라도, 앱 정보에서 권한을 거부할 수 도 있다.
즉, 개발자가 권한을 관리하는 것이 아닌, 사용자가 모든 권한을 관리할 수 있게 되었다.
Normal Permission과 Dangerous Permission
Android 6.0 이전 버전에서는 위에서 언급 했듯이 걍 AndroidManifest.xml에 선언만 해서 사용이 가능했음
하지만 6.0이후 부터는 Normal Permission과 Dangerous Permission으로 나뉘어서 관리가 됨
Normal Permission
AndroidManifest.xml에 속성을 추가하여 권한 체크 없이 사용 할 수 있는 일반 권한이다.
ACCESS_NETWORK_STATE: 네트워크 상태에 대한 접근
INTERNET: 인터넷에 접속할 수 있는 권한
VIBRATE: 기기 진동 사용
위에 기능들은 일반적인 앱 기능을 수행하기 위해 필요한 권한이다.
사용자의 개인 민감 정보에 직접적으로 접근하지는 않는다.
https://developer.android.com/reference/android/Manifest.permission#normal-permissions
Dangerous Permission
사용자의 개인 정보에는 직접적으로 접근하는 위험 권한은 사용자가 권한을 허락해야 앱에 Next Step이 가능함
CAMERA: 카메라 사용 권한
READ_CONTACTS: 주소록 읽기 권한
WRITE_CONTACTS: 주소록 쓰기 권한
https://developer.android.com/reference/android/Manifest.permission#dangerous-permissions
'Android' 카테고리의 다른 글
[android] Android 11에서 전화번호 읽기 권한 (0) | 2023.07.09 |
---|