* 준비물

* 루팅된갤럭시K
* 루트 익스플로러(전에 쓴 강좌를 보고 사용법 완벽하게 숙지요망)
* framework-res.apk 파일(아래에서 설명)
* apk manager
* Java SE Development Kit 6u21
- 자신의 운영체제에 맞는걸 받으세요
 jdk-6u21-windows-i586.exe (윈도우 32비트 전용)
 jdk-6u21-windows-x64.exe (윈도우 64비트 전용)

* 강좌에 사용되는 예제그림파일모음. 출처 : (배터리아이콘 : SHAI님, 안테나아이콘 : ???)

* 알집최신버젼


먼저 이번강좌에서 바꾸게 될것은 상단배터리 아이콘과 안테나아이콘을 무지개로 바꿔볼 계획입니다.

apk manager는 다운받아서 한폴더에 압축해제 해두시고

Jave SE Development Kit는 다운받아서 설치하시고

불멸.zip는 다운받아서 압축해제 해주시고

알집도 다운받아서 설치해주시면 됩니다.


이강좌에서는 두가지의 방법을 설명할것입니다.

첫번째는 xml파일을 수정하며 이미지의 갯수 자체를 추가하는방법.

두번째는 이미지를 같은파일이름을 가진 다른이미지로 교체하는방법.



--------------------------------------------------------------------------------------------
첫번째 방법. xml파일을 수정하며 이미지의 갯수 자체를 추가하는방법


먼저 자신의 순정 framework-res.apk파일을 준비해야 합니다.

루트 익스플로러를 이용해서 framework-res.apk파일을 컴퓨터에 복사해줍니다.
(* framework-res파일은 system/framework/ 폴더내에 있습니다.)
(** 이과정도 상세하게 설명하지 않겠습니다. 제가 쓴 이전 강좌를 보면 알수있는데다가
     이걸 모르신다면 이 강좌를 따라하면 위험하다고 생각하기에 그렇습니다.)

framework-res.apk파일을 복사해서(절대 잘라내기 하지 마십시오)

아까 압축을 풀어둔 apk manager폴더내에 place-apk-here-for-modding이 폴더에 저장해줍니다.

여기서 주의할것은 place-apk-here-for-modding이 폴더에 저장을 해놓고

아무곳에나 복사본을 꼭! 꼭! 복사해두시기 바랍니다.(예비용입니다.)

그럼 framework-res.apk를 디컴파일 해줄 차례입니다.

* 컴파일(Compile) : C언어따위의 언어를 컴퓨터가 알아쳐먹을수있는 기계어로 바꾸는작업.
* 디컴파일(Decompile) : 컴퓨터만 알아쳐먹는 기계어를 C언어따위의 언어로 바꾸는 작업.
(뭐어어어어어어어어어?????디컴파일??? 디이컴퐈일?!?!?!?!어디서 인간이 하는말을 못알아 먹고 있어 건방지게....)

Apk manager 폴더내에 있는 Script.bat를 실행시킵니다.


아무키나 눌러줍니다.


다음과 같이 나옵니다.

여기서 우리가 쓸것은 22번과 9번과 11번입니다.

22번은 place-apk-here-for-modding폴더내에 있는 apk를 선택하는 일을 하고

9번은 22번으로 선택한 apk를 디컴파일 하는 역할.

11번은 22번으로 선택한 apk를 컴파일 하는 역할을 합니다.


22번을 누르면 아까 place-apk-here-for-modding폴더에 넣은 framework-res.apk가 보입니다.

1번을 눌러 선택해줍니다.


빨간색 밑줄처럼 apk파일이 선택된게 보입니다.


9번을 누르면 다음과 같이 Decompiling Apk가 나옵니다.

디컴파일 중인겁니다.


디컴파일이 완료되었습니다.

이제 Apk manager폴더에 있는 projects폴더에 들어갑니다.


다음과 같이 apk이름으로 된 폴더가 하나 생성이 됩니다.

이제 apk를 파헤칠수 있게 되었습니다.

framework-res.apk\res\drawable 폴더로 들어가봅니다.

