본문 바로가기

Mobiles

Apk 컴파일과 디컴파일 방법 - Apk Manager 5.1




Apk 컴파일과 디컴파일 방법 - Apk Manager 5.1

파일출처 : http://blog.naver.com/softdx


Apk 컴파일과 디컴파일 방법 - Apk Manager 5.1


스마트폰 루팅 후 apk파일을 추출해 컴파일과 디컴파일하는 과정을 조금이나마 쉽게 설명해 보려고 간단한 내용과 이미지로 작성해 보겠습니다.


먼저 루팅 후 apk파일을 추출하는 과정은 생략하도록 하고 바로 Apk Manager를 이용해 디컴파일하는 방법부터 알아보도록 하겠습니다.


먼저 본문 하단에 Apk Manager 파일을 다운 받고 압축을 풀면 아래와 같이 나오게 될 겁니다. log.txt 파일은 컴파일과 디컴파일을 하면서 자동으로 생기는 파일이니 없다고 놀라지 마시고 작업하다 보면 알아서 생성됩니다.ㅎ


*압축푼 Apk Manager 폴더는 C:드라이브 하위, 바탕화면, 한글명으로된 폴더가 없는 경로에 놔두고 쓰시기 바랍니다.



Apk 컴파일과 디컴파일 방법 - Apk Manager 5.1



Apk 컴파일과 디컴파일 방법 - Apk Manager 5.1


먼저 추출한 apk파일을 place-apk-here-for-modding 폴더로 복사해 줍니다.



Apk 컴파일과 디컴파일 방법 - Apk Manager 5.1


그리고 Script.bat 파일을 실행하면 아래와 같이 cmd모드창이 뜨면서 본격적으로 컴파일과 디컴파일을 할 수 있게 됩니다.


첫 단계는 apk파일을 디컴파일해서 내부에 있는 파일을 정상적으로 볼 수 있도록 하는 작업인데 이 디컴파일 작업은 apk파일을 압축프로그램과 연결해서 그냥 압축 푸는 방식과 달리 압축프로그램뷰어로 보여지는 파일 외에 더 많은 파일까지 정상적으로 볼 수 있게 해주는 방법입니다.



Apk 컴파일과 디컴파일 방법 - Apk Manager 5.1


22를 입력하고 엔터.~ (place-apk-here-for-modding 폴더에 apk파일이 많으면 22번으로 들어가 디컴파일할 apk파일을 선택하지만 place-apk-here-for-modding 폴더에 1개의 apk파일만 있으면 22를 입력하지 않고 9번이나 11을 눌러 바로 디컴파일해주시면 됩니다.)



Apk 컴파일과 디컴파일 방법 - Apk Manager 5.1


여러 개의 apk파일 중 가장 보편적으로 쓰이는 SystemUi.apk파일을 선택하겠습니다. apk파일명 앞에 있는 숫자를 입력하고 엔터.~



Apk 컴파일과 디컴파일 방법 - Apk Manager 5.1


상단을 보시면 SystemUi.apk파일이 선택됐다는 표시가 나타나고 이제 디컴파일할 단계로 9번을 누르고 엔터.~


아래 이미지 참고

(간혹 9번을 눌러 디컴파일할 때 21에러가 뜨는 경우가 있는데 이때 framework-res.apk파일을 추출해두고 10번으로 디컴파일해서 추출해둔 framework-res.apk파일을 cmd화면에 드래그하고 framework-res.apk파일 풀 경로가 나오면 엔터치고 나오는 메시지가 보이면 Script.bat화면을 닫고 다시 실행해서 9번으로 디컴파일하면 정상적으로 됩니다.)



Apk 컴파일과 디컴파일 방법 - Apk Manager 5.1



Apk 컴파일과 디컴파일 방법 - Apk Manager 5.1



Apk 컴파일과 디컴파일 방법 - Apk Manager 5.1


디컴파일 완료.!



Apk 컴파일과 디컴파일 방법 - Apk Manager 5.1


디컴파일로 풀어진 파일은 projects 폴더에 저장됩니다.



Apk 컴파일과 디컴파일 방법 - Apk Manager 5.1


압축프로그램으로 그냥 압축 푸는 것과 디컴파일로 파일을 풀어주는 결과물의 차이입니다. ↓↓↓



Apk 컴파일과 디컴파일 방법 - Apk Manager 5.1


이미지가 작긴 하지만 왼쪽이 압축프로그램으로 그냥 풀어진 내용물이고 오른쪽이 Apk Maneger를 이용해 풀어진 내용물입니다. 약 4배나 많은 폴더가 숨어 있네요.


압축프로그램을 이용해 작업하는 방법이 나쁘진 않지만 어떤 파일을 수정하느냐에 따라 다르기 때문에 본인이 작업하기 편한 방법을 번갈아서 사용하면 편리하겠죠...


통상적으로 디컴파일로 더 보여지는 폴더/파일이 압축프로그램뷰어로 안 보이는 건 Apk Manager를 이용해서 resources.arsc파일만 덮어주고 압축프로그램뷰어로 보이는 이미지파일 같은 경우는 그냥 압축된 apk파일 상태에서 이미지파일을 바로 덮어씌우는 방법을 많이 사용하는 거 같네요.


이젠 디컴파일 후 수정한 파일을 다시 컴파일해야 합니다. 다시 Script.bat파일을 실행해서 apk파일을 선택하고 11번을 눌러서 컴파일합니다.



Apk 컴파일과 디컴파일 방법 - Apk Manager 5.1



Apk 컴파일과 디컴파일 방법 - Apk Manager 5.1


조금 기다리면 컴파일 검사를 할 거냐 묻는데 n을 눌러도 되고 y를러서 검사해도 되지만 대부분 에러가 있을 땐 저 메시지가 뜨기 전 컴파일할 수 없다고 뜨기 때문에 다른 오류메시지가 없다면 보통 n을 눌러 빨리 컴파일해버리는 경우가 많습니다. 하지만 컴파일하는 방법에 대해 조금이나마 자세히 설명하고자 간단한 컴파일 검사 스샷도 추가했습니다.



Apk 컴파일과 디컴파일 방법 - Apk Manager 5.1



Apk 컴파일과 디컴파일 방법 - Apk Manager 5.1


y를 두 번 눌러서 검사를 실행합니다.



Apk 컴파일과 디컴파일 방법 - Apk Manager 5.1


쭉~ 올라가다가 갑자기 멈춰서 아무 키나 누르라고 합니다. 눌러주면 또 뭔가 쭉~ 올라가면서 컴파일 끝.~

그리고 컴파일된 파일을 확인해야겠죠.~



Apk 컴파일과 디컴파일 방법 - Apk Manager 5.1


다시 place-apk-here-for-modding 폴더로 돌아가면 SystemUI.apk파일로 덮어진게 아니라 다른 파일 하나가 생긴걸 볼 수 있을 겁니다.



Apk 컴파일과 디컴파일 방법 - Apk Manager 5.1


여기서 unsignedSystemUI.apk파일에 있는 수정된 파일을 SystemUI.apk파일에 옮겨서 덮어주면 됩니다. 그리고 폰으로 옮겨서 뚝딱뚝딱하시면 되는 거죠.^^


디컴파일 후 apk파일 안에 있는 파일들을 수정하는 게 복잡하지 컴파일과 디컴파일하는 과정은 그리 어렵지 않습니다. 숫자 몇 개만 입력하면 되는 거죠.^^


Apk 컴파일과 디컴파일 방법 - Apk Manager 5.1