본문 바로가기

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

디컴파일 오류 해결하기 [APK manager 21오류]



APK manager 디컴파일 오류 해결 하기 

오늘은 테마만드시면서 가장 진절머리 나는 디컴파일 오류 해결해보는 강좌를 진행하겠습니다. 사실 컴파일오류도 해결하는 방법을 올려드려야 하는데 블로그 정리때문에 많이 늦어졌습니다. 우선 이전 강좌에서 진행 했다가 삭제된 포스팅을 업데이트해서 다시 올려드릴께요. Apk manager를 받아놓고 테마작업 하려는데 Decompile오류는 테마 제작자에게는 가장 난감한 상황입니다. 


테마를 만들지도 않았는데 디컴파일 부터 안된다면 바로 손놓아 버리는 경우가 생깁니다. 사실 저도 처음에 작업할때 몇 몇 APK디컴파일에서 오류가 나서 상당한 시간을 허비했던 기억이 납니다. 가장 많은 오류로그로  발생하는게 Option21 오류, 21오류입니다. 사실 오류는 디컴파일 보다 컴파일 오류가 많이 나지만 이포스팅은 이 후에 진행해야 순서가 안맞아서 컴파일에 대한 기본적인 오류해결 방법을 포스팅 해드리니 참조해주세요.


Compile & Decompile 오류 해결방법 중 첫 단추 디컴파일 오류잡기 강좌 시작할께요^^








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

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

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





디컴파일 오류잡기 전 PC환경설정 확인하기

APK manager는 우선 자바가 설치된 환경에서 작동됩니다. 아직 자바가 설치된 환경이 아니라면 아래 링크를 통해서 자바부터 설치하셔야 됩니다. 자바도 설치 안되고 오류난다고 말씀하시면 곤란합니다.

아래 이미지를 클릭해서 자바설치강좌 포스팅 페이지로 이동해서 설치부터 해주세요^^






APK Manager 다운받기

우선 자바가 설치되었다면 안드로이드 설치파일인 APK파일을 디컴파일할 수 있는 툴이 필요합니다. 가장 많이 사용하시는 툴인 APK manager를 다운로드 받으신 후에 PC드라이버 최상위에 풀어주세요. 최상위 폴더란

C:\, D:\등 드라이브 바로 아래에 폴더가 존재해야합니다. 중간에 하위폴더로 들어갈 경우 한글 및 언어관련 인식문제로 오류가 발생하실 수 있으니 반드시 최상위 폴더로 설정해주세요 (아래 폴더위치 이미지 참조)



Apkmanager 다운로드 받기 (아래 첨부파일 다운받아주세요)


Apk_Manager_5.1_azdesign.com.zip





디컴파일 오류 문제 해결하기 Log<Option 21>

디컴파일 오류중에는 여러요소가 있겠지만 가장 많이 발생하는것 중에 하나가 오류 Option21번입니다.

그 이유중에 하나가 디컴파일은 단일객체만으로 이루어지는게 아니고 메인 파일과 상호 연계가 됩니다. API관련 레벨이 맞지 않으면 디컴파일 자체가 되지 않습니다. 이러한 API 부분을 설명하는것 보다 오류 해결방법을 다이렉트로 안려드리는 편이 도움이 되겠쬬? 


우선 대표적으로 디컴파일 오류가 가장 많이 나는건 전반적인 안드로이드 그래픽 요소 중에 중요한 상단바와 퀵패널을 담당하고 있는 SystemUI.apk 입니다. 이 파일은 단독으로 디컴이되질 않고 다른 메인 파일과 연동되서 디컴파일 됩니다. 이 연동되는 파일은 framework.apk와 tw-framework-res.apk입니다.


그래서 SystemUI.apk를 디컴파일하기 위해서는 해당 펌웨어에 포함되어있는 framework.apk와 tw-framework-res.apk를 준비하시는게 가장 편합니다. 



