Odex [Deodex] 강좌 #2 [부제 : dex화일 추출]

2012.12.21 09:59




[Odex Deodex 강좌 #3] dex화일 수정 및 적용

[Odex Deodex 강좌 #1] 오덱스 & 디오덱스란?




Odex & Deodex 강좌 #2


어렵게만 생각하시는 Odex & Deodex 실습을 통해 배워봐요^^

p.s 지정된 파일을 찾을 수 없다고 나오시는 분 압축프로그램을 7zip으로 바꿔서 해보세요 (쿤투님 경험입니다.^^)




테마제작 하시면서 Odex라는 단어만 덮어버리시는 테마사님들에게

조금이나마 도움이 되고자 강좌를 진행하게 되었습니다.




Odex & Deodex 처음들어 보시면 이전 강좌부터 봐주세요

[Odex Deodex 강좌 1] 오덱스 & 디오덱스란?






Odex & Deodex 작업은 절대 어려운거 없습니다.

저흰 프로그램을 짜는게 아니고 

이미 오픈된 소스를 자신의 통신사 / 기종에 맞게 수정만 해주시면 됩니다.

사실 Apk manager 다루는 방법보다 쉬울 수 도 있습니다.





다만 Apk manager 보다는 핸드폰 / PC세팅이 먼저 이루어져야 하는데

이 부분에 대한 체계적인 강좌가 없어서 어려워하시는것 뿐입니다.



우선 자신이 Odex작업을 할 수 있는 준비가 되어있는지 확인해 볼까요??

아래 6가지를 먼저 준비 / 세팅 해주세요




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

1

 우선~~ 루팅이 되어있습니까?

안되어 있다면 아래 강좌 보시고 루팅부터 해주세요

[tegrak kernel #2] 테그라크를 이용한 루팅 / 언루팅




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

2

 그리고~~ Java가 PC에 설치 되어 있습니까?

안되어 있다면 아래 강좌 보시고 자바부터 해주세요

[자바설치] JAVA 설치를 통한 테마제작 환경 구축하기



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

3

 휴대폰에 BusyBox가 설치 되어있어 있습니까?

안되어 있다면 아래 강좌 보시고 자바부터 해주세요

[BusyBox] 비지박스 설치 / 비지박스 사용법



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

4


 휴대폰에 USB 디버깅 체크가 되어있나요?

시스템설정==>개발자옵션==>USB 디버깅 체크





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

5

 Odex Deodex할 수 있는 

AutoDEOToolADB툴을 다운로드 받아 주세요



AutoDEOTool1.0.3_softdx_fix.7z



7.zip 압축화일 풀기방법은 아시죠?? 모르시면 아래 링크 참조

7zip(7-zip) 사용법 (분할압축 해제 방법)




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

6


 마지막으로 자신이 사용하고 있는 펌웨에서 추출한

 Framework폴더 전체와 App폴더 내(필요한 화일만) 준비해 주세요


없으시면 따로 구하셔도 되고.. 아니면 순정펌에서 추출하셔도 됩니다.

삼성 갤럭시 시리즈 kies를 통한 펌웨어 추출 방법

펌웨어에서 순정어플 추출 하기 [framework/app폴더 등]





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


"다만 Apk manager 보다는 핸드폰 / PC세팅이 먼저 이루어져야 하는데"


라는 부분이 이런 부분입니다.

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




Apk Manager에 비해 준비해둬야 할게 너무 많죠??

그래도 한번만 준비해 두시면 다음 부터는 순정펌만 있으면

신속하게 작업이 가능합니다.


처음 한번 하는게 어렵지 한번만 해보면 

너무 쉬운 작업 들입니다.


못믿으시겠죠??

앞으로 스샷대로 하나하나 따라하시다 보면

Odex Deodex 별거 아니네~~라고 말하실거예요^^






다만 소스가 오픈되어 있어서 간단한 수정 만 할 경우를 말하는겁니다.

자신이 전혀 다른기종의 Odex를 놓고 자기 기종과 비교 대조하면서

포팅하는 수준을 말씀드린 건 아닙니다.




그럼 모든 준비가 되었다면 시작해 볼까요?

(가장 간단한 ICS Lock화면 만들기 강좌를 예를 들어 설명해 드릴께요)







첫번째 단계 

 Odex(Jar)를 autoDEOTool로 Deodex하기 

(아래 도표 Dex추출 전 까지)







1) 5번에 첨부 되어진 압축 화일을 압축해제 해서 드라이브 최상이 폴더에 풀어 주세요 

(친절하게 아래 링크 다시 달았습니다.)



AutoDEOTool1.0.3_softdx_fix.7z







아래 스샷과 같은 화일들이 보이실 겁니다.

작업의 편의를 위해 웃음투자님의 autodeotoolADB를 합쳐 놓은 겁니다.

http://blog.naver.com/softdx/60158878801(Autodeotool 출처 웃음투자님)








2) 순정펌에서 추출한 Framework폴더 화일 전체를 _framework 폴더 안에 넣어주세요 (아래 순서대로^^)



순정펌웨어 framework 폴더에서









순정 펌웨어 framework 폴더안파일 전체를 복사해서




AutoDEOTool 폴더안 _framework폴더안에 붙어넣어 주세요




3) 폴더안에 있는 AutoDEOToolMain.bat 를 더블클릭해서 프로그램을 실행 시켜 주세요





