Red de conocimiento informático - Material del sitio web - Cómo determinar si la firma Apk de una aplicación de Android es consistente

Cómo determinar si la firma Apk de una aplicación de Android es consistente

Cuando las aplicaciones de Android se lanzan en forma de apk, contienen métodos de cifrado de firma además de RSA y DSA. Por lo tanto, no puede simplemente extraer el META-INF/CERT.RSA común del apk. El archivo de firma específico en el apk es.

FILE="yourapp.apk"

cert_XSA=`jar tf $FILE | grep SA`

En este momento, el cert_XSA que obtenga puede ser META - INF/*.RSA o META-INF/*.DSA.

A continuación, extraiga el archivo de firma específico del apk.

jar xf $FILE $cert_XSA

En este momento, obtendrá el archivo cert_XSA en el directorio actual.

Luego, para el archivo de firma obtenido, extraiga el valor MD5 de la firma

keytool -printcert -file $cert_XSA | grep MD5 > "$FILE.certMD5"

En este momento, yourapp.certMD5 se guardará en el archivo de valores MD5 firmado en yourapp.apkk.

Finalmente, puedes usar diff

FILE1="yourapp1.apk"

FILE2="yourapp2.apk"

# . .

# ...Después de completar los pasos anteriores, obtendrá $FILE1.certMD5 y $FILE2.certMD5

# ...

certMD5_diff. =`diff $ FILE1.certMD5 $FILE2.certMD5`

if [ "$certMD5_diff" = "" ] entonces

echo "$FILE1.certMD5 == $FILE2.certMD5 "

fi

Si el resultado yourapp1.apk.certMD5 == yourapp2.apk.certMD5, entonces ambas aplicaciones tienen la misma firma.