반응형
Notice
Recent Posts
Recent Comments
관리 메뉴

꿈꾸는 사람.

[안드로이드 킷캣] SD 카드 정책 변화. 본문

IT/Android

[안드로이드 킷캣] SD 카드 정책 변화.

현무랑 니니 2014. 4. 23. 06:39
반응형


안드로이드는 오픈 핸드셋 얼라이언스(OHA)란 단체에서 만든 모바일 운영 체제로 출발하여 4.4 버전의 킷캣까지 발표되었다.

초창기의 어설픈 운영 체제에서 눈부신 발전을 거듭하여 모바일 운영 체제의 대표로 자리 잡았다.

그 과정에서 구글의 역할이 지대하였음을 주지의 사실이다.


아이폰에 비해 출발은 미약하였으나 발전의 속도는 더욱 빨리 이제는 우열을 가리기 힘든 상황이 되었다.

하지만 새로운 운영 체제로 업데이트마다 발생하는 불편은 점점 커져 가고 있다.


특히, 오픈 소스를 지향하던 구글이 점차 본색을 드러내어 폐쇄성과 강제성이 커지고 있다.

안드로이드 킷캣 발표 후 많은 서드 파티 어플에서 SD 카드에 쓰기가 안되어 문제가 되고 있다.


필자는 아스트로 파일 관리자를 쓰는데 SD 카드에 있는 음악 파일이 삭제가 안되어 애를 먹었다.


이에 안드로이드 킷캣에서 SD 카드에 접근하는 방법에 달라진 것을 조사하고 왜 구글이 이런 정책 변화를 택하였는지 나름대로 정리하였다.


1. 안드로이드의 저장장치(storage) 관련 용어들.

안드로이드 개발자 사이트들에는 저장장치에 대한 상당히 많은 용어들을 사용하고 있다.

이것이 많은 혼란을 야기하는데 일반적인 용어에 구글만의 정책이 가미되어 그 쓰임새에 제약이 있기 때문이다.


먼저, 다양하게 쓰이는 저장장치 관련 용어들을 설명하고 구글의 정책 관점에서 저장장치가 어떻게 분류되는지 알아보자.

 용어

 설명 

Internal Storage (내부 저장장치) 

 내장 플래시 메모리. 개인 정보를 저장하는 곳 

 External Storage (외부 저장장치)

 이동식 저장 장치나 내부 저장장치

 Removable Storage

 SD card와 같은 저장장치

 Non-removable Storage

 Internal Storage 

 Transient Storage device

 USB 대용량 저장 드라이브

 Primary external storage

 주 외부 저장장치 

 Secondary external storage

 보조 외부 저장장치 

 Semi-permanent part of the device

 SD card slot 


먼저 정리되지 않았고 중복된 것을 알 수 있다.

안드로이드 킷캣에서 변화된 부분 중 앱의 저장장치 접근 권한에서 보면 아래와 같이 정리할 수 있다.

용어 

설명 

 Primary external storage (주 외부 저장장치)

 내장 플래쉬 메모리. (에뮬레이터 계층을 통해 보여지는  내부 저장장치의 일부.)

 앱이 "쓰기"가 가능하다.

 Secondary external storage (보조 외부 저장장치)

 SD 카드 같은 물리적 미디어.

 앱이 "쓰기"가 불가능하다.


즉, SD 카드에 쓸 수 없게 되었다. (쓸 수 없으므로 지울 수도 없다.)

이것은 안드로이드의 장점이 자유로운 사용이 제한된다는 것이다.


2. 외부 저장장치의 보안

안드로이드의 외부 저장장치에 대한 기술적 내용에 아래와 같은 내용이 있다.

외부 저장장치에 대한 접근은 다양한 안드로이드 권한으로 보호된다. 안드로이드 1.0부터 쓰기는 WRITE_EXTERNAL_STORAGE 권한으로 보호된다. 안드로이드 4.1부터 읽기는 READ_EXTERNAL_STORAGE 권한으로 보호된다. 안드로이드 4.4부터 외부 저장장치의 파일의 소유자, 그룹 및 모드는 이제 디렉토리 구조에 통합된다. 이것으로 앱이 WRITE_EXTERNAL_STORAGE 권한을 갖지 않지 않아도 자신의 패키지에 한정된 디렉토리를 외부 저장장치에서 관리할 수 있다. (즉, WRITE_EXTERNAL_STORAGE 권한 여부와 관계없이 앱이 자신의 데이터가 있는 외부 저장장치의 디렉토리에 접근 할 수 있다는 것이다.) 외부 저장장치는 저장된 데이터에 대한 최소한의 보호를 제공하기 때문에 시스템 코드는 민감한 데이터를 외부 저장장치에 저장하지 않는다. 특히, 설정과 로그 파일은 효과적으로 보호될 수 있는 내부 저장장치에만 저장되어야 한다.

[원문 링크: http://source.android.com/devices/tech/storage/#multiple-external-storage-devices]

이 내용에서 중요한 것은 SD 카드 (secondary external storage)에 대한 쓰기 권한이 변경되었다는 것이다.


이유를 추측하여 하나의 소설을 써보면,

1. 앱들에게 SD카드를 자유롭게 쓸 수 있게 했었다.

2. 파일 관리자 앱에서 SD 카드의 파일을 지웠더니 음악 앱에서 노래를 찾지 못한다. (실제 노래는 지워졌지만 이전에 만든 노래의 정보는 남아 있기 때문이다.)

3. 바이러스나 해킹 등으로 중요한 정보가 유출될 수 있다. (아이폰에 비해 느슨한 보안 정책으로 정보 유출 가능성이 높다.)

4. 구글에서 이를 심각하게 받아들이고 대책을 강구한다. 결과로 SD 카드에는 앱에 "쓰기" 권한을 없애 버린다.


3. SD 카드 정책 변경에 따른 문제점.

안드로이드 킷캣 이전의 앱들은 SD 카드에 접근할 수 있는 권한이 있었다.

SD 카드의 사진(DCIM), 음악(Music)이나 영상(Video)과 같은 중요한 디렉토리를 포함하여 어떤 부분도 읽고 쓸 수 있었다.


아직 대부분의 앱들은 킷캣의 변경된 SD 카드 정책을 적용하지 않았다.

킷캣이 탑재된 안드로이드 스마트 폰을 새로 구매하거나 업그레이드를 한 사용자가 이런 앱들을 내려받아 설치한다.


음악 앱이 SD 카드를 포함하여 외부 저장장치의 모든 폴더를 찾아 음악 파일의 데이테 베이스를 SD 카드에 저장하였다.

SD 카드에도 앱이 자신의 패키지 별 디렉토리에는 접근할 수 있다.

여기까지는 문제가 없다.


그러나 음악 파일을 다른 경로로 옮기거나 지울 수 없다.


때문에 SD 카드에서 쓰기 기능을 가진 앱들이 제대로 동작하지 않을 것이다.


다행스럽게도 안드로이드 킷캣 디바이스를 컴퓨터에 연결하여  USB 대용량 저장장치 기능을 활성화하면 수정할 수 있다.


4. 결론

구글이야 사용자들이 보안을 강화하는 조치를 수용하기를 바라겠지만 어디 바라는대로 되는 것이 세상일인가?

킷캣 이전의 젤리빈에 머물수도 있고 다른 스마트 폰으로 옮겨갈 수도 있다.

안드로이드 사용자에게는 편리성이냐 보안이냐에서 선택이 남았다.


반응형
Comments