한 2주일 동안 붙잡고 하다 보니 꽤 알게 되어서 나중에 귀차니즘에 빠지거나, 바뻐서
제가 작업을 못할 때 다른 분께서 작업해 주시길 바라는 맘에 올려 봅니다.
-----------------------------------------------------------------------------------------------------------------
준비물 (윈도우)
1. apktool 1.3.2 (http://forum.xda-developers.com/showthread.php?t=640592)
2. java (java.com 에서 설치)
3. 7zip
-------------------------------------------------------------------------------------------------------------------
cygwin이나 다른 VM으로 리눅스 환경에서 작업해서 키친 프로그램으로 만들 수도 있으나
복잡한 관계로 가장 쉬운 방법으로 설명 합니다.
APKTOOL 사용법
1. 설치
apktool을 C드라이브의 루트에 폴더를 만들어 깔아줍니다. (예. c:\1)
aapt.exe apktool.bat apktool.jar 이렇게 세 파일만 있으면 됩니다.
2. 어플 디컴파일
우선 자신이 한글화할 롬에서 framework-res.apk와 어플을 복사해서 apktool 폴더에 넣어줍니다.
(framework-res.apk 위치 : system/framework/framework-res.apk)
(app 위치 : data/app 또는 system/app)
윈도우키+R로 cmd를 실행 도스 프롬프트 상태에서 (c:\1) 폴더를 찾아갑니다.
c:
cd\
cd 1
apktool if framework-res.apk -- 어플이 구동되는 프레임워크 라이브러리를 설치 최초 한번만 해주면 됨.
apktool d xxxx.apk -- xxxx.apk 어플을 같은 이름의 폴더에 디컴파일 함
위 명령어를 입력하면 xxxx라는 폴더가 생기며 해당 폴더에 보면 res폴더가 있습니다.
3. value-ko 추가
res폴더에 value-ko 폴더를 생성하고
value폴더에서 strings.xml을 복사해서 value-ko폴더에 넣어 줍니다.
<string name="yes">ok</string>
위와 같이 > < 안에 있는 내용을 한글로 수정해 줍니다.
모든 스트링 값을 수정 하였다면, UTF-8 형식으로 저장해 줍니다.
4. 리컴파일
도스 프롬프트 상태에서
apktool b ./xxxx/ ./done/xxxx.apk --- xxxx폴더에서 작업한 파일들을 done 폴더를 생성하고 그안에 xxxx.apk로 컴파일
이 과정에서 정상적으로 오류 메시지 없이 컴파일 되었다면 문제 없으나, 오류가 발생했을 시엔
1) value에 있는 기본값과 value-ko의 내용이 빠지거나 추가된 부분은 없는가
2) > < 사이 수정 과정에서 <string name="yes">ok</string> 를 <string name="yes">확인</string> 으로
수정해야 되는 것을 <string name="yes">확인/string> 식으로 <를 삭제하진 않았는지
3) 마지막 저장할 때 UTF-8형식이 맞는지 체크하세요.
5. resources.arsc 대체
done폴더의 작업한 apk 파일을 7zip 탐색기로 열면 resources.arsc 가 있습니다.
원본 롬을 7zip탐색기로 열고 해당 어플 apk를 더블클릭해서 들어가면 용량이 조금 작은 resources.arsc가 있습니다.
마우스로 끌어서 작업한 arsc를 원본에 덮어 씌웁니다.
주의 절대 작업한 apk파일 자체를 원본에 덮어씌우면 안됩니다. apk파일 내의 resources.arsc 파일만 서로 압축을 풀지 않고
대체 시키는 겁니다.
-------------------------------------------------------------------------------------------------------------------
value폴더들은 apk 파일 자체를 열었을 때 보이지 않고 해당 내용들이 resources.arsc에 저장이 됩니다.
그래서 이 파일만 대체하면 한글 로컬이 추가되는 것이죠..
TIP. 일반 어플 한글화
일반 어플도 마찮가지 방법으로 한글화 하시면 되는데, 위 과정에서
apktool if framework-res.apk
부분은 생략하고, done 폴더에 생성된 apk 파일을 motizen-sign이 있는 폴더에 넣고 work.apk로 이름을 수정,
sign.bat 를 실행하면 work-signed.apk 가 생성 됩니다. 이걸 원래 어플이름으로 수정해서 SD카드에 넣고 실행하면
설치 됩니다.
다음엔 한글화 롬 추가 설정 부분을 올리겠습니다