많은 xml파일들이 있습니다. 이 xml들이 각각의 부분들을 구성하고있으며 

이 구성들이 모여 framework-res.apk파일을 이루고있는것입니다.

우리가 이제 해줄작업은 상단 배터리 아이콘을 관여하고 있는 stat_sys_battery.xml파일과

상단 충전중의 배터리 아이콘을 관여하고있는 stat_sys_battery_charge.xml을 수정할것입니다.

여기서 잠깐

디컴파일한 xml파일과 그냥 압축프로그램으로 압축해제한 xml파일을 비교해보도록 하겠습니다.

그냥 압축해제했을때의 stat_sys_battery.xml 파일 모습입니다.

컴퓨터만 알아쳐먹고 있습니다....

디컴파일을 한 동일 stat_sys_battery.xml파일입니다.

뭐가 뭔지 대충 감이 잡힙니다.

이렇기에 디컴파일을 해야되는겁니다.

또한 디컴파일을 했을때와 그냥 압축프로그램으로 열었을때 xml용량도 차이가 나지만 보이는 폴더 갯수 자체가 틀립니다.

하지만 그림파일은 완전 똑같은게 있는반면, 틀린것도 있습니다.

여기서 틀린파일은 대체 무엇이냐?

파일명이 *9.png 끝나는 파일들입니다.

*.9png로 끝나는 그림파일들을 보면 약쪽끝에 검은색 선들이 그어져 있는게 있습니다.

이파일들은 나인패치라는 작업을 거친 그림파일입니다.

이 나인패치는 그림파일에서 늘어나는부분을 지정해줘서 그림파일이 늘어나게 되어도 

그림파일이 깨지지 않고 보이게 하는 역할을 합니다.

대표적으로 안드로이드 폰에서 전화가 왔을때

왼쪽에서 오른쪽으로 쭉 끌어당기는 그 통화버튼, 그렇게 늘어나도 깨지지 않고 자연스럽게 되죠

그런게 나인패치된 파일입니다.

나인패치 방법은 다음강좌에서 설명해드리겠습니다.

자 이제 소스를 분해해볼 차례입니다.

projects\framework-res.apk\res\drawable\ 폴더에 가셔서

stat_sys_battery.xml을 마우스 오른쪽 버튼 눌러서 편집을 눌러줍니다. 메모장으로 열어도 됩니다.
(이후부터 xml파일을 열라고 하는것은 편집으로 여는것을 말하는겁니다. 컴퓨터에서 xml파일을 직접실행시킬일이 없습니다.)


이게 순정 프레임워크 stat_sys_battery.xml파일입니다.

그럼 제가 준비물로 첨부파일 올린 불멸\drawable\폴더에 있는 stat_sys_battery.xml을 열어봅니다.


이런식으로 나오게 됩니다.

프로그램에 대해 조금 아시는분이라면 이 내용이 뭔지 대강 감이 잡히실겁니다.

다시 순정 stat_sys_battery.xml로 돌아와서

    <item android:drawable="@drawable/stat_sys_battery_10" android:maxLevel="20" />
    <item android:drawable="@drawable/stat_sys_battery_20" android:maxLevel="35" />
    <item android:drawable="@drawable/stat_sys_battery_40" android:maxLevel="50" />
    <item android:drawable="@drawable/stat_sys_battery_60" android:maxLevel="65" />
    <item android:drawable="@drawable/stat_sys_battery_80" android:maxLevel="80" />

이부분을 살펴봅니다.

    <item android:drawable="@drawable/stat_sys_battery_10" android:maxLevel="20" />

이부분을 살펴보면 배터리양이 6%에서 ~ 20%이상 까지일때 stat_sys_battery_10라는 그림파일을 출력하라는 뜻 입니다.

(res\drawable-hdpi폴더에 있는 stat_sys_battery_10.png라는 파일이름의 그림파일입니다.)

  

  <item android:drawable="@drawable/stat_sys_battery_20" android:maxLevel="35" />

이부분을 살펴보면 배터리양이 21%에서 ~ 35%이상 까지는 stat_sys_battery_20라는 그림파일을 출력하라는 뜻 입니다.

