본문 바로가기

☆ 테마제작관련 ☆/ 테마이식강좌

xml 수정을 통한 테마 포팅 [Theme porting Guide]




테마이식을 위한 xml수정방법

테마이식을 위한 분석편에 이은 xml수정 포스팅을 진행해 드리겠습니다. 사실 이미지 이식을 해보신 분이라면 xml도 손쉽게 하실 수 있습니다. Beyond compare라는 프로그램 사용법만 알고 계신다면 소스수정은 비교해보면서 틀린부분만 바꿔주시면 됩니다. 해외자료 포팅도 지금하는 이식 방법과 똑같습니다.

다만 해외자료는 타기종이기 때문에 해당기기의 순정펌웨어를 구하셔야하고 같은 기종 다른통신사의 자료를 이식하는것 보다는 조금 더 까다롭습니다. 이건 다음시간에 다루기로 하겠습니다.


테마이식강좌를 진행하면서 이미지 이식강좌를 하고 많은 분들이 소스수정도 어렵지 않게 하시는걸 보고 이식강좌를 잠시 잊고 있었는데 처음 시작하시는 분들이 많이 어려워하셔서 xml 수정을 통한 이식방법을 따로 진행해 드리기로 마음 먹었습니다. 컴파일,디컴파일, 오덱스강좌를 다 보신 분들이 라면 어렵지 않게 수정하실 수 있을 겁니다. 이 포스팅까지 하신다면 기본적인 테마이식 방법은 다 알게 되는데 제가 진행하는 테마이식 포스팅은 개념만 알려드리는 것 뿐이고 실제로 이식을 하다 보면 많은 변수가 나오게 됩니다. 그 변수를 모두 다루기는 불가능합니다. 기본적인 내용을 숙지하신 후 부딪치시는 수 밖에 없습니다.


테마이식이나 해외자료 포팅을 어느 정도 하시다 보면 자기만의 노하우가 생기고 각각의 xml 명령어들에 익숙해지게 되면 더 쉽고 빠르게 이식을 하실 수 있습니다. 어느 정도 자신이 생기신다면 자신만의 테마를 제작해 보시는 걸 추천해드립니다. 



지금까지 테마이식에 관한 내용을 정리해드리면 

이미지만 이식하신다면 apkmanager가 필요없고 beyond compare와 7zip, 알집정도면 충분합니다.

이미지와 소스를 같이 이식하신다면 추가적으로 apkmanager를 다룰 줄 아셔야합니다.

그리고 테마이식과정에서 처음에는 이미지에 신경 쓰지 마시고 xml소스부터 이식해주세요. 추가되는 이미지는 추가해주셔야 하고요. xml수정과 컴파일 과정을 거친 후 나중에 이미지를 넣는 게 훨씬 편합니다.








자료 포스팅 하는데 힘이 될 수 있도록

ViewOn 손가락 버튼 꾹 눌러주세요.

(로그인 안하셔도 됩니다)






테마이식을 위한 xml 수정하기

본 포스팅을 보시기 전에 이전 포스팅을 먼저 읽어 주셔야 합니다. 이전 포스팅을 이어서 진행하도록 하겠습니다. 

이전 테마이식을 위한 분석 포스팅 보러가기



테마이식에 같은 통신사에 같은 기종을 이식 할 경우는 드물겠지만 포스팅은 이해를 돕기 위해서 제 갤럭시노트 기능테마 중 framework-res.apk와 순정 framework-res.apk를 비교해서 포스팅해드릴께요




타통신사의 테마를 자기 통신사로 이식하는 방식은[ 예) KT테마를 SK로 포팅할 경우]

KT 순정파일과 KT 테마파일 beyondcompare로 비교를 하신 후 틀려진 부분만 확인해서 SK로 그대로 포팅만 해주시면 됩니다. 이번강좌를 통해서 달라진 파일과 추가된 파일을 분석해서 수정하는 방법을 소개해드릴께요.

그리고 다음 강좌에서 실제 KT파일을 SK로 이식하는 방식을 실예를 통해서 보여드릴께요.




ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

