2011-08-18 16 views
144

¿Cómo puedo verificar que una apk de Android esté firmada con un lanzamiento y sin un certificado de depuración?¿Cómo verifico que una aplicación de Android está firmada con un certificado de versión?

+5

me escribió [una secuencia de comandos] (https://raw.githubusercontent.com/johnnylambada/robospanner/master/apk/apk-validate) que validará un APK contra un almacén de claves . – JohnnyLambada

+0

acepta la respuesta si tienes la tuya. –

+0

@JohnnyLambada ¿Cómo puedo ejecutar su script en Mac? –

Respuesta

248

Use este comando, (ir a Java JDK < < ruta papelera en cmd)

$ jarsigner -verify -verbose -certs my_application.apk 

Si ve "CN = Android depuración", esto significa que se firmó el apk con la clave de depuración generada con el SDK de Android (significa que no tiene firma), de lo contrario, encontrará algo para CN. Para más detalles ver: http://developer.android.com/guide/publishing/app-signing.html

+0

Recibí el mensaje como jar verificado al final de la ejecución del comando para 2 archivos apk diff. Lo confundí. pero como da CN = "depuración de android" para 1 apk y diferente para otro apk. para saber qué 1 está firmado. Gracias. – iRunner

+0

@iRunner TODAS las aplicaciones deben estar firmadas antes de instalarlas en un dispositivo, utilizando la clave de depuración o la clave real. – Chloe

+2

¿Cómo verifica esto la firma? ¿Utilizará las CA de confianza del sistema? ¿O esta es solo una herramienta para verificar la integridad de los archivos jar? Gracias –

52

Use este comando: (Jarsigner está en la carpeta bin de Java Goto java-> jdk-> bin ruta en cmd)

$ jarsigner -verify my_signed.apk 

Si el apk está firmado correctamente , impresiones jarsigner "tarro verificada"

+9

Esto no es lo suficientemente bueno, ya que tanto los archivos de depuración como los de lanzamiento están firmados, se dará "jar verificado". Verifique los detalles de la respuesta de @ Anass. – rpattabi

27

uso de comandos de la consola:

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

Yo podrías encontrar apksigner en ../sdk/build-tools/24.0.3/apksigner.bat. Solo para herramientas de compilación v. 24.0.3 y posteriores.

Lea también Google Docs: https://developer.android.com/studio/command-line/apksigner.html

+0

Encontré 'apksigner' en'% LOCALAPPDATA% \ Android \ sdk \ build-tools \ 25.0.3 \ '(y todas las demás herramientas de compilación versión que tenía instalada) – Jon

+0

información de cómo encontrarlo: http://stackoverflow.com/q/40004884/1747983 – Tilo

+2

Tenga en cuenta que 'apksigner' falta en la versión' 26.0.0' de build-tools. Se rastrea en https://issuetracker.google.com/issues/62696222 y se supone que se solucionará en la próxima versión. La solución hasta entonces es usar 'apksigner' de' 25.0.3'. – friederbluemle

Cuestiones relacionadas