(res\drawable-hdpi폴더에 있는 stat_sys_battery_20.png라는 파일이름의 그림파일입니다.)

이렇게 배터리양의 %마다 그림파일을 불러오게 프로그래밍 되어있는것이지요.

순정 배터리아이콘은 총 7개로 구성되어있습니다.

하지만 배터리 0~100%까지 1%씩 마다 그림파일을 출력하게 할려면

총 101장의 그림파일이 있어야 되는거죠.

그럼 제가 첨부한 예제 stat_sys_battery.xml파일로 다시 돌아와서 보시면

    <item android:drawable="@drawable/stat_sys_battery_0" android:maxLevel="0" />
    <item android:drawable="@drawable/stat_sys_battery_1" android:maxLevel="1" />
    <item android:drawable="@drawable/stat_sys_battery_2" android:maxLevel="2" />
    <item android:drawable="@drawable/stat_sys_battery_3" android:maxLevel="3" />
    <item android:drawable="@drawable/stat_sys_battery_4" android:maxLevel="4" />
    <item android:drawable="@drawable/stat_sys_battery_5" android:maxLevel="5" />
    <item android:drawable="@drawable/stat_sys_battery_6" android:maxLevel="6" />
.
.
.
.
.


이런식으로 되어있습니다. 이구문을 해석해보면

    <item android:drawable="@drawable/stat_sys_battery_0" android:maxLevel="0" />

배터리양이 0% 이상까지일때 stat_sys_battery_0이 그림파일을 출력하고

    <item android:drawable="@drawable/stat_sys_battery_1" android:maxLevel="1" />

배터리양이 1% 이상까지일때 stat_sys_battery_1이 그림파일을 출력하고

이런식으로 쭉 100%까지 프로그래밍해놓은것 입니다.

제가 첨부한 준비물중에 배터리아이콘 폴더에 들어가시면

0이라고 써있는것부터 100이라고 써있는것까지 101개의 이미지가 있을것입니다.

이것이 모여서 %별 배터리양을 나타나게 됩니다.

이번에는 충전중일때의 배터리 아이콘을 해부해보겠습니다.

충전중일때의 배터리 아이콘을 표시하는 xml파일은 stat_sys_battery_charge.xml파일입니다.

디컴파일하신 순정 프레임워크폴더내에(당연히 \res\drawable) 있습니다.


순정 stat_sys_battery_charge.xml 파일입니다.

stat_sys_battery.xml과는 약간 다른모습입니다.

    <item android:drawable="@drawable/stat_sys_battery_charge_anim0" android:maxLevel="20" />
    <item android:maxLevel="35">
        <animation-list android:oneshot="false"
          xmlns:android="http://schemas.android.com/apk/res/android">
            <item android:duration="1000" android:drawable="@drawable/stat_sys_battery_charge_anim1" />
            <item android:duration="1000" android:drawable="@drawable/stat_sys_battery_charge_anim2" />
            <item android:duration="1000" android:drawable="@drawable/stat_sys_battery_charge_anim3" />
            <item android:duration="1000" android:drawable="@drawable/stat_sys_battery_charge_anim4" />
            <item android:duration="1000" android:drawable="@drawable/stat_sys_battery_charge_anim5" />
        </animation-list>


 





<item android:drawable="@drawable/stat_sys_battery_charge_anim0" android:maxLevel="20" />

이 구문을 보시면 지금 현재 충전된 배터리양이 0~20%이상까지일때 stat_sys_battery_charge_anim0이 그림파일을 출력하라 입니다.

하지만 아랫것은 좀 다름니다.

    <item android:maxLevel="35">
        <animation-list android:oneshot="false"
          xmlns:android="http://schemas.android.com/apk/res/android">
            <item android:duration="1000" android:drawable="@drawable/stat_sys_battery_charge_anim1" />
            <item android:duration="1000" android:drawable="@drawable/stat_sys_battery_charge_anim2" />
            <item android:duration="1000" android:drawable="@drawable/stat_sys_battery_charge_anim3" />
            <item android:duration="1000" android:drawable="@drawable/stat_sys_battery_charge_anim4" />
            <item android:duration="1000" android:drawable="@drawable/stat_sys_battery_charge_anim5" />
        </animation-list>

