여섯번째 강좌입니다.










슬슬지치기 시작합니다.









가끔 이런생각도 듭니다-_-...

처음 안드로이드를 공부하기 시작한건 갤럭시K라서 그랬습니다.

갤럭시S에 비해 퍼져있는 테마도 적고, 정보도 적고, 모임도 적고 그렇지요....

사용자가 많은폰에 비해서 어쩔수 없는건지도 모르지요









저는 아직도 많이 알지 못하지만 열심히 찾아다니면서 공부했습니다.

잘읽었다는 리플이 적다면 그건 제 강좌가 부족한탓입니다.




그래서 이렇게 생각을 고쳐먹었습니다.









제가 알려드리는게 완벽하지 않을수있습니다.

더 좋은방법들이 있을수도 있구요

제가 알려드리는건 수많은계단에 첫계단에 불과할겁니다.

하지만 이 강좌로 인해서 많은 갤럭시K 전용 자료들이 나왔으면 하는 바람입니다.























사설이 길다고 때리지는 마십시요....








(사...살려주세여.......)

-------------------------------------------------------------------------------------
제가 갤럭시K를 언급했지만 다른폰에서도 가능한 강좌입니다.
-------------------------------------------------------------------------------------


수일 동안 검색한 결과와 벽돌을 당해본 경험을 통해 강좌를 써보고자 합니다.

도스시절부터 컴퓨터를 해왔던지라 컴퓨터에 어느정도 감각이 있어서,

하드웨어쪽은 조금 알지만 소프트웨어쪽은 완전히....









프로그래밍은 html말고는 할줄 아는게 전혀 없고, 그래픽쪽은 정말 아는게 하나도 없습니다.

그래픽같은걸 할줄안다면 갤럭시K테마도 만들어서 올리고 했을텐데 말이지요

대신 이강좌로 대신해 그래픽작업에 센스있으신분들이 많이 생겨 갤럭시K용 테마가 더 많이 생겼으면 좋겠습니다.

이번강좌를 전부 숙지하신다면 framework-res.apk파일을 포함한 시스템어플 수정방법을 알게되실겁니다.

여기서는 framework-res 수정방법을 알려드리겠습니다.

framework-res와 다른 시스템어플들 수정방법은 비슷하므로 이강좌만 보시면 어느정도 감이 오실겁니다.

framework-res파일은 쉽게 말해 안드로이드의 뼈대역할을 한다고 보시면됩니다.

사실 수정이라고해봤자 약간의 기능보강과 이미지를 바꿔줌으로써 테마를 바꾸는 정도 입니다.


※ 주의 : 완벽하게 숙지하지 못하면 벽돌상태를 보실수도 있습니다.
※ 주의 : 완벽하게 숙지하지 못하면 벽돌상태를 보실수도 있습니다.
※ 주의 : 완벽하게 숙지하지 못하면 벽돌상태를 보실수도 있습니다.
※ 주의 : 완벽하게 숙지하지 못하면 벽돌상태를 보실수도 있습니다.
※ 주의 : 완벽하게 숙지하지 못하면 벽돌상태를 보실수도 있습니다.
※ 주의 : 완벽하게 숙지하지 못하면 벽돌상태를 보실수도 있습니다.
※ 주의 : 완벽하게 숙지하지 못하면 벽돌상태를 보실수도 있습니다.
※ 주의 : 완벽하게 숙지하지 못하면 벽돌상태를 보실수도 있습니다.
※ 주의 : 완벽하게 숙지하지 못하면 벽돌상태를 보실수도 있습니다.
※ 주의 : 완벽하게 숙지하지 못하면 벽돌상태를 보실수도 있습니다.
※ 주의 : 완벽하게 숙지하지 못하면 벽돌상태를 보실수도 있습니다.
※ 주의 : 완벽하게 숙지하지 못하면 벽돌상태를 보실수도 있습니다.
※ 주의 : 완벽하게 숙지하지 못하면 벽돌상태를 보실수도 있습니다.
※ 주의 : 완벽하게 숙지하지 못하면 벽돌상태를 보실수도 있습니다.
※ 주의 : 완벽하게 숙지하지 못하면 벽돌상태를 보실수도 있습니다.
※ 주의 : 완벽하게 숙지하지 못하면 벽돌상태를 보실수도 있습니다.
※ 주의 : 완벽하게 숙지하지 못하면 벽돌상태를 보실수도 있습니다.
※ 주의 : 완벽하게 숙지하지 못하면 벽돌상태를 보실수도 있습니다.





* 준비물

* 루팅된갤럭시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.apkresdrawable 폴더로 들어가봅니다.

