EXODUS_Q™
14.01.16
조회 수 4400
추천 수 19
댓글 14

"테마사"분들이야 [컴파일]쯤은 누워서 오징어 뒷다리 뜯는 정도겠지만...


난생 처음 [스마트폰 테마]를 본인이 원하는 스타일대로 손수 작업하시려는 분들한테는


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경로에 넣은후 재부팅 하세요.)


 


 


 


이상입니다.


혹시, 제 글 내용중에 잘못된 부분이나 추가수정할 내용이 있으면 댓글로 남겨주시면 감사하겠습니다

EXODUS_Q™ 님의 SIGNATURE

profile
Just Do It.
댓글 14
  • ?
    갤3 LTE
    14.01.16
    좋은글 감사합니다 [2.2.4/E210SKSJMH3/4.1.2]
  • ?
    artistas
    14.01.16
    그래도 어려워요 T.T [2.2.4/E210KKKJMD2/4.1.2]
  • ?
    Sparky.M
    14.01.16
    엑소더스님께서 컴파일까지 강좌 올려 주셨군요! 감사합니닷! [2.2.4/M250SKSJME2/4.1.2]
  • profile
    전 phyb 님께 배웠습니다 ㅋ http://www.matcl.com/?c=83/85&where=subject%7Ctag&keyword=1.3&uid=212064 이거 만들고 이젠 클릭만으로 해결합니다. 무지 쉬워졌습니다. ㅋ
  • ?
    3L
    14.01.17
    감사합니다.
  • profile
    아차~...아직 이걸 안해봤네요@_@ [2.2.4/M250SKSJME2/4.1.2]
  • ?
    감사합니다
  • ?
    저도 본격적으로 루팅가야되나 고민되네요^^ 좋은 하루되셔요~~✌
  • ?
    감사합니다.^^
  • ?
    15 추천수 돌파 축하드려요!!
  • ?
    첫번째 방법 같은 경우도.. 두번째 방법과 같은 맥락으로 이용할수 있습니다. 굳이 압축해제를 하지않고 apk파일을 연결프로그램 알집으로 하여 실행하시면 압축 창이 나옵니다. 원본 apk 파일 창 / unsigned apk 파일 창 이렇게 두개를 띄워놓으시고. 원본 apk파일에 있는 [META-INF]폴더와 [AndroidManifest.xml]파일을 드래그 하신후 unsigned apk 파일창에 드롭 하시면 팝업창이 뜹니다. 현재파일에 추가하기 누르신후 덮어쓰기 하시는 방법도...ㅎㅎ
  • ?
    알폰소
    14.01.19
    감사합니다..도움많이되었습니다...프윅투척후..오류발생하면..tw프윅을..투척하니..해결되서..디컴이되더라구요...감사해요..
  • ?
    복잡한 방법을 사용하시는것 같습니다. apkmanager 5.7 기준으로 제가 다시 요약해 드릴께요. 시스템 apk 는 내부 퍼미션 관계가 있어서 기존의 서명키를 그대로 사용해야 합니다. 그래서 원본 apk에서 서명 폴더를 apk 에 그대로 사용해야 부팅시 정상 apk 로 인식합니다. 22번 프로젝트를 선택하고 9번 디컴파일하고 수정 작업하시고 11번 컴파일하시려고 누르면 시스템 apk 냐고 묻습니다. 이때 y를 입력하고 컴파일이 성공하시면 unsignedSystemUI.apk 가 만들어집니다. 이것이 끝입니다. y를 누르면 원본 서명을 복재하여 apk 포함됩니다. unsignedSystemUI. apk 의 명칭을 SystemUI.apk 로 이름을 변경하여 시스템에 투척하시면 됩니다. 설치용 일반 apk는 n 을 선택하고 테스트키 서명을 넣기 위해 사인을 꼭 해줘야 합니다. 시스템 apk 나고 물어 보는 이유를 잘못 이해하신 것 같습니다. 부팅시 로드되는 시스템 apk는 서명 폴더가 단말기 기기의 서명과 일치해야 시스템 관련 부분을 엑세스하는 퍼미션이 열립니다. 설치하는 apk와 다르죠. 일반 테스트키 서명을 넣어도 되는데 시스템 apk 중에 특수한 영역에 엑세스해야하는 부분의 퍼미션이 포함된 경우는 꼭 원본 서명을 해줘야 단말기 빌드 서명과 일치해서 접근이 가능한 겁니다. 일반 서명을해서 문제가 되는 이유가 바로 여기서 발생하는 거랍니다. 그러나 SystemUI.apk 같은게 아닌 시스템 퍼미션을 사용하지 않는 시스템 apk 는 일반 테스트키 서명을 사용하셔도 상관없습니다.
  • ?
    예전에 삼성 S번역기 시스템 앱을 설치용으로 포팅하는 원리도 여기서 출발하는 겁니다. 한마디로 시스템 퍼미션은 단말기 빌드 서명과 일치해야 열립니다. 이 시스템 퍼미션은 수퍼유저 같은 겁니다. 이걸 일반 퍼미션으로 변경하고 앱에서 사용한 퍼미션들을 일일이 지정해 주면 설치용으로 포팅이 가능합니다. 그런데 시스템 서명에서만 열리는 루틴은 지정할 수 없는 퍼미션 부분은 코드를 제거하여 오류를 막고 등등 그리고 일반 서명키를 넣어 설치용으로 포팅이 되는 겁니다. 그런데 이런 시스템 서명 사용하지 않는 앱들이 더 많습니다. 이런건 그냥 서명만 하셔도 설치용이 됩니다.