배터리가 21%~35%이상까지일때 

animation-list로 출력한다는것입니다. 다음과 같이...

            <item android:duration="1000" android:drawable="@drawable/stat_sys_battery_charge_anim1" />
            <item android:duration="1000" android:drawable="@drawable/stat_sys_battery_charge_anim2" />
            <item android:duration="1000" android:drawable="@drawable/stat_sys_battery_charge_anim3" />
            <item android:duration="1000" android:drawable="@drawable/stat_sys_battery_charge_anim4" />
            <item android:duration="1000" android:drawable="@drawable/stat_sys_battery_charge_anim5" />

duration는 애니메이션 그림이 넘어가는 시간을 설정한것입니다. 1000=1초를 얘기합니다.

즉 풀어서 얘기하면 

1초동안 stat_sys_battery_charge_anim1 출력 한뒤에 그다음 그림을
1초동안 stat_sys_battery_charge_anim2 출력 한뒤에 그다음 그림을
1초동안 stat_sys_battery_charge_anim3 출력 한뒤에 그다음 그림을
1초동안 stat_sys_battery_charge_anim4 출력 한뒤에 그다음 그림을
1초동안 stat_sys_battery_charge_anim5 출력 한뒤에 그다음 그림을 출력하라는 뜻입니다.
(네, 복사해서 붙여넣기 신공입니다.)

이렇게 애니메이션 효과를 불러오는것입니다.


(이렇게 1초씩 돌아가며 말이지요....)

이해가 되셨나요???











(모르면 말구요....ㅠㅠ)

자 이제 본격적으로 작업을 해보겠습니다.

제가 드린 준비물에있는 stat_sys_battery.xml, stat_sys_battery_charge.xml이 두파일을

디컴파일한 projects\framework-res.apk\res\drawable 폴더에 덮어씌우기 해줍니다.

(어짜피 소스가 다 짜져있는거니 뭐....)

그리고 배터리아이콘에 있는 모든 그림파일을

projects\framework-res.apk\res\drawable-hdpi 폴더내에 붙여넣어줍니다.

(파일만 넣으세요 파일만...)


이런식으로 모두 붙여넣으셨다면

이제 컴파일을 할 차례입니다.

여기서부터 실수하시면 안됩니다.

Script.bat를 다시 실행해 줍니다.


여기서 22번을 눌러 어플 선택화면으로 들어갑니다.


방금 작업한 1번을 누르고 엔터


이제 11번(컴파일)을 누르고 엔터를 칩니다.


디컴파일했던 framework-res.apk폴더의 내용들이 컴파일중입니다.


이때 중간에 이 apk가 시스템 apk냐고 묻습니다.

그냥 n을 눌러 무시합니다.

y라고 하게 되면 sign과정을 거쳐서 그 apk를 쓸수있게 해주는건데

sign 과정을 거쳐봤자 그 프레임워크 파일을 핸드폰에 적용하면 무한 재부팅 현상이 일어납니다.

이유는 저도 모름니다.
(자랑이다.......훗....)

어짜피 컴파일한 파일을 그대로 쓸게 아니기 때문에 sign을 하지않고 n으로 넘어갑니다.

(컴파일 도중에 에러가 난 다면 이상한 파일이 들어가있거나 원래있던 파일을 지웠기 때문입니다. 원래있던 파일을 지우지 마세요)



place-apk-here-for-modding폴더에 들어가시면 unsignedframework-res.apk라는게 하나 생깁니다.

위에께 원본이고 아래것이 수정해서 컴파일한 파일입니다.

아래건 sign과정을 거치지 않아서 용량이 더 작습니다.

이건 그대로 쓰시면 안됩니다.

아까 설치한 알집을 써줄차례입니다.

알집으로 unsignedframework-res.apk파일을 열어줍니다.

알집을 실행시켜서 직접 열거나,

unsignedframework-res.apk파일을 열기하시거나 마우스 오른쪽클릭하셔서 연결프로그램->기본 프로그램선택 을 눌러주신뒤

