재서명

반응형




사전환경셋팅이 되어있어야 한다.

java 와 Android sdk가 설치되어 있어야 하고 환경변수도 설정되어 있어야한다.



http://recorder.robotium.com/downloads/re-sign.jar



re-sign.jar



위 링크에서 re-sign.jar 파일을 받아서 실행한다.


그럼 아래와 같은 창이 뜨고 여기다 재서명할 apk를 끌어다 놓으면 된다.






이런 창이 뜬다면 zipalign 파일이 없다는 것이므로 해당파일을 ~~sdk/tools 폴더에 붙여넣어준다.




zipalign 파일은 sdk 가 설치된 폴더에 보면 build-tools 라는 폴더가 있는데 

들어가서 아무 폴더에서 쉽게 찾아볼 수 있다.



zipalign.exe



재서명이 끝나면 아마 apk 명 끝에 -debug라고 붙은 apk가 생성되었을 것이다.

(또는 직접 정해준 파일명으로)


이 apk 를 사용하면 끝이다.


이렇게 간단한 방법이 있었다니..






반응형
반응형




이 방법을 시도해보기 전에 더 간단한 방법이 있으므로 시도해보길 추천함

안드로이드 apk 쉽게 재서명 resign 하기

http://yonoo88.tistory.com/808




이미 릴리즈 된 안드로이드 apk 를 내 개인 서명키로 바꾸는 방법

여기서는 이미 있는 debug.keystore 파일을 이용하여 해보았다.


우선 재서명할 apk를 준비한다.


압축프로그램이 있다면 우클릭을 하고 압축을 푼다. (ex. astro apk)





압축을 풀고 나서 해당 폴더에 들어가면 파일이 많이 있는데 여기서 



META-INF 폴더를 삭제한다. 이 폴더에 서명관련한 파일들이 있기 때문이다.



삭제한 다음 다시 이 폴더를 압축하는데 꼭 폴더 내부로 들어가서 모든파일 선택 후 압축을 해야한다.!





그럼 압축파일이 생기는데 보기 편한 곳으로 이동시켜놓고




확장자를 ,apk로 바꿔준다.



그럼 위처럼 apk 로 변경된다 (기존 apk와 이름이 같아 resign으로 변경해주었다)


혹시 뒤에 확장자가 안보이면 폴더옵션에서

알려진 파일 형식의 파일 확장명 숨기기를 체크 해제 해준다.







그럼 cmd 창을 연다.


해당 폴더가 있는 경로로 진입한다. 여기서는 d:\astro 이다


그리고 서명할 키가 있어야 하는데 여기서는 debug.keystore를 이용하겠다.


이 키스토어는 C:\Users\Administrator\.android 폴더에 위치하고 있다.





그럼 이제 서명을 해줘야 하는데 명령어는 다음과 같다.


출처

http://developer.android.com/tools/publishing/app-signing.html


$ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1
-keystore my-release-key.keystore my_application.apk alias_name


jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore [키스토어경로] [서명할apk경로] [키스토어별명]


여기서 jarsigner 경로가 환경변수에 등록되어 있어야한다.


하지만 자바를 처음 설치할 때 


%JAVA_HOME%\jdk\bin


이런 식으로 환경변수를 등록해주므로 아마 이미 되었을 것이다.


기본 경로는 다음과 같다(64비트)


C:\Program Files\Java\jdk1.8.0_05\bin




이렇게 해주면 된다.


기본적으로 debug.keystore 는 다음과 같은 정보를 가지고 있다


  • 키스토어 이름 : "debug.keystore"
  • 키스토어 비밀번호 : "android"
  • 키 별명 : "androiddebugkey"
  • 키 비밀번호 : "android"
  • CN: "CN=Android Debug,0=Android,C=US"

  • 키스토어 별명은 확인은


    keytool -list -v -keystore [키스토어경로] 


    로 확인할 수 있다.






    그럼 다음과 같이 입력 후 


    jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore c:\.android\debug.keystore com.metago.resign.apk androiddebugkey


    실행하면 암호를 치라고 나오는데 android 라고 써준다.




    그럼 뭐가 좌르륵 나오면서 끝에 jar signed 라고 뜰 것이다.



    이제 서명은 되었고 apk를 다시 재정렬?시켜줘야 한다.


    그러기 위해서는 


    zipalign -v 4 your_project_name-unaligned.apk your_project_name.apk

    zipalign -v 4 [서명한apk] [apk 새이름]


    위 명령어를 실행해 줘야 하는데 zipalign 경로가 환경변수 Path에 추가 되어 있어야 한다.



    Path 변수 값 예시C:\ProgramData\Oracle\Java\javapath;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;%JAVA_HOME%\bin;D:\backup\eclipse\adt-bundle-windows-x86_64-20140702\sdk\platform-tools;%ANDROID_HOME%\tools;%ANDROID_HOME%\build-tools\android-4.4W 



    zipalign 은 sdk 폴더에 buiild-tools 에서 안드로이드 아무 버전이나 폴더에 들어가면 있다.


    ex ) C:\adt-bundle-windows-x86_64-20140702\sdk\build-tools\android-4.4W




    그래서 


    zipalign -v 4 com.metago.astro.resign.apk astro.apk



    라고 실행해주면


    아까보다 더 많은 좌르륵이 나오면서 


    Verification succesful 





    이라고 뜰 것이다.



    해당 폴더에 가보면 apk 가 생성되어 있을 것이다.





    확인을 해보고 싶다면

    jarsigner -verify my_application.apk //간단히 서명확인할 때

    jarsigner -verify -verbose -certs my_application.apk //서명 외 다른 정보도 자세히 확인할 때


    다음과 같이 실행해준다.


    원본 apk 파일인 com.metago.astro.apk 의 서명 정보 확인


    jarsigner -verify -verbose -certs com.metago.astro.apk





    debug.keystore 로 재서명한 astro.apk


    jarsigner -verify -verbose -certs astro.apk




    재서명한 astro.apk를 보면 Android Debug로 바뀐게 보인다.


    그럼 재서명 완료!!



    반응형

    + Recent posts