태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.
Open2World 블로그에 오신것을 환영합니다^---^
열린 마음으로 세상을 보라! 푸른빛의 ⓞpen2ⓦorld™ ⓗome!
: 위치로그 : 미디어로그 : 태그 : 방명록 : 관리자 : 새글쓰기
보이기/숨기기 가능합니다^^
분류 전체보기 (296)
ⓞ2ⓦ 세상사는 이야기 (61)
ⓞ2ⓦ TALK TALK! (150)
ⓞ2ⓦ 각종 INFO (7)
ⓞ2ⓦ 컴터 HOW (77)
ⓞ2ⓦ 기타 (1)
보이기/숨기기 가능합니다^^
2014/01 (14)
전체검색
'SD카드'에 해당되는 글 2건
[안드로이드] SD카드 쓰기 문제 관련 - 특히 최근 LG G2 4.4 업데이트와 관련해서...
ⓞ2ⓦ TALK TALK!/○○⑨ 모바일TALK | 2014.01.04 10:29

최근에 4.4 올라간 G2에서 서드파티 어플이 SD카드에 파일 쓰기가 불가능하다는 문제가 발견되었는데요. 사실 이 문제는 허니콤, ICS때부터 시작된 굉장히 오래된 문제입니다. 대부분 100% 구글이 만든 순정 안드로이드가 아니라 제조사가 수정한 안드로이드를 쓰고 계셔서 몰랐을 뿐이지요.

 

일단 가장 중요한 개념부터 챙겨봅시다. 안드로이드에서 엄연히 말하자면 기기의 '내장' 플래시 메모리는 사실 '주 외장 저장장치 (primary external storage)'입니다. Internal Flash Memory 지만 시스템, 어플 데이터 파티션과 구분해서 external storage로 규정합니다. 그리고 흔히 언급되는 SD카드는 '2차 외장 저장장치 (secondary external storage)'고요.

 

구글은 놀랍게도 허니콤, ICS 때부터 이 '2차 외장 장치'인 SD카드에 쓰기 작업을 못하도록 막았습니다. 어떻게 막았을까요?

 

진저브레드까지는 WRITE_EXTERNAL_STORAGE 권한만 있으면 '주 외장 저장장치'나 '2차 외장 저장장치' 모두에 쓰기 작업이 가능했습니다. 하지만 허니콤, ICS 이후 부터는 권한을 나누었습니다. WRITE_EXTERNAL_STORAGE는 '주 외장 저장장치'에만 적용이 되고 '2차 외장 저장장치'나 OTG를 활용한 메모리 등에 쓰기 위해서는 WRITE_MEDIA_STORAGE가 필요하도록 했죠.

 

문제는 안드로이드 순정 상태에서 WRITE_MEDIA_STORAGE 권한은 시스템 또는 제조사 기본 탑재 어플만 획득이 가능하다는 것입니다. 즉, 사용자가 설치하는 서드 파티 어플은 WRITE_MEDIA_STORAGE 권한을 얻을수 없기 대문에 '2차 외장 저장장치'인 SD카드에 파일을 쓰는 것이 불가능하죠.

 

이렇게 한 구글의 정확한 의도는 아무도 모르나 몇가지 추정 또는 제기된 이유 정보에 따르면...

 

1. 구글은 정책적으로 외장 SD카드 이용을 권하지 않는다는 것입니다.

2. 구글은 넥서스S부터 어떤 레퍼런스 기기도 SD카드 지원을 하지 않습니다. SD카드 지원 기기는 처음에 나온 넥서스원이 유일하죠.

3. 구글은 사용자가 자사의 클라우드 서비스 즉, 유투브, 구글 뮤직, 지메일, 구글 드라이브 등을 적극적으로 활용하기를 바라고 있습니다.

 

이유야 어쩄든 2차 외장 저장장치인 SD카드 지원에 구글이 매우 소극적인건 사실입니다.

 

삼성은 갤럭시S2부터 그래서 편법으로 /system/etc/permission/platform.xml을 수정해 WRITE_EXTERNAL_STORAGE 권한을 부여시 uid에 media_rw도 추가되도록, 즉 WRITE_EXTERNAL_STORAGE 권한을 부여하면 WRITE_MEDIA_STORAGE 권한도 주도록 설정되어 있습니다. 어찌보면 권한 하나를 요구했는데 권한을 하나 더 공짜로 주는 조금 지저분한 FIX가 아닐까 싶긴 합니다. 최근 젤리빈 4.3 까지 모두 이 FIX가 적용되어 있습니다. (갤럭시 노트2 4.3 펌웨어 통해서 확인했습니다.)

 

커롬계의 유명한 Cyanogenmod도 역시 http://www.xda-developers.com/android/android-3-2-code-inadvertently-preventing-write-access-to-external-storage/ 처럼 처음 문제가 발생한 시점부터 고유한 수정 방식을 사용하고 있습니다. 최근에 CM11도 갤럭시S4 미니의 예를 보면 http://review.cyanogenmod.org/#/c/55316/ 와 같이 init 스크립트를 통해 서드파티 어플의 SD카드 쓰기를 활성화해주고 있죠.

 

