Decompile을 하는 이유는 간단하다. 소스를 보기 위해서....
apk파일을 열어보면 xml은 깨져있고 java파일은 보이지도 않는다.
소스를 보기 위해서는 어떻게 해야할까?
알고있는 몇가지를 포스팅해본다.
- dex2jar
https://github.com/pxb1988/dex2jar
실행파일을 미러사이트에서 받으면 된다.
압축을 풀면 위와 같은 파일들을 볼 수 있다.
다음으로 apk에서 classes.dex파일을 추출하여 위 폴더에다 넣는다.
해당 폴더의 경로에서 d2j-dex2jar.bat classes.dex 를 입력하면 dex파일을 jar파일로 변환시켜준다.
변환된 jar파일의 압축을 풀면 java파일을 볼수가 있다.
- smali2java
dex2jar에 GUI까지 더해진 것이라 생각하면 된다.
단지 apk파일을 오픈하는 것만으로 java파일을 볼 수 있다.
- apk tool
http://ibotpeaches.github.io/Apktool/
파일을 다운받고 압축을 푼뒤 apk도 같은 폴더에 이동시킨다.
해당 위치에서 java -jar apktool.jar d [파일명].apk 를 입력하면 된다.
apk tool은 java파일을 볼 수가 없다.
apk tool은 xml등 리소스를 보기 위함이다.
해당 레이아웃을 어떻게 조정했는지 어떤 애니메이션을 사용했는지를 참고하는데 유용할 것이다.
이 외에도 decompile 툴이 존재하지만 대략적으로 많이 사용하는 방법을 올려보았다.
요즘은 proguard 등 코드 난독화 및 압축을 하기 때문에 소스 보기가 쉽지는 않다.
'안드로이드' 카테고리의 다른 글
SHA-1 인증서 지문구하기 - The way getting the SHA1 (6) | 2016.02.21 |
---|---|
내 주변의 와이파이 목록 가져오기 (20) | 2016.02.21 |
Resource 배열처리 (6) | 2016.02.09 |
안드로이드 비디오 재생하기 (6) | 2016.02.06 |
이미지 선택시 번호 표시하기 (8) | 2016.02.02 |
댓글