AutoDEOToolMain.bat 초기 실행 화면 입니다.


AutoDEOToolMain.bat 초기 실행 화면 입니다.


이번 강좌에서는 ICS Lock화면 만들기 강좌에 필요한 화일이 jar화일이기때문에 framwork폴더만 넣었습니다.

app폴더안에 apk+odex관련 수정을 위해서는 _app폴더안에 필요한 화일을 넣어야겠지요.


위에 명령어 중에 꼭 알아야할 명령어는 1번/3번/5번 입니다.




1.DEODEX ALL (Stock Rom)

_framework, _app 폴더안에 모든 화일을 Deodex화 합니다.


3.DEODEX APKs (Stock Rom)

_app폴더안에 apk와odex를 조합하여 deodex합니다.


5.DEODEX JARs (Stock Rom)

_framework 폴더내의 jar+odex를 조합하여 deodex합니다.




오늘 순정락을 ICS락으로 바꾸기 위해서는 framework 폴더안에 android.policy.jar  이 필요 하므로 

키보드 자판 5번을 눌러주신 후에 엔터를 쳐주세요



아래 스샷과 같이 Deodex 되는 과정을 보실 수 있습니다.





 deodex가 완료되면 다시 AutoDEOToolMain.bat 초기 실행 화면으로 돌아옵니다.



그럼 deodex가 잘 되었는지 확인해 볼까요?

폴더내에 deodexed_JAR 폴더 안을 확인해 보세요




저희가 사용 할 android.policy.jar 이 잘 Deodex되었네요

버젼별로 안되는 화일들이 있습니다. 안되는 화일 deodex하는 방법은 이 다음강좌에서 따로 다루도록 할께요





지금까지 한 작업을 아래 다이어그램을 보면 사각박스안에 과정이였습니다.

원본 Deodex 과정까지 오셨네요^^








지금부터는 아래 다이어그램 사각부분 dex화일을 추출 / 수정 / 다시 수정된 dex화일 생성까지 설명해 드릴께요








두번째 단계 Dex 추출 및 수정



추출된 android.policy.jar화일을 AutoDEOTool폴더로 복사해 주세요




아래 스샷의 android.policy.jar화일 경로 확인해 주세요 




android.policy.jar 선택 후 우클릭을 해서 열기를 해주세요



android.policy.jar를 열어보시면  classes.dex화일이 있습니다.

바로 저희가 말하는 dex화일 추출의 대상이 되는 dex 입니다.

(deodex되기 전 에는 저 dex라는 화일이 존재하지 않습니다. )



classes.dex화일을 Drag & Drop으로 AutoDEOTool폴더로 꺼내 놓으세요





아래 스샷 경로에 classes.dex화일있는 걸 확인해 주세요



휴~~~ 이제서야 dex추출이 완료 되었습니다.


이제 Odex 작업의 반은 끝난겁니다.






이젠 dex화일을 수정하고 적용 만 하면 됩니다.








오늘 강좌는 여기까지 하고 다음 Odex [Deodex] 강좌 #3에서 

dex화일 수정하고 스마트폰 적용하는 과정을 설명해 드릴께요








이상으로 Odex [Deodex] 강좌 #2를 마치도록 하겠습니다.