그럼 하나하나 실습을 통해 알려드릴께요. 지금부터의 강좌는 APK manager를 어느정도 다르실 줄 아는분들을 위한 강좌 이기 때문에 지금까지 내용을 잘모르시겠으면 아래 강좌를 먼저 보시고 와주세요.


Complie & Decompile 강좌 #1






로그 옵션 21일 디컴파일 오류

우선 본 강좌를 보시고 계신 분들은 디컴퍼일에서 아래와 같은 오류가 났기 때문에 보고 계시겠죠?

이전에는 안났는데 갑자기 이렇게 오류가 나오게 된다면 우선 기존에 디컴파일, 컴파일이 잘되었던 프로젝트를 다시 한번 컴파일해보신 후 다시 SystemUI.apk 프로젝트를 선택하신 후 컴파일해보세요.



그래도 아래와 같으 21번 오류가 계속 나온다면 아래 내용을 통해서 해결하시면 됩니다.


위에 스샷과 같이 오류가 계속난다면 우측상단에 X표 표시눌러서 닫아주세요. 

(지금 이렇게 블루스크린 나는 화면을 Cmd창이라고 말할께요. 처음 들어보는 단어는 아니시죠?? )



이제부터 오류해결 작업에 들어갑니다. 포스팅된 내용을 하나하나 꼼꼼히 읽어주세요.^^

스샷에 나오는 압축파일 폴더명은 Apk_manager_5.0.2로 되어있습니다. 압축파일해제 폴더명과 틀립니다.




오류 이문제를 해결하기 위해서 순정펌에서 추출된  framework.apk와 tw-framework-res.apk를 아래 스샷과 같이 place-apk-here-for-modding 폴더위치에 복사해서 넣어주세요.

꼭 이곳에 안 넣으셔도도 됩니다. 자신이 찾기 쉬운 폴더에 넣으셔도 되지만 보통 Apkmanager를 사용하신다면 Modding폴더안에 두개의 파일을 넣어주시는게 편합니다.




폴더안에 두개의 파일을 모두 넣어주셨으면 이젠 Apk_Manager 상위 폴더로 이동해서 Script.bat실행파일을 

마우스 좌측버튼을 더블클릭해서 실행해 주세요.



Apk manager Cmd창이 아래와 같이 실행이 되었다면 아래 스샷과 같이 키패드의 숫자키로 22번을 눌러주신 후 엔터를 입력해 주시면 프로젝트를 선택할 수 있는 창으로 이동됩니다.



방금전에 미리 저장해 두었던 framework.apk와 tw-framework-res.apk와 현재 디컴파일 오류가 나고 있는 SystemUI.apk를 포함해서 3개의 파일이 존재하겠죠? 그럼 저흰 SystemUI.apk를 선택해야하니까. 숫자패드의 2번을 누른후 엔터키를 처주세요.



우측 상단에 현재 선택되어진 프로젝트가 표시됩니다. 항상 작업하실때 윗부분을 수시로 확인해주세요. 프로젝트를 잘못선택하게 되서 엉뚱한 작업을 하면서 오류가 나고 있는걸 모를 수 도 있으니까요^^


Current-App에 해당 프로젝트인 SystemUI.apk를 확인하셨으면 그 동안 오류가 나고있던 로그21문제를 해결해 보도록 하겠습니다. Dependencies라는 작업을 통해서 프레임워크파일과 시스템유아이 파일간의 관계를 형성해주는것입니다. 같은 레벨로 맞춰주면서 디컴파일 하게 되는겁니다. 그럼 이제 의존 파일 설정에 들어갈께요.



아래와 같이 지금 Apkmanager 기본화면인 Cmd창으로 나오고 계시죠? 



우선 숫자키 10번을 눌러주신후 엔터를 치시면 아래와 같이 화면에 나오게 됩니다. 이 때 다른건 누르지 마시고 마우스를 통해서 아래와 같이 modding폴더안에 저장해 두셨던 framework-res.apk를 선택하신 후에 마우스 drag & drop(마우스로 선택해서 끌어서 Cmd창 위에놓고 놔주세요.)으로 cmd화면안으로 던져주세요.




