본문 바로가기

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

[APK Manager] Compile & Decompile 강좌 #1



[APK Manager] Compile & Decompile





안녕하세요 Azdesign입니다.

이번시간에는 Apk manager이용한 compile & decompile 방법에 대하여 포스팅 하도록 하겠습니다.

(부제 : 상단바 시계색상 바꾸기)






아무래도 테마제작하면서 누구보다 apk manager를 많이 사용해 본 사람들 중 한명이라고 생각하고 있지만...^^;

결론은 누구보다 apk사용법을 테마제작에 필요한 부분만 찍어서 설명해드릴 수 있을 거 같습니다.^^



우선 강좌에 앞서서..  apk 용어부터



APK란??

안드로이드 애플리케이션의 확장자로, Application PacKage의 줄인말입니다.

안드로이드의 구동을 위한 어플리케이션 패키지..

그래서 이 apk를 수정하기위해서는 apk manager가 필요한겁니다.

(JPG라는 이미지를 편집할때 그림판이나 포토샵이 필요하듯이)


Apk manager를 이용해 

apk 디컴파일==>관련 xml수정==>apk 컴파일 과정을 거치게 됩니다.




왜 이과정을 거처야하나라는 질문은..  아래스샷을 비교해주세요


압축프로그램으로 apk를 풀어서 res/layout/alert_dialog_progress_holo.xml 쪽을 보면 아래 스샷처럼 알 수 없는 외계어로 변환됩니다.

저희가 판독할 수 없는 언어죠... @@



하지만 

APK로 디컴파일 해서 같은 화일을 열어보면~~~짜잔~~^^ 

정확히는 모르지만 그래도 알아볼 수 있는 언어들이 나옵니다. 그래서

이미지 수정만 한다면 디컴파일 할 필요는 없지만 소스를 통해 

이번시간에는 Apk manager이용한 compile & decompile 방법에 대하여 포스팅 하도록 하겠습니다.



각설하고 오늘은 간단히 APK사용법에 대해서 설명해드릴께요

APK설명하면서 시계색상을 한번 바꿔보겠습니다. apk manager사용법만 숙지하면 어플/위젯/카카오톡 등 어플을 자기취향대로

수정할 수 가 있습니다. (카카오톡은 다른방법으로도 테마제작이 가능합니다. 그건 추후에 리팩강좌에서^^)


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

준비물

1) 우선 자바가 설치되어 있어야합니다. 안되어 있다면 아래 링크 강좌로~~

http://azdesigntm.tistory.com/entry/%EC%9E%90%EB%B0%94%EC%84%A4%EC%B9%98-%ED%85%8C%EB%A7%88-%EC%A0%9C%EC%9E%91%ED%99%98%EA%B2%BD-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0


2) decompile할 SystemUI.apk (추가로 그 펌웨워에 맞는 framework.apk / tw-framwork.apk)

   - 실습할 갤럭시 노트 UH24 vsersion apk 첨부해드립니다. -

uh24_source.vol1.egg


uh24_source.vol2.egg


3) Apk manager (아래첨부된 Apk_manager_5.0.2.zip 다운로드)


Apk_Manager_5.0.2_Azdesign.zip



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


1. 우선 첨부 된 uh24_sourceapk manager 다운로드 받아주세요

2. Apk manager_5.0.2 압축을 풀어서 드라이브 최상위 폴더 (C:, D:... 로 보내주세요.)

   압축폴더 내를 확인해보면 아래처럼 되어있습니다.


작업하면서 주로 사용되어지는 폴더는 위에 modding & projects 2개의 폴더와 Script.bat 실행화일입니다.



3. 압축푼 uh24_source.egg압축화일을 풀어나 나온 3개의 apk화일을 아래와같이 place-apk-here-for-modding폴더에 넣어주세요



4. Apk_Manager_5.0.2폴더로 이동해서 Script.bat 더블클릭해서 실행해 주세요


5. 아래스샷 처럼 윈도우 창이 나오게됩니다.

보기엔 무척 부담드러운 화면이 이지만 저희가 사용할 건 (9,11, 22번) 3개를 주로 사용하게되니 부담갖지 마세요^^

간단하게 설명하면


9번 : Decompile.apk  ==> apk 를 디컴파일해서 수정가능케 하는 명령어

11번 : Compile 디컴파일해서 수정된 화일을 다시 apk화일로 컴파일 하는 명령어

22번 : 프로젝트관련 apk를 선택할때 사용. 여러개의 프로젝트가 있게 되면 그중 하나를 선택해야 하는 기능입니다.


6. 우선 시계색상을 변경하는 강좌로 apk manager 강좌를 설명하니 우선 상단 시계색상을 담당하고 있는 

   SystemUI.apk를 선택해야겠죠 ??  apk를 선택하겠습니다.

   숫자패드 2를 두번 눌러주세요~~~ 22


7. 아래와 같이 place-apk-here-for-modding에 넣어두었던 3개의 apk 가 보입니다. 그중 SystemUI.apk를 

    선택해야하니 2번에 위치해 있네요.. 숫자패드 2번을 눌러주세요


7. 아래와 같이 Current-App : SystemUI.apk 가 선택되어진걸 확인 할 수 있습니다.

    이젠 systemUI를 디컴파 해야하니 9번을 눌러주세요



7. 아래와 같이 Current-App : SystemUI.apk 가 선택되어진걸 확인 할 수 있습니다.

    이젠 systemUI를 디컴파 해야하니 9번을 눌러주세요


* 이부분에서 오류가 난다면 아래링크로 가서 apk세팅 작업을 해주세요

