많은 고수 루팅 유저분들 덕분에 스마트폰의 시스템파일까지 뜯어고쳐서 자신의 입맛대로 테마를 만들고 변경하곤 했습니다.
대부분의 변경법은 framework-res.apk 파일을 수정하며, 일부 파일을 치환하는 방법도 있습니다.

부트 애니메이션부터 시작해서 알림음, 상단바 변경 등 거의 모든부분을 변경하기에 이르렀으나, 대부분의 변경법은 갤럭시 시리즈를 기준으로 작성되어져 있었습니다. 사실상 갤럭시 시리즈와 타 기종(그중에서도 넥서스원)의 변경법에는 큰 차이는 없었지만 혹시나 하는 생각에 이 포스트를 작성하게 되었습니다.

이 글을 읽기에 앞서...
현재 제 스마트폰은 루팅이 된 넥서스원 입니다.
롬 정보는 이와 같습니다.
안드로이드 2.3.4 커널버전 2.6.35.7.-59463-g52630a3 android-bulid@apa28#1 빌드번호 GRJ22
루팅이 되지 않은 스마트폰과 모델 및 롬 종류, 버전에 따라 아래의 내용이 부적합할 수도 있습니다.
가급적 루팅을 하신 분만 읽으시기 바라며, 스마트폰이 벽돌이나 무한리부팅의 상태에 걸렸을 경우 전적으로 사용자의 책임에 있습니다. 주의하시기 바랍니다.



0. 이 글을 읽기에 앞서


-. 해당 포스트는 루팅을 이용한 변경법입니다. 루팅을 하지 않은 경우에는 절대로 이용할 수 없습니다.
-. 이 포스트에서는 넥서스원을 대상으로 합니다. 타 기종 스마트폰의 경우에도 비슷한 방식으로 응용할 수 있습니다.
-. 루팅은 2011/02/25 - [어장 스마트폰/어장 안드로이드] - 넥서스원 진저브레드 2.3.3 업그레이드 에서 할 수 있습니다. 해당 포스트는 진저브레드에서는 루팅을 할 수 없습니다.


준비물

