"테마사"분들이야 [컴파일]쯤은 누워서 오징어 뒷다리 뜯는 정도겠지만...
난생 처음 [스마트폰 테마]를 본인이 원하는 스타일대로 손수 작업하시려는 분들한테는
xml이나 smali 자체가 듣도 보도 못한 낯선 외계어일겁니다.(저도 처음엔 그랬으니까요..ㅎ)
그런 분들이 테마 작업하시다가 컴파일_"21오류"땜에 답답해서 미쳐버릴 지경에 이르지 않도록
"컴파일"과정도 간략하게 적어볼까 합니다.
(혹시, 제가 쓴 내용과는 다른 방식의 컴파일이 있다면..가차없이 지적이나 댓글로 적어주시면 감사하겠습니다.)
[중요:모든 테마작업을 하기전에는, 반드시 "정상적으로 사용중인 파일"을 백업부터 해두세요~!!!
1.가장 먼저, 디컴파일된 원본파일은 반드시 [백업]해두세요.(컴파일 오류시에 아주 유용하게 쓰입니다.)
2.디컴파일된 파일의 xml이나 smali 수정할때는, (엥간하면)notepad++ 를 사용하세요. 그리고 모든 xml 이나 smali를 수정하고난후에는, 반드시 notepad++창의 왼쪽 위에 있는 [파일_저장]을 선택하여 저장한뒤 notepad++창을 닫으세요.
3.xml 이나 smali는 단 하나의 글자나 숫자가 틀려도 컴파일이 안됩니다."신중에 신중을 기해서"작업하시기 바랍니다.
4.어쨌거나 저쨌거나 수정작업이 다 끝났으면.....
5.디컴파일할때와 마찬가지로 일단, APKmanager<Script.bat를 여세요.
6."22번" 입력 엔터.
7.컴파일 하고자하는 파일 선택후 엔터.
8."11번"입력 엔터.
9.컴파일 과정이 진행됩니다.
10.컴파일이 정상적으로 완료되면 마지막에 system파일이냐고 묻는 글자가 나타납니다.이때 반드시 "n"을 입력하고 엔터 치세요.
11.컴파일이 다 끝나면, [APKmanager<place-apk-here-for-modding]폴더에 컴파일된 "Unsigned"글자가 앞에 붙은 파일이 생성됩니다.(Unsigned 글자가 앞에 붙은 파일을 이름만 바꿔서 그대로 폰에 넣으면 안됩니다.예를 들어_컴파일이 완료된UnsignedSystemUI.apk파일을 아무 작업도 없이 그냥 SystemUI.apk 이렇게 이름만 바꿔서 폰에 집어넣을 경우..."상단바가 실종됩니다.!!!")
12.이제 여기서 "폰에 넣을 apk파일을 만드는" 두가지 방법을 소개합니다.
[첫번째 방법]
1.먼저, 현재 본인이 사용중인 펌웨어(ROM)에 있는 [원본_apk파일]을 컴퓨터에 별도로 미리 준비하여 파일 이름을 SystemUI.zip으로 바꾼뒤 압축을 풀어주세요..(편의상 SystemUI.apk를 예로 들겠습니다.)
2.그 다음, 컴파일이 완료된 UnsignedSystemUI.apk도 UnsignedSystemUI.zip으로 이름을 바꿔 압축을 풀어주세요.
3.여기서, 1번에서 설명한 (압축을 푼)원본_SystemUI.apk파일속에 있는 [META-INF]폴더와 [AndroidManifest.xm] 파일을 복사하여, 2번에서 설명한 (압축을 푼)UnsignedSystemUI 안에 집어넣으세요.(딴거 건드리지 마세요~!!!)
4.이제, 원본_SystemUI.apk파일은 별 쓸모가 없으니 삭제하든지 별도로 보관하든지 하시면 됩니다.
5.3번에서 설명한대로 원본파일의 META-INF 폴더와 AndroidMenifest.xml 파일을 붙여넣은 UnsignedSystemUI를 아무것도 건드리지 마시고 다시 압축하세요.(압축할때는, 그냥 "UnsignedSystemUI.zip 으로 압축하기"이렇게 하면 됩니다.)
6.압축한 UnsignedSystemUI.zip을 UnsignedSystemUI.apk 로 이름을 바꾼뒤 최종적으로 SystemUI.apk로 이름을 바꿔주세요.
7.이제,SytemUI.apk 파일을 폰에 넣으면 됩니다.(반드시 SystemUI.apk파일을 폰의 system경로에 이동시켜 퍼미션 644주고 system_app경로에 넣은후 재부팅 하세요.)
# 이 방법은 이전에 "짱구삼촌"님께서 올리셨던 방법인데, 제가 현재 실제 사용중인 방법이기도 합니다.(적극 추천합니다.!!)
xml이나 smali수정작업한 내용물을 일일이 찾아 원본파일에 복붙하는게 아니라, META-INF 와 AndroidMenifest.xml파일을 UnsignedSystemUI.apk에 넣어줌으로써 작업이 끝납니다.아주 간단하죠~^^
[두번째 방법]
1.먼저, 현재 본인이 사용중인 펌웨어(ROM)에 있는 [원본_apk파일]을 컴퓨터에 별도로 미리 준비하여 파일 이름을 SystemUI.zip으로 바꾼뒤 압축 풀지말고 [7zip]을 이용하여 "압축파일 열기"하여 창을 하나 띄우세요.
2.그 다음, 컴파일이 완료된 UnsignedSystemUI.apk도 UnsignedSystemUI.zip으로 이름을 바꾼뒤 압축 풀지말고 [7zip]을 이용하여 "압축파일 열기"하여 창을 하나 띄우세요.
3.[7zip]을 이용한 두개의 창이 열려있는 상태에서...
4.먼저, 컴파일이 완료된 UnsignedSystemUI 에서 res<layout경로로 들어가 수정작업한 xml을 몽땅 다 찾아 [원본_SystemUI]안의 똑같은 경로에 붙여넣기(덮어씌우기) 하세요.(여기서 대부분 "드래그"를 이용하여 작업합니다.)
#만약에, res<layout 경로가 아닌 res<values경로에서 뭔가를 작업하셨다면, 컴파일된 파일안에는 values라는 폴더가 없고[resources.arsc] 라는 파일이 있는데, 그 파일안에 res<values 경로에서 작업한 내용물이 다 들어있습니다.이 resources.arsc를 [폰에 넣을 원본_SystemUI]안에 집어넣으면 됩니다.
#또한, smali 경로에서 뭔가를 작업했을때도 컴파일 하면 smali 라는 폴더는 없고 [classes.dex]라는 파일이 있는데, 이 파일안에 smali 내용물이 다 들어있으니까 그걸 집어넣어주면 됩니다.
5.4번 작업이 끝났으면, 이제 열려있는 원본_SystemUI의 7zip창의 왼쪽 위에 있는 "끝내기"를 선택하여 창을 닫으세요.
6.이제 컴파일된 UnsignedSystemUI.zip파일은 필요없습니다.버리든지 보관하든지 하세요.(첫번째 방법과 반대..)
7.이렇게해서 수정작업한 내용물이 옮겨진 SystemUI.zip을 다시 SystemUI.apk로 이름을 바꾸세요.
8.SytemUI.apk 파일을 이제 폰에 넣으면 됩니다.(반드시 SystemUI.apk파일을 폰의 system경로에 이동시켜 퍼미션 644주고 system_app경로에 넣은후 재부팅 하세요.)
이상입니다.
혹시, 제 글 내용중에 잘못된 부분이나 추가수정할 내용이 있으면 댓글로 남겨주시면 감사하겠습니다