드래그앤 드롭으로 Framework-res.apk를 던져주셨다면 아래 화면처럼 출력이 됩니다. 

마우스로 Cmd안 아무곳이나 마우스 좌클릭해서 해당창을 활성화 해주세요.  Cmd창을 선택되었으면 키보드 엔터키를 눌러주세요. (좌측 : 파일넣기 전, 우측 파일넣은 후)



그럼 잠시 후 아래화면과 같이 Error창이 나오는데 내용을 Option21오류스크립 출력됩니다. 그냥 무시하시고 Cmd창 우측 상단의 X를 눌러서 Cmd창을 닫아주세요.



이제 하나의 파일이 남았네요 tw-framework-res.apk파일도 방금했던 작업과 똑같이 해주시면 됩니다

Script.bat을 눌러서 apkmanager를 실행히키신 후에 22번을 눌러서 SystemUI.apk를 선택, 그리고 다시 Dependnices를 하기위해 10번을 눌러주신 후 modding폴더 안에 있는 tw-framework-res.apk파일을 드래그앤 드롭으로 Cmd창으로 던져 주세요. 그리고 Cmd창을 클릭하신 후 엔터.. 휴.. 같은말 두번 썼네요.



아래 스샷 좌측화면상태에서 엔터키를 누르시면 우측화면처럼 나옵니다. 



아래와같이 똑같이 오류메세지가 나오겠죠? Cmd창을 닫아주세요.




디컴파일 오류 해결 확인하기 Log<Option 21>

이제 시스템유아이와 프레임워크와의 매칭작업이 모두 끝났습니다. 이제 잘되는지 확인만 해보면 되겠죠?

Apkmanager폴더의 Script.bat을 클릭해서 다시 22번을 눌러 SystemUI.apk를 선택하신 후 디컴파을하기 위해 9번을 눌러줘보세요. 1분이상 걸리지 않을겁니다. 조금만 기다려보세요. 아래와 같이 디컴된 폴더들을 Preject폴더안에 SystemUI.apk폴더 안에서 확인하실 수 있습니다.


입가에 미소가 나오셨기를 바래봅니다. 잘 되셨죠?? 이 상태에서도 안되셨다면 아래 사항을 확인해보세요.


1) 자바설치문제 : 자바설치강좌를 보시고 설치확인해 보세요. 반드시 자바 설치하실때 버젼 잘 맞춰주세요. 32비트인지, 64비트인지 그리고 운영체제도 꼭 확인하세요.


2) Apkmanager폴더 위치 :  한글이 들어간 폴더 경로상에 있는지 다시 한번 확인해 보세요. 서두에 말씀드렸듯이 최상위 폴더에 위치해 있으셔야합니다. 


마지막으로 테마작업하실 때 같은 기종 같은 펌웨어 버젼의  framework.apk와 tw-framework-res.apk로 매칭시켜주시는게 좋습니다. 다른 통신사끼리도 호환은 되지만 이왕 하는거 매칭파일이 좋겠죠?





사실 이 강좌는 이전에 한번 올렸던 강좌입니다.

이유없이 유사문서로 분류되어서 삭제했었는데 다시 기억을 더듬어서

조금더 내용을 추가해서 작성했습니다.



항상 블로그에 도움을 주시는 한별님께 조금이라도 도움이 되었음 좋겠습니다.

그리고 제가 이렇게 귀찮은 작업이지만 포스팅하면서 미소짓게 만들어 주시는 모든분께 감사드립니다.  

앞으로 테마쪽에 대해 조금더 쉽고 유익한 정보 공유해드릴 수 있도록

노력하는 Azdesign이 되겠습니다.^^









이상으로 디컴파일 오류 해결하기 [APK manager 21오류]  포스팅을 마치도록하겠습니다.





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

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


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






* 필  독 *

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

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

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