댓글 쓰기 권한이 없습니다.
분류 댓글순 목록 검색 쓰기
List of Articles
제목 글쓴이 추천 조회 날짜
lgu 갤s8+ 구글락 글올린 사람입니다 598 file 떳다마린 113 17603 2018.03.25
Universal Adrenaline Shot V14 470 file 맛싸이언 124 39511 2011.09.30
강좌 S7 루팅하기 (컴터 사용) sk, lg, kt 모두 사용 가능 404 file ericKangtheB 67 4881 2017.12.23
패블릿모드 하는법! 강좌 379 file 쿤투 83 30994 2013.03.17
[성능 향상] 02.16 업데이트 Customed Adrenaline Shot 수정본~ 378 file 맛싸이언 70 21546 2012.02.15
강좌 LG V20 부트로더 언락하기(국내 내수용,버라이즌,스프린트,AT&T 모... 300 file xps 94 12006 2017.02.12
[12월 30일추가] I/O Scheduler와 외장마운트 동시적용을 통한 성능향... 289 file 이카루스 47 19025 2010.12.17
[겔S : 1월 11일 V2] 이카루스 패치 N2 - 배포게시판이동 262 file 이카루스 113 16246 2011.01.09
강좌 테그라크(빌드30이후) 업데이트폴더 테마적용방법 232 file 택이아빠 150 71918 2011.06.11
통신사로고 제거 방법 222 file 호정김 48 5849 2017.12.05
강좌 S7 엣지 루팅하기 (컴터 사용) sk, lg, kt 모두 사용 가능 216 file ericKangtheB 46 3139 2017.12.19
Galaxy Tuner 소개 (IO scheduler, LCD 색온도, HW sound) 201 file 자양 114 35633 2011.01.05
강좌 네이버 밴드 멀티 201 file o강주현o1 40 3015 2017.01.22
(스샷)Android 4.0이상의 폰에 소프트키를 넣어보자! 201 file DeathstarS 5 26021 2012.06.06
노트4s xposed 설치성공 197 file 왕년스타 57 2368 2017.01.27
맛클 포인트 얻기에 가장 쉬운 방법............ 196 비빅비 406 8773 2013.04.17
[롤리팝] 커널패치 루팅법 입니다! (킷캣,젤리빈에도 유용!!!) 193 file hsk 448 27573 2014.12.07
강좌 잠금화면 상단바 갤4처럼 투명화하기 191 file MuHyeon 100 17653 2013.08.01
(수정:해제법 추가)테그라크 B10 원낸드 모드를 위한 최적화: 심링크/... 186 file 샤인님 8 15601 2010.12.23
강좌 [갤스] 99.9% 안전하고 간단한 루팅과 버벅이 탈출 182 file choique 29 91792 2010.11.30
램최적화 스크립트 9월 19일 버젼.. 172 file 야미 49 21748 2011.09.20
맛싸이언의 트윅모음~ 160 file 맛싸이언 25 17897 2012.05.07
[6개] 겔럭시 노트 젤리빈 베터리 광탈 현상 최소화 하기..! 152 file HackerChang 143 25413 2013.02.18
[12/16 수정 ]I/O Scheduler를 통한 I/O 성능 향상 패치를 제작하여 올... 149 file 이카루스 30 10146 2010.12.14
강좌 초보님들에게 보내는 첫번째 편지 ^^ 148 쎈빛 31 74163 2010.11.18
볼륨키 꾹눌러서 음악넘기기and상단바 수정하기(투명,색상변경) 143 file 쿤투 80 28193 2013.03.16
강좌 테마스토어 (자주묻는 질문/용량부족 현상 해결방법) 138 file 초콜렛왕 25 79455 2010.11.29
개인적인 테그라크 원낸드 모드 최적화 방법(속도+용량) 137 샤인님 9 21153 2010.12.22
강좌 안드로이드 framework-res.apk 수정방법(테마수정, 시스템어플수정) 136 불멸[갤K] 140 88261 2011.02.11
펌웨어 만큼은 제 nas에서 받으셔도 됩니다. 135 나대지마 60 28299 2011.01.11
1 - 135