2011-08-18 5 views
144

Jak mogę sprawdzić, czy apk Androida jest podpisany za pomocą wydania, a nie debugować certyfikatu?Jak sprawdzić, czy apk Androida jest podpisany za pomocą certyfikatu wersji?

+5

pisałem [skrypt] (https://raw.githubusercontent.com/johnnylambada/robospanner/master/apk/apk-validate), który będzie sprawdzić poprawność apk przeciwko kluczy . – JohnnyLambada

+0

zaakceptuj odpowiedź, jeśli masz swoją. –

+0

@JohnnyLambada Jak mogę uruchomić twój skrypt na Macu? –

Odpowiedz

248

Użyj tego polecenia (przejdź do java jdk < < ścieżkę bin cmd prompt)

$ jarsigner -verify -verbose -certs my_application.apk 

Jeśli widzisz "CN = Android Debug", oznacza to, że apk została podpisana z kluczem wygenerowanym debugowania przez Androida SDK (oznacza, że ​​jest bez podpisu), w przeciwnym razie znajdziesz coś dla CN. Aby uzyskać więcej informacji zobacz: http://developer.android.com/guide/publishing/app-signing.html

+0

Dostałem wiadomość jako jar zweryfikowane na końcu wykonywania polecenia dla 2 plików apk apk.so się mylić. ale ponieważ daje CN = "android debug" dla 1 apka i inne dla innych apk .got na knw, który 1 jest podpisany. Dzięki. – iRunner

+0

@iRunner WSZYSTKIE aplikacje muszą być podpisane przed instalacją na urządzeniu, używając klucza debugowania lub klucza rzeczywistego. – Chloe

+2

Jak to weryfikuje podpis? Czy użyje zaufanych ośrodków systemu? Lub jest to tylko narzędzie do sprawdzania integralności plików jar? Dziękuję –

52

Użyj tego polecenia: (Jarsigner jest w folderze bin Java goto java-> jdk-> ścieżka bin w cmd prompt)

$ jarsigner -verify my_signed.apk 

Jeśli apk jest prawidłowo podpisany wydruki Jarsigner "jar zweryfikować"

+9

Nie jest to wystarczająco dobre, ponieważ zarówno aprobaty debugowania, jak i wydania są podpisane, dają "weryfikację jar". Sprawdź szczegóły odpowiedzi @ Anass. – rpattabi

27

użyć polecenia konsoli:

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

Yo możesz znaleźć apksigner w ../sdk/build-tools/24.0.3/apksigner.bat. Tylko dla narzędzi kompilacji v. 24.0.3 i wyższych.

przeczytać również Dokumenty Google: https://developer.android.com/studio/command-line/apksigner.html

+0

Znalazłem 'apksigner' w'% LOCALAPPDATA% \ Android \ sdk \ build-tools \ 25.0.3 \ '(i każdej innej zainstalowanej wersji narzędzia, którą zainstalowałem) – Jon

+0

info jak to znaleźć: http://stackoverflow.com/q/40004884/1747983 – Tilo

+2

Zauważ, że 'apksigner' brakuje w wersji' 26.0.0' na-build-tools. Jest śledzone na https://issuetracker.google.com/issues/62696222 i powinno zostać naprawione w następnej wersji. Obejściem do tego czasu jest użycie 'apksigner' z' 25.0.3'. – friederbluemle

Powiązane problemy