Posted by on the 15th of February, 2013 at 11:11 pm under 컴퓨터.  This post has 3 comments.

혹시 영어로 검색할지도 모르니까 Galaxy S2 JellyBean에서 IceCreamSandwitch keyboard 쓰기.

갤럭시S2가 젤리빈 업그레이드 됐다. 다 좋은데 거슬리는게 몇개 있다. 그 중 하나는 키보드. ICS꺼 키보드가 훨씬 좋다. 젤리빈꺼는 반응도 느리고 오타도 나고 입력도 씹힌다. 그래서 ICS꺼 키보드를 빼서 쓰기로 했다.

1. ICS 단말에서 직접 apk 추출 (실패)

주변에 아직 ICS를 쓰는 사람을 찾아서 apk를 추출해봤다. Quick System Info PRO란 앱으로 apk를 추출했으나 설치가 되지 않았다. logcat 내용을 대충 봤는데 classes.odex인가 뭔가가 없어서 안된댄다. 실패!

2. 맛클에서 apk 받기 (실패)

분명 나같이 ICS 키패드를 쓰고 싶은 사람이 있을거란 생각에 인터넷을 뒤졌다. 역시나 맛클자료실에 추출한 apk가 있었다. 아래 댓글에 다들 감사하다고 되어 있는데 이상하게 내꺼엔 설치가 안된다. logcat은 단순히 설치가 안된다는 로그밖에 없었다. 어쨌든 실패!

3. 맛클에서 받은 apk 고치기 (성공)

어쨌든 logcat을 바탕으로 단순히 패키지 이름을 바꾸면 어떻게 될까? 싶어서 바꾸고 설치를 해봤다. 그랬더니 설치가 된다!! 다만 실행은 안되고 자꾸 멈추었다. Apk modify package name으로 구글링을 해보니 단순히 manifest만 바꾸면 안되고 여기저기 바꿔야 했다. AndroidManifest.xml 파일에 package 가 com.samsung.sec.android.inputmethod.axt9 로 되어 있는데 이걸 com.samsung.sec.android.inputmethod.bxt9 으로 끝에 axt9만 bxt9으로 바꾸기로 했다. 그리고 다시 apk를 만들어서 설치를 했더니 설치도 잘 되고 동작도 잘 한다. 앗싸!

Screenshot_2013-02-15-22-39-20

까먹기 전에 했던 내용을 정리해야겠다.

준비물

* apktool : http://code.google.com/p/android-apktool/
* Signare : http://forum.xda-developers.com/showthread.php?t=1125626
* ICS키보드 apk : 맛클 자료실
* 갤럭시S2 ICS롬 : 찾다 보면 나옴

1. 갤럭시S2 ICS롬에서 framework-res.apk 추출

2. apktool if framework-res.apk

3. apktool 로 ICS키보드 decode

4. axt9을 bxt9으로 수정

grep "\.inputmethod\.axt9" -R | awk -F: '{print $1}' | sort | uniq | xargs perl -pi -e 's/\.inputmethod\.axt9/\.inputmethod\.bxt9/g'
grep "/inputmethod/axt9" -R | awk -F: '{print $1}' | sort | uniq | xargs perl -pi -e 's/\/inputmethod\/axt9/\/inputmethod\/bxt9/g'
grep "/bxt9/xt9" -R | awk -F: '{print $1}' | sort | uniq | xargs perl -pi -e 's/\/bxt9\/xt9/\/axt9\/xt9/g'

첫번째는 .inputmethod.axt9 문자열을 .inputmethod.bxt9 으로 바꾼다.
두번째는 /inputmethod.axt9 문자열을 /inputmethod/bxt9 으로 바꾼다.
세번째는 /bxt9/xt9 문자열을 다시 /axt9/xt9 으로 바꾸는데, 같이 포함된 xt9 library symbol을 바꿀 수 없으니까 원래 symbol을 읽도록 하는 것이다.

5. axt9 디렉토리를 bxt9으로 바꿈

smali/com/samsung/sec/android/inputmethod/axt9

위 디렉토리를 bxt9으로 바꾼다.

6. smali/com/samsung/sec/android/inputmethod/bxt9/AxT9IME.smali 편집

$axt9을 $bxt9 으로 바꿈

7. apktool 로 build

8. signare로 sign

java -jar signapk.jar certificate.pem key.pk8 a.apk as.apk

9. zipalign

zipalign -v 4 as.apk asz.apk

10. adb push 후 설치



* Required

The URI to TrackBack this entry is:
https://bmp.pe.kr/blog/index.php/2013/02/15/%ea%b0%a4%eb%9f%ad%ec%8b%9cs2-%ec%a0%a4%eb%a6%ac%eb%b9%88%ec%97%90%ec%84%9c-%ec%95%84%ec%9d%b4%ec%8a%a4%ed%81%ac%eb%a6%bc%ec%83%8c%eb%93%9c%ec%9c%84%ec%b9%98-%ed%82%a4%eb%b3%b4%eb%93%9c-%ec%93%b0/trackback/

Posted on the 1st of May, 2013 at 9:11 am.

저도 갤hd lte 젤리빈으로 업글하고 자판때문에 힘들어하는 사람인데요. 위 메일로 apk 파일 좀 보내주실 수 있을까요?

Posted on the 1st of May, 2013 at 9:12 am.

메일은 zsx222@gmail.com 입니다. 부탁 좀 드립니다. 감사합니다.

Posted on the 1st of May, 2013 at 11:00 pm.

메일 보냈습니다.