LG도 킷캣 이전에 분명히 어떤 방식으로든 SD카드 쓰기 권한 부문을 순정 안드로이드에서 수정을 해서 적용했기에 서드 파티 어플이 SD카드에 파일을 쓰는데 문제가 없었을 겁니다. 킷캣에서는 그게 빠졌거나 기존 수정 방식이 킷캣에 먹히지 않아서 반영이 되지 않았거나 등 여러 이유가 있을듯 싶네요. 아니면 정말 구글이 권고하는 방향으로 서드 파티 어플의 SD카드 쓰기를 금지할 생각일수도 있다고 봅니다.

 

현재 갤럭시S4 GPE의 경우도 SD카드 쓰기 관련해서 구글의 안드로이드 권고사항을 충실히 따르고 있어 4.3, 4.4 모두 순정 상태에서는 서드 파티 어플의 SD카드 쓰기가 안됩니다.

일단 현재 상황은 이렇게 나중에 추가 정보나 수정할 부분이 있으면 수정하도록 하겠습니다.

 

 

*참고자료
http://www.chainfire.eu/articles/113/Is_Google_blocking_apps_writing_to_SD_cards_/

http://forums.androidcentral.com/samsung-galaxy-s4-google-edition/340591-safe-install-android-4-4-kit-kat-my-ge-s4.html

 

p.s. 안드로이드 4.4 킷캣에서 변경된 사항으로 External Storage인 내장 플래시 메모리의 Android/data/패키지명 경로는 WRITE_EXTERNAL_STORAGE 권한 없이 서드파티 어플리케이션이 쓸 수 있도록 변경되었습니다만 이건 '2차 저장 장치'인 SD카드에 대한 서드파티 어플리케이션의 쓰기 권한 문제와는 다른 문제입니다. 여전히 2차 저장 장치인 SD카드 쓰기 권한 문제는 그대로 존재합니다. 사실 구글은 SD카드를 쓰지 않도록 권고 하고 있는 입장이기 때문에 별 관심이 없는게 사실이죠.

신고
Trackback 0 : Comments 4
위로
From. ALae 2014.02.12 02:10 신고
PERMALINKDELETE/MODIFYREPLY
글 잘 보았습니다... 현재 G2 4.4.2 사용중인데 sd카드로 사진이동이 안되어 인터넷에 검색하던중 이 글을 발견했네요. 갤러리 어플은 퀵픽을, 탐색기어플은 예전부터 편하게 썼던 루트익스플로러를 쓰고 있는데... 굳이 이것들을 써야겠다면 결론은 루팅인가요...
From. Favicon of http://open2world.tistory.com 푸른빛 Open2World 2014.02.15 16:35 신고
PERMALINKDELETE/MODIFY
킷캣에 새로 추가된 API에 대응해서 앱들이 업데이트 되면 어느정도 외장 메모리 사용이 가능하긴 한데 폴더 생성 삭제 등 안되는 부분들이 여전히 있을 수 있습니다. 루팅하는게 마음 편하긴 합니다.
From. 서인내 2014.04.16 16:36 신고
PERMALINKDELETE/MODIFYREPLY
옵G프로 4.4 킷캣 업데이트 후 똑같이 서드파티 어플 sd카드 쓰기권한 막혔네요. 젤리빈까진 잘 됐었는데 ... 업뎃 후회중입니다
From. 유진수 2014.07.19 06:13 신고
PERMALINKDELETE/MODIFYREPLY
감사합니다... 하루종일 찾아다녔엇던 보답이 이글에있네요
백업이 내장에만 되어서 짜증내던중 님의 브포스팅을 읽고 sd카드로 백업이가능해졋스빈다....감사합니다
[안드로이드] 안드로이드 내장 메모리 용량 부족 문제 해결 : 내장 메모리 외장 메모리 (SD카드)로 링크 걸기 - FolderMount, GL to SD
ⓞ2ⓦ TALK TALK!/○○⑨ 모바일TALK | 2013.11.25 22:10


안드로이드에는 32GB, 64GB, 128GB 등 비교적 고용량의 내장 메모리를 달고 나오는 제품들이 있지만 8GB, 16GB의 좁디 좁은 저용량의 내장 메모리를 달고 나오는 제품들도 있습니다. 특히 옵티머스 LTE3, 갤럭시S4 미니 등 8GB 메모리를 달고 나오는 기종들은 아스팔트 같은 고용량의 게임이나 ○○사전 같은 고용량의 사전 어플을 까는게 두렵기까지 합니다.

그래도 다행인 점은 넥서스 시리즈나 옵티머스G를 제외한 대부분의 안드로이드폰은 SD카드를 지원한다는 사실입니다. SD카드는 현재 SDXC 규격으로 최대 128GB까지 지원이 가능하죠. 현재 가격대 성능비를 고려해 가장 많이 나가는 것은 32GB SDHC고요. 32GB TLC가 2만원 이하, 32GB MLC가 4만원대로 저렴한 가격으로 용량을 확장할 수 있습니다.

