안드로이드 APK 분석 참고 문서

2023. 1. 4. 19:14모바일프로그래밍/안드로이드

728x90

안드로이드를 개발 할 때 참고 하면 좋을 문서 네요~

안드로이드를 개발 할 때, 저의 경우에는 보통 이렇게 합니다.

  • 안드로이드 환경을 설정 해 준다.
  • 안드로이드 개발을 위한 통합 개발 환경을 설치 한다. (이클립스 혹은 안드로이드 스튜디오)
  • 개발 환경에 필요한 설정을 한다.
  • 안드로이드 앱을 개발한다.
  • 개발 된 앱을 기기에서 로컬 테스트 한다.
  • 테스트 된 앱을 배포 한다.
  • 사용자 요구 사항을 받아서 계속 유지보수 해 준다.

 

근데, 이렇게 쳇바퀴 돌 듯이 소스를 수정해서 배포 하다가 보면 기기 별로 버전 별로 영향도를 파악하기 힘들 때가 많습니다.

쉽게 말해서, 배포 된 소스 코드가 제대로 된 버전인가? 라는 의심이 들 때가 반드시~! 생기게 되죠

그러면 이런 생각을 해 볼 수 있죠

실제 배포 된 버전이 제대로 된 버전인가를 말이죠.

 

배포 된 버전을 소위 '까' 서 보면

  • 환경설정을 제대로 맞는 지
  • 리소스들은 제대로 들어가 있는 지
  • 환경설정을 위한 파일들에 환경 설정을 제대로 했는지

 

등등을 알 수 있을 것입니다. 물론 더 한 것도 알 수 있을 테죠

위의 문서는 기존에 배포 되어 있는 앱을 기기에서 뽑아내는 것을 소개 한 글인데요.

개발자가 알 기 쉽게 설명이 되어 있는 것 같고,

따라서 해보면 많은 도움이 될 듯 하네요~

 

해당 사이트에서 명령어만 따로 모아서 아래에 남겨 놓습니다.

adb shell pm list packages -f -3
adb pull /data/app/com.instagram.android-1/base.apk ./
aapt list ./base.apk
aapt dump badging ./base.apk
=========
#!/bin/bash
unzip -d zip-out "$1"
java -jar AXMLPrinter2.jar zip-out/AndroidManifest.xml > AndroidManifest.xml
/opt/dex2jar-0.0.9.15/d2j-dex2jar.sh “$1" # creates “${1%.apk}-dex2jar.jar”
mkdir cfr-extracted && /opt/cfr/cfr.sh “${1%.apk}-dex2jar.jar” --outputdir java-out
java -jar /opt/smali/baksmali-2.0.6.jar -o smali-out zip-out/classes.dex
===========
java -jar ./apktool.jar d ./base.apk
apktool d -d -o base base.apk
keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore my_application.apk alias_name
 

Classyshark

 

이상.

 

 

728x90