찾아보기로 알집프로그램을 직접 지정해주셔도 됩니다.

이 종류의 파일을 열 때 항상 선택된 프로그램 사용에 체크해두시면 편합니다.

(찾아보기로 C:\Program Files\ESTsoft\ALZip\ALZip.Exe 이걸 지정해주시면됩니다.)



이렇게 나오실겁니다.

그리고 아무 새폴더나 만드시고

지금부터 설명드리는 파일들을 끌어다가(드래그해서) 새폴더에 빼줍니다.

resources.arsc파일을 새폴더에 빼줍니다.


이런식으로 빼주시면 됩니다. resources.arsc파일에 대한 설명은 밑에서 하도록 하겠습니다.

그리고 아까 바꿔준 xml파일을 빼줄차례입니다. 


상단 배터리를 구성하고있는

이파일도 새폴더로 빼줍니다. stat_sys_battery.xml과 stat_sys_battery_charge.xml이 파일입니다.
(새폴더로 빼준 파일을 열어보시면 컴파일이 된파일이라 이상하게 나올겁니다. 이게 정상입니다.)


그리고 아까 그림을 많이 추가했던 drawable-hdpi이 폴더에 있는 내용물 모두를 통째로 빼줍니다.

사실 추가된 그림파일이나 수정된 그림파일만 빼줘도 되는데

추가된 파일이 많기때문에 헷갈리지 않기위해서 통째로 빼는겁니다.

추가된 파일만 골라뺐는데 실수로 빠트려먹은 파일이 있다면 무한재부팅이나 벽돌을 보게 되실수 있습니다.

drawable-hdpi 폴더내용을 새폴더에 새폴더를 하나 더 만들어서 그 안에 빼줍니다.


다 빼고나면 이런 모습일겁니다.



그럼 알집으로 열어준 unsignedframework-res.apk 창을 닫아주시고

place-apk-here-for-modding폴더에 있는 framework-res.apk(강좌시작하기전에 핸드폰에서 복사해왔던 원본파일입니다.)를 

알집으로 열어줍니다.

이제 아까 새폴더에서 빼왔던 파일들을 이 순정 framework-res.apk에 붙여넣을 차례입니다.



resources.arsc 이 파일을 바꿔줘야 합니다.

폴더가 이렇게 보이는 최상위 상태에서 

알집의 파일 추가 버튼을 눌러줍니다.



빨간색 네모박스처럼 추가버튼을 눌러 resources.arsc파일을 추가해주시거나

새폴더에 있던 resources.arsc파일을 끌어놓기(드래그)해서 추가해줍니다.



빨간색 밑줄처럼 추가 되었는지 확인하시고

압축방법은 압축안함으로 반드시 해놓고 나서 압축버튼을 눌러주시기 바랍니다.

모든 추가 되는 파일 압축안함으로 해놓고 압축버튼을 누릅니다.



(만약 이런식으로 나와서 압축방법이 안나오시는분들은 고급설정버튼을 눌러주시면 나타납니다.)





위에서 압축버튼을 누르셨다면 이렇게 나옵니다.

안나오면 이상한겁니다. 반드시 나와야됩니다.

안나오면 이상한 폴더에 추가하려고 하시는겁니다.

이 중복확인 창이 안뜨면 정신줄 놓고 있는겁니다. 나와야합니다.

빨간색 네모박스처럼 덮어쓰기를 꼭 해주세요.

덮어쓰기 안하고 건너뛰기 하시면 안됩니다.

반드시 덮어쓰기 해야 추가가 됩니다.

그렇지 않으면 파일이 제대로 추가가 되지 않아 벽돌이나 무한 재부팅 보십니다.

덮어쓰기로 선택하고 확인을 눌러줍니다.

이제 stat_sys_battery.xml, stat_sys_battery_charge.xml 이 두파일을 추가해줄 차례입니다.

알집에서 이 두파일이 원래 있던 폴더로 들어갑니다.



빨간색 네모박스처럼 저 폴더를 클릭하면 drawable폴더내 파일이 나옵니다.