많은 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로 끝나는 그림파일들을 보면 약쪽끝에 검은색 선들이 그어져 있는게 있습니다.

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

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

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

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

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

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

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

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

projectsframework-res.apkresdrawable 폴더에 가셔서

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




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

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




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

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

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







이부분을 살펴봅니다.



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



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






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



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


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

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

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

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

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









.
.
.
.
.



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



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



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

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

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

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

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

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

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

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



순정 stat_sys_battery_charge.xml 파일입니다.

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



xmlns:android="http://schemas.android.com/apk/res/android">
















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

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


xmlns:android="http://schemas.android.com/apk/res/android">







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

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







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이 두파일을

디컴파일한 projectsframework-res.apkresdrawable 폴더에 덮어씌우기 해줍니다.

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

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

projectsframework-res.apkresdrawable-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 FilesESTsoftALZipALZip.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에 저장된겁니다.

디컴파일했던 projectsframework-res.apkresvalues 폴더로 들어가보시면

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을 알집으로 열어줍니다.







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

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







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







31개의 파일입니다.

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







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

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

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

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

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

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

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

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



참 쉽죠잉?


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

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

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

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

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

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

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

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

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

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

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

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

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

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



* system폴더에 넣고 퍼미션을 정해주고나서 옮기는거 잊지마세요.
** system폴더에 여유공간이 있는지 확인하세요.
*** 벽돌될수 있으니 마지막으로 애인에게 전화 한통 하세요.
**** 물론 전 전화할 사람이.....






















작업 완료된 모습입니다. 오전 2시 33분 ㅠㅠ

상단에 배터리표시부분과 안테나 표시부분이 바뀌었습니다.

여섯번째 강좌 끝.


* 알집 최신버전을 사용할경우 압축헤더가 손상됐다는 에러가 나옵니다. 강좌에 첨부해놓은 알집버전을 사용하시면 해결됩니다.