현재 안드로이드는 과거 (2.X 시절)와 달리 MTP 파일 전송 시스템을 채택하면서 내장 메모리는 ext4로 /sdcard 와 /data 파티션이 한 공간을 공유하죠. 4.1.2까지는 이런 변화로 2.X시절처럼 SD카드 어플 이동이 지원되지 않았지만 4.2.2 이상에서는 예전처럼 다시 SD카드 어플 이동을 지원하기 시작했고요.

하!지!만! SD카드 어플 이동은 모든 어플이 지원하지 않습니다. 또!한! 어플을 설치하고 보면 고용량의 데이터를 따로 받는 어플들 (특히 아스팔트 같은 게임)이 있는데 이 어플들은 고집스럽게도 이 데이터를 내장메모리인 /sdcard에 저장합니다. 개발자가 외장 메모리 (SD카드)로 데이터 이동을 지원하면 되는데 그렇지 않아 외장 메모리 (SD카드) 파티션에 데이터를 저장할 수 없는 경우가 대부분이죠. 어플은 외장메모리인 SD카드로 이동이 되는데 500MB~2GB에 달하는 어플 데이터만 내장 메모리에 남는 경우도 상당 수 있습니다. 이런 이유로 64GB, 128GB SD카드를 쓰는데도 제대로 활용 하지 못하고 내장 메모리 용량 부족으로 어플을 더 이상 깔지 못하는 사태가 발생할 수 있죠.

언제까지 답답하게 하나의 어플 하고자 다른 어플 지우고 하는 일을 반복할 수는 없겠죠. 이 문제에는 확실하 해결책들이 있지만 안타깝게도 루트 권한을 요구합니다.

[내장 메모리 용량 부족을 해결하는 방법]

1) 내장 메모리 파티션과 외장 메모리 파티션 맞바꾸기

2) 내장 메모리 특정 디렉토리를 외장 메모리로 링크하기

1번은 다소 어렵고 복잡하기도 하고 복구시 힘이 들기 때문에 여기서는 쉽고 간단하고 확실한 2번 방법을 설명드리도록 하겠습니다.

[내장 메모리 특정 디렉토리를 외장 메모리로 링크하기]


1) 두가지 어플 중 하나를 선택해서 설치하시면 되는데 여기서는 FolderMount 기준으로 설명드리겠습니다.


- GL to SD

https://play.google.com/store/apps/details?id=com.slf.ListglApp

- FolderMount

https://play.google.com/store/apps/details?id=com.devasque.fmount


무료 기준으로 GL to SD는 광고는 있지만 자유롭게 사용 가능하고 FolderMount는 폴더 3개만 링크 가능합니다. 다만 GL to SD는 Play Store 올라온 최신 버전 기준 안드로이드 4.2 부터 지원하고 FolderMount는 안드로이드 2.3 부터 다 지원합니다. 물론 유료 결제하면 GL to SD는 광고가 사라지고 FolderMount는 갯수 제한이 사라집니다. 유료 결제는 인앱 결제이고 둘다 2~3천원 정도로 저렴합니다.

2) FolderMount를 실행합니다. 루트 권한 요구하면 승인해 줍니다. 그리고 여기서 삼성 디바이스의 경우 내장메모리를 SD카드로 정상적으로 링크하기 위해서 사전작업이 필요하다고 하는데 확인해 주고 기기 재부팅 해 줍니다. GL to SD의 경우도 같은 작업을 거칩니다.

3) Folder Mount 우측 상단에 + 버튼을 눌러주면 위와 같은 화면이 뜨는데 Name에는 분류하기 쉽도록 어플이나 게임 이름을 입력해 주시고 Source를 선택해 내장 메모리에서 옮길 어플 또는 게임 데이터 폴더를 선택하시면 어플에서 자동으로 외장 메모리 경로를 선택하고 만들겠냐고 뜹니다. OK 하셔도 되고 Destination 눌러서 다른 곳으로 선택하셔도 상관없습니다. 체크 박스를 누르면 Source 경로에서 Destination 경로로, 즉 내장 메모리에서 외장 메모리 (SD카드)로 데이터를 옮겨줍니다.

4) 그리고 나서 회색 압정을 눌러 초록색 압정으로 바꿔주신후 어플이 잘 실행되는지 테스트 하시면 끝입니다.

8GB, 16GB 내장 메모리 기기 쓰시는 분들에게는 매우 유용합니다. 32GB 이상 제품 쓰시는 분들도 고용량 데이터를 가진 게임이나 어플을 많이 깔 경우 쓸모가 있고요.



신고
Trackback 0 : Comment 0
위로
이전 페이지
[1]
다음 페이지
보이기/숨기기 가능합니다^^
보이기/숨기기 가능합니다^^
«   2017/10   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
보이기/숨기기 가능합니다^^
Architecture and Inte.. 2014
best iherb products 2014
bruna 2014
descarga 2014
Video Games 2014
www.filmperadultigrat.. 2014
lv ルイ ヴィトン ダミエ 2014
investigate this site 2014
Megapolis Hack 2014
Deer Hunter 2014 Hack 2014
RSSFeed
Open2World

티스토리 툴바