APK 파일 Compile, Decompile 해보자. APK Manager

 안드로이드를 사용한다면 한번쯤 APK Manager라는 것을 들어봤을 수 있습니다. 보통 테마를 만든다던지, 게임 데이터 조작이나 리소스 추출 또는 변경등을 하기위해 APK Mnager를 사용 하는 것 같더군요.

 제 경우는 중국 SDK를 연동중에 이상한 요구사항때문에 만지게 되었는데요, 요구사항에 대한 것은 다음에 중국 SDK 연동 포스팅에서 정리하기로하고 이번 포스팅에서는 직접 개발한 APK파일을 APK Manager로 컴파일, 디컴파일하는 것을 정리해보겠습니다. 보통은 framework-res.apk와 SystemUI.apk등을 필요로하는 것 같더군요.


1. APK Manager 설치

 Redmaner라는 분의 블로그에 가보면 링크를 통해 다운로드 할 수 있습니다. 또는 아래 링크를 클릭해 직접 다운로드합니다. 5.1이 최신인 듯하네요. 블로그를 보니 요구사항으로 자바 1.6과 안드로이드 SDK를 필요로하니 설치되지 않은분은 설치하시기 바랍니다.

APK Manager 5.1 Windows

 다운로드 후 적당한 곳에 압축해제합니다.


2. 디컴파일

 place-apk-here-for-modding 디렉터리에 작업을 진행할 APK 파일을 넣어줍니다. AndroidBuild.apk와 Unity3DBuild.apk를 넣어봤습니다. 이름 그대로 이클립스에서 빌드한 순수 안드로이드 apk 파일과 유니티3D에서 빌드한 안드로이드 apk파일입니다.

 상위 디렉터리에 있는 Script.bat를 실행하면 위와같이 콘솔창이 뜹니다. 작업할 apk를 선택하기위해 22를 입력합니다.

 작업 디렉터리에 넣었던 apk가 보입니다. AndroidBuild.apk로 진행해 보겠습니다. 1을 선택합니다.

 오른쪽 위에 보면 선택한 apk명이 보입니다. Decompile apk인 9번을 선택하면 디컴파일이 진행됩니다.

 디컴파일된 apk의 파일들은 projects안에 파일명과 같게 생성 된 디렉터리 안에 생성됩니다.


3. 컴파일

 컴파일도 메뉴 몇번만 선택해주면 쉽습니다. 디컴파일과 같이 22번을 눌러 컴파일할 apk를 선택하고 11번을 선택해 컴파일을 해줍니다. 저는 시스템 apk가 아니기때문에 Is this a system apk에서 n를 선택했습니다.

 그러면 이렇게 작업 디렉터리에 사인되지 않은 apk 파일이 생성됩니다. 콘솔에서 12번을 선택해 Sign된 apk를 생성할 수 있습니다.

 사인을 해주면 기존 unsigned.apk는 사라지고 signed.apk가 생성됩니다.

댓글

이 블로그의 인기 게시물

'xxx.exe' 프로그램을 시작할 수 없습니다. 지정된 파일을 찾을 수 없습니다.

goorm IDE에서 node.js 프로젝트로 Hello World Simple Server 만들어 띄워보기

애드센스 수익을 웨스턴 유니온으로 수표대신 현금으로 지급 받아보자.