-. Root Explorer 어플리케이션(/system으로 접근할 수 있는 파일매니저 어플리케이션이라면 가능합니다만, 이 포스트에서는 가장 잘 알려진 Root Explorer를 대상으로 작성되어졌습니다. 
-. Apk Manager 4.9 

-. 알집
-. 해당 부분을 변경하기 위한 아이콘
-. 이 글을 모두 정독하고 따라할 수 있는 끈기

해당 포스트는 위에서도 설명하였듯 루팅을 이용한 변경법이며, 시스템 파일을 변경하는 만큼 자칫하면 벽돌상태에 빠지기 쉽습니다.
또한 Root Explorer는 유료 어플리케이션이기에 요청하셔도 보내드리지 않으며, 아이콘 또한 제작자의 저작권이 있기에 링크로 대체합니다.

아이콘들은 맛클 테마스토어에서 다운로드 할 수 있으며 해당 위치는 아래와 같습니다. 

맛클 테마스토어 배터리 아이콘 이동하기


1. framework-res.apk 추출하기


가장 기본이 되며, 이 작업에서 다루는 framework-res.apk 파일을 추출합니다.
해당 apk 파일에는 안드로이드의 전반적인 이미지 파일이 담겨있고 그 이미지 파일을 치환&수정하는 방식으로 변경합니다.

 

Root Explorer 어플리케이션을 이용하여 /system/framework 폴더로 이동합니다.
이 폴더에서 Framework-res.apk 파일을 롱터치하여 copy(복사)를 한 후, SD 카드의 아무곳으로 복사합니다.
이 파일은 원본 파일로 작업하는 과정상에서 중요하게 사용되므로 항상 백업해둠이 좋습니다.
 
framework-res.apk 파일을 이제 분해해야 합니다. 일단 0. 이 글을 읽기에 앞서 에서 첨부한 apk-manager 4.9를 다운로드 합니다. 
apk-manager의 압축을 풀면 아래와 같은 파일들이 보입니다.
 


여기에서 place-apk-here-for-modding 폴더에 위에서 추출한 framework-res.apk 파일을 넣습니다.
추출을 위한 파일은 place-apk-here-for-modding 폴더에 넣어두고, Script.bat 파일을 실행합니다.

*** 알려드립니다 ***


해당 파일은 Java SE가 설치되어야 하며, Java SE가 설치되지 않았다면 아래의 링크로 이동하여 자신의 운영체제 버전에 맞는 Java SE를 설치한 후 실행하시기 바랍니다. 이 과정은 필수적인 부분입니다.

Windows x86은 32비트 운영체제 사용자(윈도우 XP, Vista 32, 7 32비트 사용자)를, x64는 64비트 운영체제 사용자를 말 합니다.

 

Script.bat 파일을 실행시키면 아래와 같은 화면이 출력됩니다.


 
여기에서 우리가 알아둘 명령어는 22번, 9번, 11번 외에는 딱히 없습니다.

22번은 우리가 위에서 apk 파일을 넣은 것을 선택하는 역할을 하며, 9번은 디컴파일(간단히 말 해서 분해)을, 11번은 22번에서 선택한 파일을 컴파일(간단히 말 해서 재구축)하는 것을 뜻 합니다.

22를 입력한 후, 엔터를 누르시면 아래와 같은 화면들이 출력됩니다.


 
여기에서는 framework-res.apk 파일 하나만 넣었기에 한가지만 선택이 가능하며, 여러개를 넣었을 경우에는 여러개가 선택됩니다.
1 을 입력한 후, 엔터를 누릅니다. 


 
위의 파란 사각형에서 보여지듯, framework-res.apk 파일이 선택된 것을 볼 수 있습니다.
이제 9를 눌러 디컴파일을 해 줍니다. 디컴파일 중에는 Decompile apk 메시지만 뜨고 성공했다면 별다른 메시지는 출력되지 않습니다.
아까의 projects 폴더로 들어가보도록 합니다.

 
framework-res.apk 파일이 추출된 모습을 볼 수 있습니다.
framework-res/res/drawable 폴더로 이동하면 많은 xml 파일들이 보입니다. 이 xml 파일들은 간단히 말 해서 파일들의 구성을 보여주는 역할을 합니다.
이 포스트에서는 배터리의 아이콘(정확히 말 하자면 충전상태의 배터리 아이콘과 비충전 상태의 배터리 아이콘)을 변경할 예정이기 때문에 stat_sys_battery.xml과 stat_sys_battery_charge.xml을 열어보도록 합니다.


 
이 파일들이 바로 순정상태의 배터리 아이콘을 출력하는 내용이 담긴 xml 파일입니다.
간단히 보자면 maxLevel, 즉 배터리 레벨이 2%가 되었을 때 stat_sys_battery_0 이라는 이미지를 출력한다는 내용으로써, 대략 5% 주기로 이미지가 바뀌는 모습을 볼 수 있습니다.



이 파일은 순정 상태의 배터리 충전 상태를 보여주는 xml 파일입니다.
위에서와 마찬가지로 maxLevel, 즉 배터리 용량이 89%가 되었을 때 2초 동안 stat_sys_battery_charge_anim4라는 이미지를 내뱉으며, 2초 후에는 stat_sys_battery_charge_anim5라는 이미지를 1초동안 내뱉는다는 뜻 입니다.

이 부분을 퍼센트 배터리로 표현하기 위해서는 일단 5% 주기로 이미지가 바뀌는 순정 상태의 stat_sys_battery.xml의 내용을 수정해 줄 필요가 있습니다. 1%에 한 번 씩 교체되도록 말이죠. :-)


2. framework-res.apk 파일 교체하기


직접 입력해도 좋으나 매우 귀찮은 작업이 되기 때문에 해당 파일로 교체하셔도 됩니다. 



그리고 xml을 변경한 만큼 퍼센트 배터리 아이콘도 추가해주도록 합니다. 이 이미지들을 framework-res.apk/res/drawable-hdpi 의 경로에 붙여넣으셔야 합니다.
이 폴더에는 안드로이드의 기본적인 시스템 이미지 파일이 다 들어있으며, 우리는 그림에서 보여지는 아이콘들을 교체할 예정입니다.

(이미지 설명 : 순정 상태의 배터리 아이콘 이미지)


(이미지 설명 : 퍼센트 배터리 아이콘으로 적용할 아이콘팩, 숫자가 안보이지만 사실 투명숫자라 보이지 않을 뿐, 정상적으로 작동됩니다.)

해당 아이콘들을 모두 선택하여 framework-res.apk/res/drawable-hdpi 폴더로 붙여넣고 충전시 이미지도 변경한다면 해당 이미지도 변경하기 바랍니다.
이미지를 모두 추가하였다면, 해당 파일을 컴파일 해 줍니다.
Script.bat 파일을 다시 실행시키고 22를 입력하여 방금 전에 수정한 framework-res.apk 를 선택한 후, 11을 입력하여 컴파일을 해 줍니다.