azdesign™ ☆ 테마제작관련 ☆/테마제작강좌 , , , , ,



  1. 이전 댓글 더보기
  2. Blog Icon
    지나가는 초보자2

    저.. secsettings.apk 디오덱스까지 했는데 ㅠㅠ
    apk manager로 디컴파일하는데 안되네요 ㅠㅠ...
    framwork-res, twframework-res 둘다 연결해주고 하는데 여전히 디컴파일 9번에서
    같은 에러가 나는데 어떻게 해야하나요 ㅠㅠ

  3. Blog Icon
    notewhite

    하하.. 안녕하세요 디자인님~~
    오늘 UJ30테마를 입히고... 시계가 오전오후가 안되길래 직접해보려다가...
    뭐가뭔질모르겠네요;;
    시계오전오후는 시스템유아이라 루익으로 뽑아냇고, _app에 넣어서 cmd창뜨면 3번을눌럿는데..
    아무런 변화가 없네요.......
    뭘잘못한건가요;;;헤헤헤ㅔㅔㅔㅔ;;

  4. Blog Icon
    테마개발자

    안녕하세요?
    제가 최상위에 풀고, Framework파일을 다 _framework에 넣고..
    5번 눌러보니 지정된 파일을 찾을 수 없다네요...
    1번도 역시 그래요..
    첮번째 강좌는 잘 봤는데.. 여기에서는 어떻게 하죠??

  5. Blog Icon
    테마개발자

    ㄷㄷ;; 그렇군요.. 저는 C:\에 넣어서요... 그럼 D:\로 다시 도전해보겠습니다. 감사합니다^^

  6. Blog Icon
    태마개발자

    순정펌웨어에서 추출하는거 맞죠??
    전 그렇게 추출해서 하고 있는데..
    혹시 루익으로 추출하는건가요?? ㄷㄷ;;

  7. Blog Icon
    안녕하세

    안녕하세요 app폴더에다가 systemui.apk 와 오덱스를 같이 넣었는데 지정된 파일을 찾을수없다고 하네요 어떻게하면되나요?

  8. Blog Icon
    쿤투

    오!!!! 디자인님 감사드립니다!!!!
    디자인님덕분에 그렇게도 안되던 디오덱스가 되었네요!!
    왜안되나 하다가
    디자인님의 댓글중에 최상위폴더이냐고 물어보는 답변을 보고 그대로 하고서도 안되길래 뭔가했더니...
    디자인님의 디오덱스 스샷에 7zip이라는 문구가 눈에 띄더라구요.
    그래서 7zip 프로그램을 깔고 다시 시도해봤더니 디오덱스 잘되네요!
    7zip까니깐 오류 해결되었습니다!
    지정된파일을 찾을수없다는 오류였습니다.
    혹시 안되는분들 참고해주세요!

  9. Blog Icon
    쿤투

    참고해주신다니 감사합니다~
    다른분들이 수월하게 성공들하셨으면 좋겠네요~

    -지금 삘타서 app도 해보고있는데요.
    deodex 잘되네요~
    합쳐진 apk파일 다시 odex하는 방법도 jar파일을 odex화 하는 명령어와 같은가요?

  10. Blog Icon
    원나소년

    음.. 하라는대로하고 5를 눌럿는데 지정된파일을 찾을수 없다고뜨내요 ㅠㅠ 어떻게해야하는지 빠른실내에 알려주시면감사하겟습니다.

  11. Blog Icon
    원나소년

    파일 그대로 넣엇고 최상위 폴더라면 D:\여기에 모든파일이 다있어야하나요?

  12. Blog Icon
    쿤투

    7zip 프로그램 안까셨으면 한번 깔아보세요.

  13. Blog Icon
    원나소년

    7ZIP깔았는데도 안되요 ㅠㅠ

  14. Blog Icon
    쿤투

    그러면...
    순정 framework폴더 안에있는 파일들을 전부 _framework에 넣은후 디오덱스 시도해보세요 잘될겁니다

  15. Blog Icon
    원나소년

    그레도 안되던데 ㅠㅠ 어떻게해야되죠 ㅠㅠ

  16. Blog Icon

    비밀댓글입니다

  17. 전부!!였군요, 디오덱스 하고싶은 파일만이 아니라...^^
    강좌 잘보고 갑니다, 덕분에 디오덱스 중이고 3일을 끙끙대던게 속이 후련하네요ㅎㅎㅎ

  18. Blog Icon
    Cross

    SystemUi.apk파일과 SystemUi.Odex파일을 _Apk폴더에 넣고 3번 눌렀는데 지정된 파일을 찾을수 없다고 하는데 어떻게 해야 하나요?;;

  19. Blog Icon
    무백

    강좌 잘 읽었습니다 지금 밖이라서 집에가서 해보려고하는데요

    제가 현재 카뮤님과 리체님의 디오덱스롬을 사용중인데 순정앱을 많이 지워놓으셔서

    제가 필요한거만 디오덱스해서 넣을려고하는데

    순정펌에서 추출한 앱들을 디오덱스만해서 넣어도 작동이 되는지 궁금합니다!!

    다시한번 강좌 감사합니다^^

  20. Blog Icon
    무백

    강좌대로 하니 디오덱스롬에서 디오덱스 잘 되어서 사용하고있습니다^^

    감사합니다.

    그런데 framework.apk 는 디오덱스하면 deodexed_jar 폴더에 있는

    framework.jar framework2.jar 만 디오덱스롬에 복사해주면 되는건가요 ?

    app폴더를 디오덱스하면 odex파일이랑apk 파일이랑 합쳐져서 apk파일만 남았는데

    framework.apk는 디오덱스 된건지 아닌지를 모르겠습니다. ㅜㅜ;

  21. Blog Icon
    어긋난운명

    SystemUI를 디오덱스 할때는 53번으로 API number is set to 이 부분을 수정해줘야 되는거 맞나요..?

  22. Blog Icon
    오!!

    님말씀대로 API number is set to 부분을 휴대폰의 안드로이드 버전과 맞는 API를 바꿔주니 되는군요!!! 안됐던분들이 이걸 설정 안해줘서 그랬던거네요

  23. Blog Icon
    Stanely Kim

    디자인님! 안녕하세요
    맛클에서 가죽테마 많이 이용했던 팬입니다...
    다름아닌 강좌중에서 데오덱스 작업만 한다면
    예를들어 app와 framework만 통채로 한다면 1번 작업만 하면되는건지요? 그리고 순정롬외엔 다른 커롬은 안되는지요?

  24. Blog Icon
    쿨한녀석

    디자인님 안녕하세요! 오덱스 강좌를 찾아 떠돌아다니던 중 뙇! 하고 너무 좋은 강좌를 들고 나타나주셔서 감사합니다!
    일단 준비6단계하라는건 다 했습니다.생각없이 대충 설치하고 따라하다가 계속된 오류로 강좌정독 후 댓글 정독을 하여 현재 정정한 상태는

    1.c:\ 에 autodeotool 압축을 풀었습니다.(자바등은 apk manager 설치할때 설치되었어요.)
    2.7zip 설치후 알집대신 7zip을 기본프로그램으로 설정했습니다.
    3.본인의 핸드폰에서 framework 폴더안의 파일들을 _framwork 폴더에 파일들만 복사해서 넣었습니다.
    4.jar 디오덱스는 중간에 몇몇 파일들을 제외하고 디오덱스가 문제없이 됩니다.
    5.문제는..제가 현재 하고있는것이 퀵패널 투명화인데요. 현재 systemui.apk를 디컴파일하여 나인패치등의 파일을 투명화하여 대체하고 xml 파일들을 수정한 상태에서 컴파일하여 "수정된 systemui.apk"을 사용중입니다.
    이 "수정된 systemui.apk"파일과 systemui.odex 파일을 디오덱스 하려니 "지정된 ~~"이런 오류나 "잘못된~~"이런 오류가 뜨네요..

    댓글 정독 후 제가 예상되는 원인은 systemui.apk 파일이 순정이 아닌 "수정된" 파일이라서 라고 생각되는데..
    이것이 맞는지 여쭤보고 싶습니다.

    현재 기종은 KT갤럭시노트2 젤리빈 4.1.2 버전입니다.

    다시한번 훌륭한 강좌에 감사드립니다!

  25. Blog Icon
    쿨한녀석

    으악 긴 허접한 질문에 빠른답변 주셔서 감사합니다!
    꼭 성공할게요!

  26. Blog Icon
    JG

    android.policy.jar (deodex 파일) 만드는데요,,,
    디오덱하고나서 android.policy.jar를 열어보면 classes.dex화일이 있다고 하셧는데
    없네요 ㅠㅠ 어떻게해야되나요?

  27. Blog Icon
    JG

    AutoDEOTool1.0.3_softdx_fix.7z 이걸 c드라이브 최상위폴더에 압축을 풀고하니까 되네요^^

  28. 다행입니다.^^

  29. Blog Icon
    폰돌리

    아... API를 바꾸니깐 다 되네요^^ 이렇게 기쁠수가..

  30. 관련내용도 추가 시켜놔야 겠네요^^ 피드백 감사합니다.

  31. 우와 진짜 대단하시네요 어떻게 이걸다....

  32. 도움이 되셨으면 좋겠습니다.^^

  33. 좋은 강좌 감사드립니다. 그런데 그냥 일반적인 SystemUI에 있는 xml 수정도 이런 방식으로 해야되나요?

  34. xml은 오덱과 조금 틀립니다. 이전 강좌 참고 바랍니다.