'APK unsign'에 해당되는 글 1건

  1. 2012.02.17 APK signature 해제/등록

출처 -  http://sailerya.tistory.com/entry/APK-signature-%ED%95%B4%EC%A0%9C%EB%93%B1%EB%A1%9D 

Apk를 가지고 테스트를 할 때 가장 문제가 되는 것이 install인 안되는 경우이다.

그중 제일 빈번하게 나타나는 현상이 signature 문제이다

 

해당 apk의 signature가 맞지 않는다며, 인스톨이 되더라도 실행이 안된다.

제 3자 테스트를 할경우 소스를 받기는 어렵고(주지도 않는다) 그걸 가지고 개발환경을 일일이 셋팅하여 빌드하기도 싫다.!!

 

그럼 이 문제를 어떻게 극복할 것인가~!!??

 

문제: signature를 풀어서 내 key를 넣고 싶어요~!!

 주의 : 분순한 목적으로 키를 해제하는것은 건강에 좋지 않을수 있습니다 ~!!! ^^;

  1. 자바의 bin 폴더를 path에 넣어준다.
  2. APK도 하나의 압축 형식이므로 jar xf your_apk_name.apk 를 명령어를 이용하여 풀어준다

     

  3. META-INF\CERT.* 파일을 지운다 (여기에 key 정보가 들어간다)

     

  4. 다시 apk로 패키징 한다

    jar cf your_apk_name2.apk .

    b.apk가 생겼다.

     

  5. 이제 unsigned apk를 얻었으니 여기에 key를 입히면 된다.

    Key는 자기가 생성한 키를 사용해도 되고 일반적으로 debugkey를 사용해도 된다.

    Debugkey는 %USERPROFILE%\.android\ 폴더에 있을것이다. 찾아보시고~~

     

     

     

    이제 키를 입혀보자

    명령어는 다음과 같다

     

    jarsigner -keystore c:\debug.keystore -storepass android -keypass android tempapk androiddebugkey

     

    jarsigner 명령어 연구는 한번 쳐보면 나오니 확인 하시고..

     

    최종적으로 Zipalign을 해주면 끝난다.

    Zipalign은 android tool이니 안드로이드 tool 폴더를 path에 넣어주어야 한다.

     

    그럼 마지막으로 zipalign 4 yourapk1 yourapk2 하면 끝

     

     

     

     

    이과정을 일일이 치기 귀찮으니 bat로 만들었으니 참고하면 되겠다.

     

     

@echo off

:start

if %1 =="" goto err

if %2 =="" goto err

 

:resign

 

jar xf %1

del META-INF\CERT.*

del/q %1

jar cf tempapk -t .

jarsigner -keystore c:\debug.keystore -storepass android -keypass android tempapk androiddebugkey

zipalign 4 tempapk %2

del/q tempapk

goto end

 

:err

echo need arguments [signed apk name] [resigned apk name]

 

:end

Posted by 라판