이전 강좌  이어서 진행 할게요.

me3_framework-res.apk(순정)과 theme_framework-res.apk(테마)를 디컴파일 하신 후 비교해본 스샷입니다. me3은 저희가 수정할 파일이고 theme는 이미 만들어진 테마파일입니다.

설명을 돕기 위해 조금 복잡한 파일을 비교하고 있는데 처음 시작하시는 분들은 기능테마가 많이 들어간 파일이식보다는 시계중앙, 색상변경, 폰트크기 변경등 조금씩 수정된 파일 부터 이식을 시도해보세요.



처음 신경 쓰실 부분은 추가되는 파일입니다. 아무리 xml수정을 정확하더라도 연결되어있는 추가파일이 없으면 컴파일 시 오류가 납니다. 추가파일은 대부분 수정 없이 그대로 넣어주시면 됩니다. 


추가된 이미지에 9패치 이미지가 있을 경우 아래 강좌를 참조해서 넣어주세요.

나인패치 이미지 관련 컴파일 오류 해결하기




우측상단에 비교조건에 Show Orphans를 선택하면 테마파일에 순정에 추가된 파일만 표시가 됩니다.






이 상태에서 추가되는 파일을 마우스로 드래그로 선택을 하시면 쉽게 선택이 가능합니다. 선택되어진 상태에서 마우스 우클릭을 누르시면 아래와 같이 Copy to Left를 눌러주시면 됩니다.

(right, Left 주의 하세요. 전 좌측이 순정이고 우측이 테마파일이라 순정쪽인 좌측으로 파일을 복사하는 겁니다.)



그럼 우측에 추가파일들이 좌측으로 복사가 되면서 추가파일 목록에서 사라집니다. 이런 식으로 우측에 추가파일들을 좌측으로 모두 복사해주시면 됩니다.

(전 보여주기 위해 따로 잡았지만 처음부터 모두 드래그해서 옆으로 복사해주시면 됩니다.)




이젠 추가된 파일이 아래 스샷처럼 없죠?


이제 비교조건을 아래와 같이 Show Differences로 바꿔주세요.(순정에서 틀려진 소스를 찾기 위함입니다.)



Drawable뒤에 무언가 붙는 폴더는 추가된 이미지가 없기 때문에 안보셔도 관계 없습니다. 하지만 뒤에 아무것도 없는 drawable폴더 안에는 xml이 존재하니까 수정되는 xml이 있으면 같이 수정하셔야합니다.



소스(xml) 수정부분은 layout과 Value쪽을 보시면 됩니다. 달라진 xml을 이제 같게 수정을 해주시면 됩니다.

(이 때 values폴더 안에 public.xml 일단 무시하고 진행하세요. 파일 내 Id는 컴파일작업 시 생성됩니다.)



keyguard_screen_glogin_unlock.xml파일을 한번 수정해 볼까요? 해당파일을 더블클릭해주세요. 그러면 xml이 탭이하나 생기면서 새로열립니다. 달라진 부분에 붉은 음영이 깔리는데 어디가 달라진지 확인을 해보신 후에 중앙에 있는 화살표(<=)를 눌러주시면 우측의 소스가 좌측으로 복사됩니다.




좌측으로 복사가 되면서 테마소스가 순정으로 이식이 완료 되었습니다. 그럼 디스크 모양을 눌러서 저장을 하시면 xml파일하나 수정이 완료 되어진 겁니다. 같은 방식으로 확인해보면서 틀린 xml파일을 수정하신 후 다 저장해 주세요. 저장을 하신 후에 탭은 닫지 말아주세요. 수정하는 파일이 많다 보면 어디를 수정했는지 모르게 됩니다. 그래서 최종으로 unsigned파일에서 순정으로 파일을 넣을 때 헷갈릴 수도 있습니다.



파일을 비교하면서 수정된 파일에 대한 수정을 다 끝내주세요. 그리고 이젠 me3-framework-res.apk를 컴파일 해주세요. (소스의 순서가 바뀌어서 확인하는데 시간이 많이 걸릴 수도 있습니다.)



