본문 바로가기

IT 정보/Mobile, Cloud

킷캣에서 외장메모리 사용하기

반응형
킷캣에서 외장메모리 사용하기 

안드로이드 OS의 최신버전인 킷캣(KitKat, 4.4 버전)에서는 외장메모리(sd메모리)에 쓰기 권한이 기본적으로 빠졌다. 
기본적으로 설치되어 있는 앱(내파일 등)에는 쓰기 권한이 주어지지만 그외 다운받은 앱에는 구글의 정책상 외장메모리의 파일을 읽을 수는 있으나 쓸 수는 없다. 

이번에 note8.0이 킷캣으로 업데이트 되면서 킷캣을 처음 써봤는데 외장메모리 쓰기 금지로 인해 난감한 상황이 발생했다. 
하이드라이브 설치를 위해 NAS에서 맵(2gb정도)을 외장메모리로 복사해야 하는데 
es탐색기에서 복사를 실행하면 권한 문제로 쓰기가 실패한다. 

데이터 크기가 적다면 그냥 내장메모리로 복사하고 "내파일"앱으로 외장으로 옮기면 되는데 size가 크다보니 휴... 

그러다가 찾은 방법이 외장메모리의 /Android/data 폴더에 해당 앱 디렉토리를 만들어주면 쓰기가 가능하다는 것이다. 
해당 앱의 폴더 이름은 내장메모리/Android/data 폴더에서 찾아보거나(없을 수도 있음) 
Astro 앱의 어플리케이션 관리 기능에서 해당 앱의 property를 보면 나와 있다. 
예를 들어 es탐색기는 com.strongs.android.pop (버전, 기기 등에 따라 다를 수 있음) 

그러니까 외장메모리 /storage/extSdCard/Android/data/com.strongs.android.pop 폴더를 만들어 주면 된다는 것이다. 

여기서 잠깐 착각한게 저 폴더를 만들어주면 외장메모리를 마음대로 쓸 수 있는 줄 알았다. 웹에서 찾은 글에도 그냥 쓰기 가능해진다라고 되어 있어서... 



하지만 정확히는 
해당앱에서 /storage/extSdCard/Android/data/ 밑에 만든 해당앱 폴더에만 쓰기 가능해진다는 것이다. 다른 폴더에 쓰기는 여전히 거부된다. 


뭐 이정도만 해도 내가 원했던 NAS==>외장메모리로의 복사는 성공했다. 뭐 "내파일" 앱으로 다시 한번 진짜 원하는 위치로 이동을 해줘야하긴 하지만 모자란 내장메모리에 다운받았다가 외장으로 옮기는 작업은 안해도 된다. 

다른 앱도 이런식으로 /storage/extSdCard/Android/data/ 폴더에 해당앱 폴더를 만들어 활용하면 되겠다. 


만약 루팅되어 있다면 system 파일을 수정하면 저런거 필요없이 외장메모리 전체를 다 사용가능하다. 
아래처럼 직접 수정하거나 저렇게 해주는 앱으로 하면 된다. 

1) /system/etc/permissions/platform.xml 파일을 텍스트 에디터로 엽니다. 
2) 퍼미션 중 android.permission.WRITE_EXTERNAL_STORAGE 으로 찾아 갑니다 
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" > 
<group gid="sdcard_r" /> 
<group gid="sdcard_rw" /> 
</permission> 

3) 저기에 media_rw 를 추가합니다. 
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" > 
<group gid="sdcard_r" /> 
<group gid="sdcard_rw" /> 
<group gid="media_rw" /> 
</permission> 

4) 재부팅 후 외장메모리에 데이타를 마음껏 사용 할 수 있습니다.
반응형