2014년 11월 5일 수요일

안드로이드 Manifest Permissions


안드로이드 개발시, 앱의 사용 권한을 Manifest 에 지정 해야 한다.

테스트 할 때야 쓸만한 권한 이것 저것 다 지정해놓고 써도 상관 없겠으나,
실제로 앱을 배포시 나중에 문제가 되지 않을려면 가급적 최소한의 권한만을 지정해 놓고 쓰는 것이 좋다.

예를들어, "ACCESS_FINE_LOCATION" 이 있는데, 이 권한을 쓰면서, 앱을 실행시, "사용자 정보 수집 동의" 단계를 거치도록 만들어 놓지 않으면, "개인정보침해사고점검팀" 같은데서 개선 요구 공문을 받게 될 수도 있다.
사용자의 위치를 앱이 수집할수 있게 되는 것이므로, 사용자에게 동의를 구해야 한다는 것.

사용자 정보가 필요한 경우라면 당연히 그렇게 처리 해야 하지만, 이 권한을 딱히 쓰지 않거나 위치정보가 그다지 필요가 없는 경우라면 지우는게 좋다.

요즘은 워낙에 개인정보에 민감하게 반응하는 경우가 많고, 법규가 수시로 바뀌고 그러니, 나중에 귀찮지 않을려면 배포하는 앱에 애초에 쓸데 없는 권한을 아예 안가지고 있는것이 좋다.

이미 지정되어 있는 권한이 어떤 것인지 알아 보려면 아래의 표를 참고 해보면 된다.


ACCESS_CHECKIN_PROPERTIES
체크인데이터베이스의 속성테이블로 액세스
ACCESS_COARSE_LOCATION
코스 로케이션 액세스 (Cell-ID/WiFi)
NETWORK_PROVIDER 만 사용가능
ACCESS_FINE_LOCATION
파인 로케이션 액세스(GPS)
NETWORK_PROVIDER GPS_PROVIDER 둘 다 사용가능
ACCESS_LOCATION_EXTRA_COMMDS
로케이션 옵션 커맨드 액세스
ACCESS_MOCK_LOCATION
목 로케이션 프로바이더 생성 (테스트용)
ACCESS_NETWORK_STATE
네트워크 상태 접근
ACCESS_SURFACE_FLINGER
서피스 플링거 접근
ACCESS_WIFI_STATE
WiFi상태 접근
ADD_SYSTEM_SERVICE
시스템서비스 추가
BATTERY_STATS
배터리 상태
BLUETOOTH
블루투스
BLUETOOTH_ADMIN
블루투스 어드민
BRICK
디바이스 실효성 지정
BROADCAST_PACKAGE_REMOVED
제거된 패키지에 대한 notification 브로드캐스트
BROADCAST_SMS
SMS에 대한 브로드캐스트
BROADCAST_STICKY
인텐트 브로드캐스트
CALL_PHONE
통화
CALL_PRIVILEGED
통화(긴급전화 포함)
CAMERA
카메라
CHANGE_COMPONENT_ENABLED_STATE
컴포넌트의 실효성 변경
CHANGE_CONFIGURATION
컨피그 변경
CHANGE_NETWORK_STATE
통신상태 변경
CHANGE_WIFI_STATE
WiFi상태 변경
CLEAR_APP_CACHE
어플리케이션 캐시 클리어
CLEAR_APP_USER_DATA
어플리케이션의 유저 데이터 클리어
CONTROL_LOCATION_UPDATES
위치정보 갱신
DELETE_CACHE_FILES
캐시파일 제거
DELETE_PACKAGES
패키지 제거
DEVICE_POWER
전원상태에 대한 로우 레벨 접근
DIAGNOSTIC
진단리소스 읽기/쓰기
DISABLE_KEYGUARD
키 가드 끄기
EXPAND_STATUS_BAR
상태표시줄 확장
FACTORY_TEST
팩토리 테스트
FLASHLIGHT
플래시라이트
FORCE_BACK
포스백
GET_ACCOUNTS
어카운트 획득
GET_PACKAGE_SIZE
패키지 획득
GET_TASKS
태스크 획득
HARDWARE_TEST
하드웨어테스트
INJECT_EVENTS
유저이벤트
INSTALL_PACKAGES
패키지 인스톨
INTERNAL_SYSTEM_WINDOW
내부 시스템윈도 활용
INTERNET
인터넷
MANAGE_APP_TOKENS
어플리케이션 토큰관리
MASTER_CLEAR
마스터 클리어
MODIFY_AUDIO_SETTINGS
오디오설정 편집
MODIFY_PHONE_STATE
전화상태 편집
MOUNT_UNMOUNT_FILESYSTEMS
파일시스템 편집
PERSISTENT_ACTIVITY
액티비티 지속
PROCESS_OUTGOING_CALLS
전화 발신처리 접근
READ_CALENDAR
캘린더 읽어오기
READ_CONTACTS
주소록 읽어오기
READ_FRAME_BUFFER
프레임버퍼 읽어오기
READ_INPUT_STATE
상태 읽어오기
READ_LOGS
로그 읽어오기
READ_OWNER_DATA
owner data읽어오기
READ_PHONE_STATE
통화상태 읽어오기
READ_SMS
SMS 읽어오기
READ_SYNC_SETTINGS
동기설정 읽어오기
READ_SYNC_STATS
동기상태 읽어오기
REBOOT
reboot
RECEIVE_BOOT_COMPLETED
boot완료
RECEIVE_MMS
MMS수신
RECEIVE_SMS
SMS수신
RECEIVE_WAP_PUSH
WAP수신
RECORD_AUDIO
오디오 수신
REORDER_TASKS
태스크 Z오더
RESTART_PACKAGES
패키지 리스타트
SEND_SMS
SMS송신
SET_ACTIVITY_WATCHER
액티비티 왓쳐지정
SET_ALWAYS_FINISH
액티비티 전체 종료
SET_ANIMATION_SCALE
스케일 애니메이션 지정
SET_DEBUG_APP
디버그어플리케이션 지정
SET_ORIENTATION
스크린 로테이션지정
SET_PREFERRED_APPLICATIONS
자주 사용하는 어플리케이션 지정
SET_PROCESS_FOREGROUND
포어그라운드 처리지정
SET_PROCESS_LIMIT
제한처리 지정
SET_TIME_ZONE
타임존 지정
SET_WALLPAPER
배경화면 지정
SET_WALLPAPER_HINTS
배경화면 힌트 지정
SIGNAL_PERSISTENT_PROCESSES
지속처리 시그널 지정
STATUS_BAR
상태표시줄 지정
SUBSCRIBED_FEEDS_READ
서브스트립드 피즈 읽어오기
SUBSCRIBED_FEEDS_WRITE
서브스트립드 피즈 쓰기
SYSTEM_ALERT_WINDOW
알림 윈도우
VIBRATE
진동
WAKE_LOCK
알람
WRITE_APN_SETTINGS
APN설정 쓰기
WRITE_CALENDAR
캘린더 쓰기
WRITE_CONTACTS
주소록 쓰기
WRITE_GSERVICES
G서비스 쓰기
WRITE_OWNER_DATA
owner data쓰기
WRITE_SETTINGS
설정 쓰기
WRITE_SMS
SMS쓰기
WRITE_SYNC_SETTINGS
동기설정 쓰기