마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 APK Expansion Files 를 어떻게들 사용하시나요??

0 추천

제목 그대로 입니다.

안드로이드에서 제공하는 APK Expansion Fi을 les어떻게 사용하고 계신가요?
일반적으로 어떻게 사용하고 계시는지 궁금합니다.
 
 
그리고 JOBB를 사용해보셨나요??
파일이 200MB정도 되는 미디어의 묶음을 obb파일로 만들려고 했는데, "java.io.IOException: FAT Full" 예외가 자꾸 발생하네요.
 
stack overflow에 관련글이 2개 있는데, 하나는 파일의 개수이고, 다른 하나는 개별 파일의 용량인 것 같습니다.
개수는 아닐테니... 저의 경우는 용량이 의심스럽긴 합니다 ㅠㅠ;
실제로 테스트 해보면, 전체 용량이 500MB가 안넘으면 오류는 발생하지 않더군요.
대신 암호를 설정하면, 풀수는 없습니다 -_-;
 
아무래도 zip으로 만들고.. Google Play에 올려야 500MB 이상이 가능 할 것 같더군요..
 
조언 부탁드립니다.
호군 (540 포인트) 님이 2013년 7월 12일 질문

1개의 답변

0 추천

일단 파일을 업로드 하는데에는 별 거 없습니다. 

다시 다운받는게 문제이지만.. ㅎ

 

업로드는 http://developer.android.com/google/play/expansion-files.html 에서 확인해 보시면 알겠지만

[main|patch].<expansion-version>.<package-name>.obb

이렇게 네이밍 포멧이 있습니다. 

주로 main 파일을 업로드를 많이 하는데 

예를들어 project package name 이 com.android.test 라고 하고 manifest.xml에 적은 버전코드가

1 이라면 main.1.com.android.test.obb 이렇게 네이밍해서 파일을 업로드 하시면 됩니다.

 

expansion file은 main , patch 이렇게 2개를 올릴수 있고 각각 최대 2G 씩 최대 (main + patch)  4G를 

업로드 할 수 있습니다. 

 

Google Play에서 앱을 다운받을때에는 apk 를 먼저 다운받고 자동으로 /sdccard/Android/obb 영역에

나머지 파일을 받아서 사용자는 파일이 분리되어 있는지 못느낍니다. 

 

주로 zip 파일과 mp4 를 사용하는 사례가 많이 있습니다.

http://gameforfun.tistory.com/entry/Google-Expansion-File-%EC%84%A4%EB%AA%85

아즈라엘 (4,010 포인트) 님이 2013년 7월 12일 답변
이 질문을 드리게된 이유는 obb파일의 암호화 때문입니다.

일반적으로 미디어 파일의 경우 저작권 문제나 다른 사람이 쉽게 사용하지 못 하도록 제한을 두고 싶을 거라고 생각됩니다.

그런데 이 obb 파일은 shared 영역에 다운로드하게됩니다.
즉, 누구나 obb파일만 있다면, 안에 있는 데이터에 접근이 가능하다는 의미입니다.

일반 사용자는 접근 할 이유가 없지만, 내용을 알고 있는 사람들은 접근해서 미디어 정보를 빼갈 수도 있을 거라고 봅니다.

그래서 obb 암호화를 위해서 jobb를 사용해봤지만 정상적으로 동작하고 있지 않습니다. (제가 잘 못한 것일까요..?)

그래서 일반적으로 expansion files 를 이용하면, 암호화를 하는지...
그렇다면 어떻게 사용하지가 궁금해서 질문을 드리게 됐습니다.

아즈라엘 님은 어떻게 사용하셨나요...?
expansion file 은 확장자 .obb 만 올릴수 있습니다.

예를들어 res.obj 파일을 업로드 하려면..  main.1.com.android.test.obb 와 같이 네이밍을 해야 한다는거죠..

하지만 파일의 이름만 바뀌었을뿐.. main.1.com.android.test.obb 내용은
res.obj 와 같습니다.

따라서 암호화된 파일을 올리고 싶다면  암호를 한 파일을 네이밍만 제대로 해서 올리고 다운받아서 암호를 복원시키면 될 것 같습니다.
아즈라엘님 답변 감사합니다.

아즈라엘님 말씀 처럼 올렸다는 것은 대부분은 obb 파일을 암호화 하지 않는다는 거군요. 그리고 그 안의 파일들에 암호화를 해서 사용하고 있다고 봐도 되겠네요..? 또는 아에 암호화를 하지 않았다던가...

하지만, 암호화를 한 경우,그림같이 용량이 상대적으로 적은 미디어들은 실시간으로 복호화하는 것이 가능 할 거라고 생각되지만, 음악이나 동영상 같은 경우 암호화를 하게되면.... 복호화하는데 상대적으로 시간이 많이 걸릴거라고 봅니다. 즉, 어플리케이션의 질을 현저히 떨어트린다고 생각됩니다.

그러면 초기에 private 영역에 미리 풀어서 사용하나요? 그 경우 필요한 공간이 2배로 늘어나게 되는데.. 조금 문제가 있지 않나 생각이 들어서요..

다시 말해서... obb파일이 2GB라면.. 4GB의 공간이 있어야.. 미디어를 풀고 저장을 할 수 있게되잖아요..?

혹시 좋은 방법 알고 계신게 있으면 좀 도와주세요~
최초의 질문이 잘못된듯 합니다.

sdcard에 노출되는 파일을 어떻게 사용자로부터 보호하느냐? 이게 질문의 요점인듯하 하네요..

일단... sdcard는 알다시피 공용공간이기 때문에.. 사용자 혹은 타 어플에서도 접근가능한 영역이라 이공간에 데이터를 넣으려면 암호화 하여 사용하면 안전하겠네요..

암호화 하면 또 문제가 발생되는게 복구화 시키는데 시간이 오래 걸린다는거죠..

따라서 모든 파일을 암호화 하지 마시고.. 바이너리를 앞부분만 하시던가..뒷부분만 하시던가 ..특정부분만 암호화 하고..복구하세요..

전 예전에 100mb 파일을 바이트로 읽어들여 앞부분 128byte 만 암호화해서 다시 저장한 다음에 복구화 해서 사용했습니다.

그냥 저만 키를 ^ (exclusive or)로 변경하여 사용했었습니다.

여러가지 방법이 있으니 부분 암호화에 대해서 검색해보세요..
다시 답변 감사드립니다.
일부분만 암호화를 하는 방법도 있겠군요.
그 부분은 생각해보지 않았는데... 많은 도움이 됐습니다!
감사합니다~^^


그리고 제 질문을 요약하면 이렇습니다.
1. 일반적으로 Expansion Files를 어떻게 사용하고 있는가..?
2. JOBB 사용에 어려움을 겪고 있는데, 해결하신 분의 조언을 구합니다.
이렇게 두 가지 입니다.

1번째 질문에는 상당히 포괄적인 질문이였습니다.
단순히 google play를 통해서 obb파일을 생성하고 있는지.. 아니면 tool을 사용해서 생성하고 있는지...
google play를 통해서 obb파일을 생성하면 obb파일에 암호화를 할 수 없게되는데, obb 파일이 담고 있는 데이터들은 보호하고 있지 않는지... 암호화를 하면 어떤 식으로 하고 있는지... 대략 이런 걸 물어보는 질문 이였습니다.
그래서 첫번째 질문은 많은 분들의 경험을 듣고자 포괄적으로 질문을 드렸습니다.

2번째 질문은 Android SDK에서 제공하는 JOBB 툴을 사용하신 경험이 있는 분에게 도움을 얻고자 하는 내용입니다.
...