본문 바로가기

개발 이야기/Android

안드로이드 마켓(Android Market) 해킹 - AppManager+AVD을 통한 apk 파일 추출

[정정] 확인 결과 Protected된 파일은 appmanager에서도 backup이 불가능하네요...(아래그림참조)
   Rooting을 해야 가능할 것으로 보이며, 현재 Rooting은 Cupcake에서만 가능한 것 같습니다.
   Rooting  관련 자료...
   http://android-dls.com/wiki/index.php?title=Rooting_Android
  http://theunlockr.com/2009/10/15/how-to-root-a-donut-phone-android-1-6/
   참고로 버전업이 되면서 루팅을 계속 막고 있는 중.....
   현재는 1.5에서만 가능한 것으로 보이네요...

[정정] Rooting과 apk 파일 추출은 전혀 상관이 없네요.....
         [안드로이드 마켓] 보호된 어플(Protected App)의 apk 추출하기 참고....



-----------------------------------------------------------------
아이폰(iPhone)/아이팟터치(iPod Touch)는 JailBreak를 하면 수많은 유료 어플들을 손쉽게 구해서 사용할 수 있다.

안드로이드 단말은 어떨까?

안드로이드 단말은 애플처럼 앱설치에 대하여 폐쇄적인 정책을 펼치고 있지 않기 때문에
설치 파일인 apk 파일만 구하면 손쉽게 설치가 가능하다.
(단, 외부에서 구한 apk을 설치하려면 setting>applications>unknown sources 에 체크를 해 놓아야 가능하다.)

대신 안드로이드에서의 앱 보호 정책은 Linux가 가지고 있는 유저 권한을 통해 해당 파일의 접근을 막는 방식...
즉, 설치된 앱 파일(apk파일)에 대한 접근을 막으므로써 안드로이드 마켓에서 구매한 앱을 복사하지 못하도록
막고 있다.
여기서 생각해 볼 부분은 아이폰/아이팟터치와 같이 본인의 단말을 Jailbreak 하지 않아도
앱들을  설치할 수 있게 된다는 이야기가 되고, 훨씬 쉽게 앱들이 불법유통될 수 있다는 이야기이다.

개발자들에게는 이부분은 사실 슬픈 이야기이고, 구글이 과연 안드로이드 마켓을 비즈니스의 장으로 보는지
아니면 단순히 안드로이드 플랫폼을 넓히기 위한 용도로 생각하는지를 생각하게 하는 대목이다.

어찌되었든......현실은 현실......
이미 유료 안드로이드 마켓의 어플들이 torrent 등을 통해 돌고 있지만,
직접 추출하는 방법을 아는 것도 나쁘지 않을 듯... 
우선 안드로이드 마켓의 앱 파일(apk 파일)을 추출하는 방법을 정리해 본다.


1) AppManager 설치하기
  [정정] AppManager를 사용하지 않고 Eclipse에서 간단하게 /data/app 디렉토리에서 apk를 가져올 수 있습니다.
   AppManager는 Eclipse 없이 apk를 추출할 때 쓰면 됩니다.
   안드로이드 마켓에서 'AppManager'라는 어플을 구해서 설치하면 앱파일을 SD로 손쉽게 백업/설치할 수 있다.
  (이런 어플이 안드로이드 마켓에서 버젓이 유통되다나, 구글의 정책이 의심스러운 대목이다...^^")
   백업을 누르면 설치된 모든 어플들을 SD로 백업할 수 있으며, Install을 누르면 반대로 SD에 있는 어플들을
   단말에 설치할 수 있다.
   단, 보호받는 파일들(protected file)은 기본적으로 복사가 이루어지지 않는다.
   (파일 사이즈가 0 로 복사됨)

 

2) 안드로이드 마켓이 설치된 AVD 생성
   우선 일반 단말에서는 Rooting을 통해 SU(Super User) 권한을 얻은 후 AppManager의 백업을 실행하면
   모든 어플의 apk을 SD로 옮길 수 있다.
    단말 루팅 하기
 
   하지만 구지 루팅을 하지 않고 심지어는 안드로이드 단말 없이도 가능한데
   바로 안드로이드 마켓이 포함된 AVD(Android Virtual Device)을 이용하는 방법이다.
  
   이를 위해서는 Eclipse 설치, Android SDK 설치의 복잡한 과정이 필요하지만, 그렇게 어렵지는 않다.
   Android SDK 설치 후 AVD를 생성하는데 이 때 SD카드를 잡아주어야 AppManager에서 백업이 가능하다.(참고)
   그런 다음 AVD에서 안드로이드 마켓에 접속하여 다운받은 모든 어플은 AppManager를 통해 백업할 수 있게 된다.
  


3) AVD의 apk 파일을 PC로 복사하기
  AVD 내 SDCard의 접근은 여러가지 방법이 있고 유틸리티도 있지만,
  개발자라면 Eclipse 내에 있는 DDMS Perspective의 File Explorer를 이용하여 쉽게 PC로 옮길 수 있다.
  왼쪽  Device에서 Emulator 선택하고 File Explorer에서 sdcard\appmanager 폴더 선택 후 우측 상단의
  디스크 모양 아이콘을 눌러서 PC로 파일을 옮기면 apk 파일 추출 끝.......