댓글 136
1 2 3
  • ?
    사랑합니다 고갱님^ ^/
  • ?
    †Chase
    11.08.01
    이열 최고의 강좌 본것중에는 최고네요 진짜ㅡㅡ

    이글 숙지하면 왠만한 작업 30%는 정확하게 알고 가는 수준을 만들겠어요ㅋ

    휴가인 이틈 타서 최대한 이글 참조해서 배따리 차징 애니 40개까지 되게 만들어봐야겟네요 ㅋ
  • ?
    gmal__a
    11.10.03
    ㅠㅠ아 script.bat에서 마지막에 숫자 9누르고나면 에러난다고뜨네요ㅠㅠㅠ
  • ?
    굉장하시네요...ㅎ 덕분에 많은거배웁니다!
    근데 다른 .apk 파일도 같은방법으로 이식하면 되나요?
  • ?
    진짜 최고로 감사합니다... 뒤늦게나마 이 글 보고 열심히 테마 만들어보려는 사람입니다.^^ 응용으로 usb 연결 이미지를 바꿔봤네요~~아 너무 기분좋아요..불멸님 복받으세요^^
  • ?
    zaphyros
    11.11.07
    불멸님~ 안녕하세요~ 강좌 너무 쉽고 재미있게 잘 풀어 써 주셔서 감사합니다~ 그런데요 제가 베가레이서 사용자 거든요? 가르쳐 주신거 하나하나 완전 정독해서 framework-res.apk 를 옮기고 재부팅을 하려고 하는데 전화기가 꺼지지 않는 상태가 됩니다. 혹시 이런 경우에는 어떻게 해야 하는지, 원인이 뭔지도 알고 계신가요?
  • ?
    콩지
    11.11.07
    진짜죄송한데요ㅜㅜ예전부터눈팅만해다가 오늘시도를 해볼려구하는데요ㅜ Jave SE Development Kit는어디서다운을?32비트라서 다운을받을려고햇는대 쪼기위에잇는건안되네요ㅜㅜ자바사이트도들어가봣는데ㅜ저건없어서요 검색도해봣지만정말..ㅜ 아 정말 재밋고 자세히 써주셧는데 이런질문죄송해요ㅜ그치만..제가꼭해보고싶은상단바가잇어서요 그동안 다른님들이 올려주신것만 걍 복사해서 쓰다가ㅜㅜ진짜 해보고싶어서요! 답변부탁드립니다.!!!
  • ?
    나다kk
    11.11.16
    님, 제가 22번 누루고 1번 눌러서 framework-res파일을 선택해서 9번을 누르면 \"An Error Occured, Please Check The Log
  • ?
    안녕하세요 저도 갤럭시k이용자입니다,,, 다름이아니라 커스텀셋팅v2를이용해보고싶어서그렇습니다,, 그러나 갤럭시k는 커스텀셋팅odex가 아직 나오지않았습니다.. 떡님이올려주신대로따라하려해도 잘돼지가안네요,,, 정말이용하고싶습니다,,부탁드립니다,
  • ?
    우앗~! 감사합니다... 가이드보다 이해안되던 부분도 잘 넘어가네요 ㅎㅎㅎ
  • ?
    java version \"1.7.0_02\" Java(TM) SE Runtime Environment (build 1.7.0_02-b13) Java HotSpot(TM) Client VM (build 22.0-b10, mixed mode, sharing) \'adb\'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. W: Could not find sources I: Checking whether resources has changed... I: Building resources... 라면서 컴파일링이 안되네요 어떻게 해야하나요 ㅠㅠ
  • ?
    guslrk
    12.01.13
    불멸님 적용햇는데 적용후부터 유에스비 연결하면 영문으로 \'유에스비를 연결하시겟습니까?\' 라고 뜨는데 왜이런건가요??
  • ?
    아.. 저 어떻하죠...
    하라는대로 다 해서 성공햇는데..
    시스템폴더 안에 넣어서 쓰기 방식 변경하고
    다시 펌웨어 폴더에 넣으니까 되더라구요..
    그래서 좋다 하고
    스시템 폴더에 있는 파일 필요없을것 같아서
    삭제하는 순간 ㅠㅠ
    작동이 안되더니 껐다 키니까 무한 재부팅 걸렸네요..
    시스템 폴더에 펌웨어 유아이 삭제해서 그런것 같은데...
    어떻게 해결 방법 알려주시면 안될까요 ㅠㅠ
  • ?
    Fearless
    12.02.07
    좋은 강좌 잘 보고갑니다. ㅎㅎ
  • ?

    오딘으로 불도저질 ㄱㄱ

  • ?
    러블
    12.02.13
    악!!!!!!!!!!!!!!!!! 너무 길고, 헤메고, 전 지쳐가고, 강좌는 끝이 없고ㅠㅠㅠㅠㅠㅠㅠㅠㅠ 그렇지만!!!! 기어코 해내었습니다ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ 대체 이런 내용을 어떻게 알고 계신거에요? 와우.. 진짜 너무너무 신기합니다!!! 감사합니다! 복받으실거에요♥
  • ?
    니히
    12.02.15
    제 점핑 큰절 받아주세요!! 정말 감사합니다 상세한 강좌 덕분에 쉽게 잘 따라했어요!!!
  • ?
    아... 왜 암만해도 않되죠? 8시간동안 따라햇는데 정말 잘모르겟습니다 계속 무한부팅만되고 물어볼께잇는데

    두번째작업할떄 그림파일명이 같아야한다고 했잔아요 근데 순정그림파일을 알집으로 옮기고나서 보니깐 다른파일도 들어가있던데 원래 들어있는건가요?
  • ?
    성공했습니다^^!! 감사합니다!
  • ?
    배터리는 되지만 시그널이 안됩니다 공부하다 보니 시스템UI 앱에서 똑같이 변경해야 되는건가요?
  • ?
    어떤것이던지 배우게 되면 끝이 없네요... 몇일전부터 차근 차근 공부하다 보니 여기까지... 시간 나면 더 깊이 공부를 해봐야겠습니다.
    덕분에 좋은거 많이 배우고 가네요 감사합니다.
  • ?
    와. 전 걍 보기만 할께요 ㅡㅡ;;
  • ?
    gyutae
    12.04.22
    감사합니다
  • ?
    아이고 고생많으셨습니다 나도언제도움을줄수있을려나
  • ?
    좋은정보 감사합니당
  • ?

    좋은자료감사합니당

  • ?
    drnam
    12.06.24

    으아.. 멘붕중..

    첫번째 방식으로해서 베터리는 잘 바꿨는데요..

    두번째 안테나 변경은 죽어도 안 되네요..

     

    겔럭시s2인데..

    똑같이도 해보고..

    어떤분이 소스 지우고 넣니까 된다해서 원본 이미지 소스도 지운 뒤에 새로 소스 넣어서 해봐도 안되고..

    뭔짓을 해도.. 변화가 없네요..

    쥐쥐

  • ?
    좋은자료 감사합니다
  • ?
    TAEK.LiS
    12.08.22
    디컴파일오류는 apk매니저 압축폴더안에 other 폴더있는 1.apk 2.apk 3.apk 3개 파일을 apktool 폴더안에 있는 framework폴더에 넣어주면 디컴파일 오류가 안뜨네요 apktool 폴더는 컴퓨터마다 위치가 다르다르다고 하네요.
  • ?
    ehdghks
    12.10.18
    감사합니다 ㅠㅠㅠ 읽기가 힘들엇다능 ㅠㅠ 그래도 끝까지 읽엇습니다 ㄹㅎ 님아니엇스면 컴파일이 먼지도 멀랏슬뜻 ......
  • ?
    오...컴파일이 이런 거였군요 잘 보고 갑니다
  • ?
    ClavisB
    13.03.08
    정말대단하십니다
  • ?
    리더1
    13.03.10
    잘보고갑니다
  • ?
    불멸님 글을보며 하나씩 잘배워가고있습니다 ㅎㅎ
  • ?
    어흑... 너무 감사합니다 ㅜㅜ 위젯 수정중인데 피같은 강좌네요
  • ?
    Godhand
    13.12.25
    이보세요 너무 재밌게 강의를 만들면 너무 재밌어서 다 읽을 수 밖에 없잖아요.. 추천이나 받으시죠
