2011-08-18 4 views
144

안드로이드 apk가 릴리스로 서명되어 있고 디버그 인증서가 아닌지 어떻게 확인할 수 있습니까?Android apk가 출시 인증서로 서명되었는지 어떻게 확인합니까?

+5

가 내가 쓴 [스크립트] (https://raw.githubusercontent.com/johnnylambada/robospanner/master/apk/apk-validate) 키 스토어를 상대로 APK를 확인할 것 . – JohnnyLambada

+0

답장을 수락하십시오. –

+0

@JohnnyLambada 어떻게 Mac에서 스크립트를 실행할 수 있습니까? –

답변

248

이 명령을 사용,

$ jarsigner -verify -verbose -certs my_application.apk 

은 "CN = 안드로이드 디버그"를 참조하는 경우 (자바에 cmd를 프롬프트에서 < JDK < 빈 경로를 이동), 이것은 .apk 파일이 생성 된 디버그 키로 서명되었음을 의미 안드로이드 SDK 에 의해 (서명되지 않았 음을 의미), 그렇지 않으면 CN을 찾을 수 있습니다. 자세한 내용은 은 다음을 참조하십시오 http://developer.android.com/guide/publishing/app-signing.html

+0

두 diff apk 파일에 대한 명령 실행 끝에 jar가 확인 된 메시지가 있습니다. 혼란 스러웠습니다. 하지만 그것은 CN = "안드로이드 디버그"를 1 apk에주고 다른 것은 다른 apk에 대해 kngot에 1이 서명되어 있습니다. 감사합니다. – iRunner

+0

@iRunner 디버그 키 또는 실제 키를 사용하여 장치에 설치하기 전에 모든 앱에 서명해야합니다. – Chloe

+2

서명이 어떻게 검증됩니까? 시스템의 신뢰할 수있는 CA를 사용합니까? 또는 jar 파일의 무결성을 검사하는 도구 일뿐입니다. 고맙습니다. –

52

이 명령을 다음의 .apk가 제대로 서명 된 경우

$ jarsigner -verify my_signed.apk 

(Jarsigner를 cmd를 프롬프트에서 고토 자바 -> jdk-> 빈 경로는 자바 빈 폴더에 있습니다) , Jarsigner를 인쇄

+9

디버그와 릴리스 apk 모두 서명이되어 "jar verified"를 제공하기 때문에 충분하지 않습니다. @ Anass의 답변에 대한 자세한 내용을 확인하십시오. – rpattabi

27

를 사용하여 콘솔 명령을 "항아리 확인"

apksigner verify --print-certs application-development-release.apk

요 u ../sdk/build-tools/24.0.3/apksigner.bat에서 apksigner를 찾을 수 있습니다. 빌드 도구 v. 24.0.3 이상에만 해당됩니다.

또한 구글의 문서를 읽어 https://developer.android.com/studio/command-line/apksigner.html

+0

'% LOCALAPPDATA % \ Android \ sdk \ build-tools \ 25.0.3 \'(및 내가 설치 한 모든 다른 빌드 도구 버전)에서'apksigner'를 찾았습니다 – Jon

+0

정보 찾는 방법 : http://stackoverflow.com/q/40004884/1747983 – Tilo

+2

빌드 도구의 '26.0.0'버전에는 'apksigner'가 없습니다. https://issuetracker.google.com/issues/62696222에서 추적되며 다음 버전에서 수정 될 예정입니다. 그 때까지는'25.0.3 '에서'apksigner'를 사용하십시오. – friederbluemle

관련 문제