http://azdesigntm.tistory.com/entry/apk-manager-%EB%94%94%EC%BB%B4%ED%8C%8C%EC%9D%BC-%EC%98%A4%EB%A5%98-%ED%95%B4%EA%B2%B0-%EB%B0%A9%EB%B2%95




8. 9번을 눌러 Decompile이 완료되면 다시 초기화면나오게 됩니다. 

   Apk_Manager_5.0.2_Azdesign\projects\SystemUI.apk\res 폴더안을 보시면~~~ 아래 처럼 많은 폴더가 생성되어졌습니다.


9. 그럼 시계 관련 색상 수정을 한번 해볼까요??

    projects\SystemUI.apk\res\values\styles.xml 경로에 있는 Style.xml을 선택하고 우클릭 편집눌러주세요.

   * 연결프로그램을 메모장으로 설정해주시면 되는데.. 개인적으로는 notepad++ 을 추천합니다.



10. 시계색상 관련 값을 수정해 줍니다.

      ctr+f를 눌러서 "TextAppearance.StatusBar.Clock" 를 검색해 주세요


빨간 박스부분이 상단바 시계에 관련된 소스값입니다.  이부분에서 사이즈, style, 색상을 수정할 수 있습니다.
전 ICS색상값인 #ff36b7e7으로 수정해볼께요

색상코드값 강좌 참조


1) 수정 전
    <style name="TextAppearance.StatusBar.Clock" parent="@android:style/TextAppearance.StatusBar.Icon">
        <item name="android:textSize">16.0dip</item>
        <item name="android:textStyle">normal</item>
        <item name="android:textColor">#ffbebebe</item>
    </style>

1) 수정 후
    <style name="TextAppearance.StatusBar.Clock" parent="@android:style/TextAppearance.StatusBar.Icon">
        <item name="android:textSize">16.0dip</item>
        <item name="android:textStyle">normal</item>
        <item name="android:textColor">#ff36b7e7</item>
    </style>

11. 수정이 완료 되면 파일==>저장 (ctr+s) 를 눌러주시고 이미 오픈되어있다면 명령어 11번 Compile 눌러주세요
      (혹시 창을 닫으셨다면 Script.bat 더블클릭 + 22번 + systemUI.apk를 다시 선택해 주세요)


12. 컴파일이 진행됩니다. 일정시간이 지난 후 (짧게는 몇초 길게는 2-3분) 아래화면이 나오며 "N" 을 선택해주십니다.


13. 그러면 초기화면으로 돌아옵니다. 수정된 값이 적용된 화일(unsignedSystemUI.apk) 아래폴더에 생겼습니다.
     C:\Apk_Manager_5.0.2_Azdesign\place-apk-here-for-modding\unsignedSystemUI.apk 



14. 이젠 원본화일 SystemUI.apk 수정 된 unsignedSystemUI.apk에서 추출해서 덮어 씌워주시면 됩니다.
     


여기서 부터는 각자 편한대로 하는 방법이 다 틀리겠지만 제가 하는 방식으로 알려드리겠습니다.

1) place-apk-here-for-modding폴더 안에 새 폴더를 하나 만듭니다.  [폴더명 임의로] 전 azsystemui 폴더

2) place-apk-here-for-modding폴더 안에 SystemUI.apk, unsignedSystemUI.apk 복사해서 azsystemui폴더에 복사

3) unsignedSystemUI.apk 우클릭 열기(알집)


4) Drag & Drop으로 resources.arsc 화일을 azsystemui폴너 내로 꺼내 놓습니다.

  * resources.arsc 화일안에는 저희가 수정한 Value/style.xml값에대한 정보가 들어있습니다.

     다음강좌에서 조금더 자세히 설명해 드리겠습니다.




5) unsignedSystemUI.apk  알집을 닫아주세요

   아래 화면처럼 시계색상 코드값을 갖고 있는 resources.arsc 를 빼 내왔습니다.

   이젠 SytemUI.apk에 엎어 씌워주시면 끝입니다.



6) SystemUI.apk을 선택 ==> 우클릭 ==> 열기(알집) 상태로 들어가주세요

   그상태에서 추출된 resources.arsc 화일을 덮어 씌워주세요   


7) 현재 화일에 추가 하기 선택



7) 덮어쓰기 선택 선택하면 덮어씌워집니다. 그리고 Systemui.apk  알집을 닫아주세요




휴~~ 이제모든 작업이 끝났습니다. 이젠 수정된 SystemUI.apk를 루익/테그라크 폴더를 이용해서 system/app경로에 
넣고 리부팅/리커버리 적용하면~~ 


짜잔~~ 아래와 같이 시계색상이 변한걸 확인할 수 있습니다.


이런 상단바 흰색 시계색상이




이런 ICS색상의 시계로 변신했습니다 ^^




무지 복잡해 보이지요?? 그런데..몇 번 해보시다보면 무의식중에 자기도 모르게 손쉽게 이런작업을 할 수 있습니다.

자신감을 갖고 한번씩 도전해 보세요~~~

항상 원본백업을 필수 인거 아시죠?? ^^






이상으로 Apk manager이용한 compile & decompile 방법에 대하여 포스팅을 마치도록 하겠습니다.


 


 포스팅 내용이 조금이라도 도움이 되셨다면 아래 손가락 View On 손가락 한번 꾸욱~~ 눌러주세요^^


댓글 추천은 저에게 큰 힘이 됩니다 포스팅 내용 도용 및 2차 배포는 금지합니다.