댓글 쓰기 권한이 없습니다.
분류 최신순 목록 검색 쓰기
List of Articles
제목 글쓴이 추천 조회 날짜
갤럭시S TA28 테그라크빌드16 + 원낸드모드 패치 + 루팅까지! 한방에! 12 file 초콜렛왕 13 13534 2011.02.16
TA28최신펌 루팅과펌업을 한방에 1 jjongjjong 2780 2011.02.15
갤럭시s 리부팅 하는법 16 백합만발 2 3672 2011.02.15
상태바에 라인제거 하기 8 file 불멸[갤K] 7 2872 2011.02.15
[갤럭시K] 외장 패치 (/data/app 바인드) 8 file NEO™ 2 5598 2011.02.15
알집 최신버전 쓰지 마세요 4 츈츈 1 2371 2011.02.15
리액션 상단바 시계색상 변경하기 3 깜자인생 2 4499 2011.02.13
메인메뉴 바탕 투명으로 만들기 22 해모수 14 4860 2011.02.13
모비낸드, 캐시초기화 혹은 공초와 배터리 소모량의 상관관계 7 자체발광 9 4666 2011.02.13
이전 모비낸드펌 내의 cache.rfs파일과 새로운 cache.rfs파일을 비교해... 8 자체발광 1 2799 2011.02.13
IP 주소 얻는 중 (obtaining IP address)에 관한 문제 정리 1 어쩌란 6403 2011.02.13
외장 메모리 2 윤별 1622 2011.02.12
'와이파이 절전정책' 에 관하여~ 8 씨이익 3925 2011.02.12
리액션 퀵패널통신사 문구수정 9 깜자인생 3 3574 2011.02.12
모바일 페이지에서 엔터키 효과 팁.. 7 won 1742 2011.02.11
랙픽스를 위해 커널 교체한 후 배터리 광속퇴근의 해결법 11 dEcaDENt 2 3807 2011.02.11
강좌 그동안 블로그에 써왔던 강좌를 맛클에 옮겼습니다. 17 불멸[갤K] 22 14729 2011.02.11
강좌 안드로이드 framework-res.apk 수정방법(테마수정, 시스템어플수정) 136 불멸[갤K] 140 88261 2011.02.11
강좌 갤럭시 Kies를 이용한 펌웨어 업그레이드 하기 32 불멸[갤K] 9 15770 2011.02.11
강좌 Root Explorer(루트익스플로러) 사용방법 114 berics 85 63400 2011.02.10
강좌 안드로이드 루팅(Rooting)하기 - SuperOneClick v1.6.5 81 불멸[갤K] 24 44187 2011.02.10
강좌 안드로이드 루팅(Rooting)하기 - Z4root 13 불멸[갤K] 6 25050 2011.02.10
강좌 안드로이드 마켓에서 어플리케이션 다운받기 6 불멸[갤K] 4 12837 2011.02.10
강좌 안드로이드 벨소리,알림음,알람 제작과설정, 그리고 노미디어 강좌 10 불멸[갤K] 12 15251 2011.02.10
강좌 안드로이드 어플설치,어플삭제,MP3,동영상 넣기 강좌 13 불멸[갤K] 8 18670 2011.02.10
[테마제작 팁] INDEX모드 이미지 수정 팁 2 file 쭈뽀 2 2305 2011.02.10
45 요금제 쓰시는분들 참고하세요.~ 19 보이 7 2632 2011.02.10
Tstore에서 어플 싸게 사는 Tip!!!!! >> 쿠폰 활용 6 gucron 2 2280 2011.02.10
메모리 관리법이요~ 2 불토끼 1 2223 2011.02.09
부팅로고 복구법 33 file 미라클_S 18 5808 2011.02.09
1 - 119 - 135