도중에 이러한 메시지가 출력되는데 쿨하게 n을 해 줍니다.


3. 파일 추가하기

알집을 실행한 후, 압축 열기 - 옵션을 모든파일로 설정한 후, place-apk-here-for-moddin 폴더의 unsignedframework-res.apk 파일을 열어줍니다.

 


그리고 resources.arsc 파일을 아무 폴더로 복사해 줍니다.

또한 res/drawable 폴더의 stat_sys_battery.xml과 stat_sys_battery_charge.xml파일도 폴더로 복사해 줍니다.
마지막으로 res/drawable-hdpi 폴더에서 아까 추가했던 파일들 또한 폴더로 복사해 줍니다. 아까 추가했던 파일들이란 2.framework-res.apk 파일 교체하기 에서 다룬 파일들을 말 합니다.

다시 한 번 알집으로 순정상태의 framework-res.apk 파일을 열어줍니다. 이 파일은 처음에 /system/framework 에서 추출한 원본 상태의 파일입니다.

이 framework-res.apk 파일에서 위에서 복사한 파일들로 바꿔줘야 합니다. 파일 바꾸는 방법은 다음과 같은 과정을 거칩니다. 



반드시 압축 방법에서 압축 안함을 선택하시고 추가를 하셔야 합니다.
 
물론 추가하는데 있어 중복확인창이 팝업되는데, 덮어쓰기를 하도록 합니다.  건너뛰기를 할 경우에 파일이 바꿔지지가 않으며 문제가 생기게 됩니다.


4. 해당 apk 파일 적용하기

수정을 다 끝낸 framework-res.apk 파일을 SD 카드에 넣은 후, Root Explorer로 파일을 옮겨줍니다.
여기서 또한 매우 중요합니다. 그렇지 않으면 시스템 자체가 먹통이 됩니다. 주의하시기 바랍니다.



framework-res.apk 파일을 /system/framework 폴더로 바로 복사/붙여넣기를 하면 시스템이 먹통이 됩니다.
그걸 방지하기 위하여 일단 /system 폴더로 복사한 후, 여기에서 퍼미션을 설정하도록 합니다.

/system 폴더로 복사한 후, 해당 파일을 롱터치 한 다음에 Permissions를 터치합니다.


(이미지 설명 : 해당 이미지는 이해를 돕기 위한 이미지로, 경로가 /system/framework로 되어져 있습니다. 이해 부탁드립니다.)

그리고 permissions(권한)을 위와 같은 그림으로 변경해준 후에, 해당 파일을 /system/framework 폴더로 복사-붙여넣기를 합니다.
물론 덮어쓰기를 하셔야 합니다. ^^

마지막으로 재부팅을 해 준 후에 적용이 잘 되었는지 확인하시면 됩니다. ^^


5. 마치며

같은 방법으로 와이파이 아이콘 및 GPS 아이콘, 기타 다운로드 아이콘 등을 변경할 수 있습니다.
하지만 넥서스원의 framework-res.apk 파일을 열어보아도 와이파이 아이콘과 안테나 아이콘은 없는 듯 하네요 -_-;

위의 방법중에서 신경을 써야 하는 부분이 한두가지가 아닙니다.
xml 파일을 수정하는 것 부터 시작하여서 이미지의 추가, 그리고 권한 설정 까지.
한 부분이라도 놓치게 되면 바로 벽돌 현상이 발생되어집니다.

참고로 framework 폴더로 framework-res.apk 파일을 권한 설정도 안한 채 바로 넣어버리면 시스템이 도중이 모두 종료되며 재부팅조차 제대로 이뤄지지 않습니다. 해당 부분에서만 벽돌을 8번이나 경험했네요. ^^;

멋진 아이콘팩을 이용하여 순정상태의 상태바에서도 퍼센트 배터리를 경험해보시기 바랍니다. :-)
개인적으로 퍼센트 배터리가 없어서 매우 갑갑했네요.


해당 포스트는 맛클의 불멸[갤K] 님 글을 바탕으로 작성하였습니다. 해당 글의 주소는 여기를 클릭하면 이동하실 수 있습니다.



이 포스트는 불펌 및 스크랩 금지이며, 해당 포스트의 링크만 가져가실 수 있습니다.

  

블로그 이미지

김생선

세상의 모든것을 어장관리

,