Script.bat을 실행하신 후 22번눌러서 me3-framework-res.apk를 선택하신 후 11번으로 컴파일 해주세요.



아래와 같이 컴파일이 무사히 완료되면 아래와 같이 "Is this a system apk"나오면 "N"를 눌러주세요.

처음 테마작업을 하시면 이 "N"자를 누르기까지 많은 시행착오를 겪게 될 거 같습니다. 이 부분에서 오류가 나신다면 컴파일 오류관련 포스팅을 보시고 수정해보시면서 다시 컴파일 해보세요.



이제 place-apk-here-for-modding폴더로 들어가 보세요. unsignedme3_framework-res.apk가 생성이 되었을 겁니다. 이 unsignedme3_framework-res.apk파일의 정보를 순정파일에 덮어 씌워주시면 xml소스수정이 완료가 됩니다.



그럼 순정파일과 unsigned파일을 알집으로 따로 열어서 아래 스샷처럼 만들어 주세요.

(좌측에 수정정보가 있는 apk의 파일을 순정 apk로 포팅하는 작업입니다. 좌우측 순서 유의해주세요)




좌측의 resources.arsc파일을 아래 스샷과 같이 우측에 순정파일에 덮어 씌워주세요.

소스를 수정하시면 resources.arsc파일은 제일 먼저 옮겨주세요. 이 파일에는 이미지가 추가될 시 생성되는 id값의 정보와 Value폴더안의 수정된 모든 내용이 저장되어 있습니다. 




파일을 덮어 씌우시게 되면 아래와 같이 선택작업 팝업이 나오는데 현재파일에 추가하기 선택해주세요.




그리고 중복확인 팝업 창에서 덮어쓰기를 선택해 주세요 

(여러 개 파일을 덮어 씌우실 경우는 모든 파일에 적용체크해주세요.)


그럼 아래와 같이 압축작업이 진행됩니다.



이제 자신이 beyondcompare에서 수정한 모든 xml 파일을 위와 동일한 방식으로 좌측의 파일을 우측으로 덮어 씌워주시면 됩니다. (단 value쪽에 속하는 항목은 resources.arsc파일 안에 포함되어서 알집에는 안보입니다.)



수정된 모든 파일을 덮어씌워 주시면 xml수정작업이 완료되어진 겁니다. 이후에 이미지만 따로 넣어주시면 됩니다. 이미지를 미리 안 넣는 이유는 이미지와 xml동시에 작업하면 오류 날 경우 확인이 더 힘들어집니다. 그래서 xml쪽부터 이식을 한 후에 이미지를 따로 포팅하는 겁니다. 이젠 아래 강좌를 보시고 이미지를 추가로 덮어씌워주시면 됩니다.  테마이미지 이식하기





Apk상에서 수정된 xml이식방법에 대해 포스팅해드렸습니다.

다른 테마제작님들은 어떻게 작업을 하고 계시는 모르겠지만 아마도 비슷한 방식이라고 생각이 듭니다.


오늘은 개념만 설명해드렸고 다음 포스팅에서 타통신사 테마이식 방법 설명해드릴께요.

강좌가 너무 늦어져서 죄송합니다.^^


그럼 모두들 용기 내셔서 좋은 테마포팅과 제작해 보세요^^





이상으로   포스팅을 마치도록하겠습니다.





포스팅 내용이 유익하셨다면 아래 ViewOn버튼 꾹 눌러주시고 

응원의 댓글 부탁드립니다.^^


조금이나마 테마작업하는데 도움이 되어드리고자 포스팅 하고 있는  Azdesign™ 입니다.^^






* 필  독 *

- 블로그내 모든 포스팅 내용 도용 및 2차배포는 금지합니다. -

루팅관련 자료 사용으로 인한 소프트웨어,하드웨어 오류에 대한 책임은 전적으로 본인에게 있습니다.

(항상 자료 사용하시기 전에 백업을 필수로 해주시고 자신의 기종과펌웨어 버젼을 확인하세요)