이상태에서 파일추가를 눌러줍니다.



이런식으로 나오겠죠

압축안함으로 하시는거 잊으시면 안됩니다. 압축버튼 눌러줍니다.



이런식으로 나옵니다.

덮어쓰기 선택하고 모든파일에 적용에 체크해주고 확인누릅니다.

이제 그림파일들을 넣어줄 차례입니다.




알집에서 drawable-hdpi 폴더로 이동하시고 파일추가 버튼을 눌러줍니다.



이런식으로 빼놓았던 모든 그림파일 추가 해주시고

압축안함으로 체크하는거 잊지 마시고 압축버튼 눌러줍니다.


덮어쓰기 체크하시고 모든파일에 적용 체크 하시고 확인버튼 눌러줍니다.

이제 다 되었습니다. ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ


하지만 강좌가 아직 남아있습니다. 끝까지 주의사항까지 읽고 적용하시기 바랍니다.

아까 resources.arsc파일이 무엇인지 설명안드리고 그냥 넘어갔습니다.

처음에 framework-res.apk을 디컴파일했을때에는 resources.arsc이 파일이 없었을겁니다.

하지만 컴파일이 완료된 framework-res.apk파일을 알집으로 열었을때는 resources.arsc이 파일이 존재하죠.

무슨 차이일가요?

그전에 짚고 넘어갈것이 있습니다.

강좌를 처음부터 잘보셨다면 제가 강좌 시작단계에서 알집으로 열었을때와 디컴파일했을때의 

보이는 폴더의 갯수도 틀리고 파일도 틀리다고 말씀드렸습니다.

resources.arsc이놈은 한마디로 코드의 집약체라고 보시면됩니다.

디컴파일한 framework-res에는 있는폴더와 파일들이

알집으로 열었을때 없으면 그건 모두 resources.arsc에 저장된겁니다.

디컴파일했던 projects\framework-res.apk\res\values 폴더로 들어가보시면

public.xml 파일이 있습니다. public.xml이파일은 그림파일들의 id들을 정의해놓은 파일입니다.

이걸 열어봅니다.


파란색부분을 잘보시기 바랍니다.

순정의 public.xml이라 stat_sys_battery_0, stat_sys_battery_10, stat_sys_battery_100, stat_sys_battery_20
stat_sys_battery_40, stat_sys_battery_60, stat_sys_battery_80
stat_sys_battery_charge_anim0, stat_sys_battery_charge_anim1, stat_sys_battery_charge_anim2
stat_sys_battery_charge_anim3, stat_sys_battery_charge_anim4, stat_sys_battery_charge_anim5
이 그림파일들만 정의되어있습니다.

당연한겁니다. 순정이니깐요

하지만 우리가 바꿔준 결과물을 보면 어떤 결과가 나올까요?

이부분은 따라해줄필요는 없습니다. 그냥 참고용으로 보세요.

우리가 작업을 완료한 framework-res.apk파일을 다시 디컴파일해서 public.xml파일을 열어봤습니다.


다른건 모두 똑같습니다.

하지만 파란색처럼 우리가 추가해준 파일에 대한 정의가 되어있습니다.

즉, 다시 말해서 아까 우리가 작업할때 새로운 그림파일들이 추가되면서 

apk manager가 컴파일할때 resources.arsc에 추가된 그림파일을 자동으로 인식해 기록한것이고

추가된 기록에 대한게 필요하기에 resources.arsc 이녀석을 아까 알집으로 작업때 바꿔준겁니다.

그 증거로 resources.arsc을 메모장으로 직접열어서 아까 추가한 그림파일중 stat_sys_battery_12라고 검색해보면



이렇게 검색이 되는걸 볼수있습니다.

우리는 이렇게 추가된 그림파일 정보를 담고있는 resources.arsc가 필요한것이고

그 resources.arsc파일을 구하기 위해서 디컴파일과 컴파일 하면서 노가다를 하게되는것입니다.

resources.arsc이 파일에 대한 정의도 가지고 있지 않은데 그림파일만 그대로 붙여넣고 그 apk파일을 핸드폰에 적용한다면

무한재부팅과, 벽돌을 보실수있는겁니다.

하지만, 이미 resources.arsc에 기록이 되어있는 그림파일명을 그림만 바꿔치기 하는건 가능합니다.

그래서 제가 제일 처음에 첫번째 강좌와 두번째 강좌를 나눈 이유가 여기있습니다.

첫번째 강좌는 그림파일 갯수를 추가 하면서 xml을 수정하는 방법이고

두번째 강좌는 그림파일만 바꿔치기하는 강좌입니다.

--------------------------------------------------------------------------------------------------

두번째 방법. 이미지를 같은파일이름을 가진 다른이미지로 교체하는방법.


※ 주의사항 : 적용하려는 그림파일이 파일명과 그림사이즈(가로세로)가 같아야 합니다.
※ 주의사항 : 적용하려는 그림파일이 파일명과 그림사이즈(가로세로)가 같아야 합니다.
※ 주의사항 : 적용하려는 그림파일이 파일명과 그림사이즈(가로세로)가 같아야 합니다.
※ 주의사항 : 적용하려는 그림파일이 파일명과 그림사이즈(가로세로)가 같아야 합니다.
※ 주의사항 : 적용하려는 그림파일이 파일명과 그림사이즈(가로세로)가 같아야 합니다.



간단합니다.

제가 처음에 드린 준비물중에 불멸.zip에 보면

안테나 아이콘 폴더가 있습니다.

순정을 이 그림파일들로 바꿔줄겁니다.

아까 우리가 완성했던 framework-res.apk을 알집으로 열어줍니다.



안테나아이콘들도 배터리아이콘들과 같은 폴더인 \res\drawable-hdpi\ 폴더에 들어가있습니다.

알집에서 framework-res.apk를 여셨으면 \res\drawable-hdpi\에 들어갑니다.



여기서 파일 추가를 눌러줍니다.



31개의 파일입니다.

압축안함으로 하시고 압축눌러주시면 됩니다.



여기서는 아까와는 다르게 할겁니다.

덮어쓰기에는 체크하되 모든파일에 적용에는 체크하지 마시고 확인을 누르세요

총 31번 누르면 맞는겁니다.

이미 있는 파일명을 또 덮어쓰려니 뜨는거지요.

만약에 30번만 떴다면 원래 있던 파일명과 다른 파일명이 1개가 들어갔다는 소리가 되겠죠

하지만 제가 첨부해드린 파일들은 이미 있던것들이라 31개가 정확하게 뜰겁니다.

자이제 알집을 닫아줍니다.

두번째 방법은 이게 끝입니다.

참 쉽죠잉?

------------------------------------------------------------------------------------------------------

이제 적용방법 입니다. 사실 이부분도 중요하지만, 이부분 상세히 설명 안드리겠습니다.

제가 이미 이전 강좌에서 설명드렸는데다가

강좌를 들으셨는데도 이밑에 설명을 모르신다면 이전에 쓴 강좌를 제대로 숙지 못하신것입니다.

제대로 숙지 못한분들께 권하는 작업이 아님을 처음시작부터 이미 말씀드렸습니다...

제가 할줄안다고 자만 떠는게 아니고, 이해를 못하셨는데 시도해서 벽돌되실까봐 그렇습니다.

이부분을 잘못하실경우 무한재부팅과 벽돌이 되십니다.

이 아래부분을 이해 못하시면 http://toforyou.tistory.com/54 이강좌를 다시 보고 오시기 바랍니다.

그래서 그냥 이부분은 글로만 설명드립니다.

첫번째를 거쳐 두번째까지 완성된 framework-res.apk파일을 외장메모리에 넣습니다.

외장메모리에서 framework-res.apk파일을 root\system폴더에 넣어주시고 난뒤
(절대 직접적으로 system\framework 폴더에 넣지 마세요)

퍼미션을 정해주고나서 잘라낸뒤에 system\framework폴더에 붙여넣습니다.

그리고 나서 재부팅해주시면 완료가 됩니다.

프레임워크 파일을 바꾸고 나서 하는 첫부팅은 시간이 약간걸립니다.

+ Recent posts