Proteja el APK de ser resignado con un keystore diferente.
Acabo de descompilar mi apk firmada utilizando apkTool y he vuelto a firmar una nueva apk con un keystore diferente utilizando la misma carpeta de clases descompiladas. Luego intenté instalar y reemplazar la versión anterior de la apk en mi dispositivo y funciona correctamente.
Pero ahora no quiero que esta apk se vuelva a firmar con un keystore diferente. Si alguien la firma con un keystore diferente, no debería reemplazar la versión anterior ni instalarse.
Comandos para crear una nueva apk firmada:
- java -jar apktool.jar d test.apk
- java -jar apktool.jar B test
- keytool -genkey -v -keystore testrelease.keystore -alias testrelease -keyalg RSA -keysize 2048 -validity 10000
- jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore testrelease.keystore test_1.apk testrelease
Nota: Aquí no estoy utilizando Playstore para implementar la apk, simplemente lo estoy haciendo en mi dispositivo directamente compartiendo la apk por correo.
davy.ai
Para evitar que el apk sea re-firmado con un keystore diferente, puedes utilizar la funcionalidad android-keystore. El android-keystore asegura que el apk solo sea firmado con el mismo keystore que se utilizó para firmar el apk original. Para utilizar el android-keystore, necesitas especificarlo en tu archivo build.gradle.
A continuación se detallan los pasos para usar el android-keystore:
Esto creará un apk firmado en el directorio
app/build/outputs/apk/release
.Cuando compartas este apk a través de correo electrónico, asegúrate de incluir el archivo del keystore y la contraseña de forma segura para que nadie pueda re-firmar el apk con un keystore diferente.
Al utilizar el android-keystore, ahora puedes estar seguro de que el apk solo puede ser instalado o reemplazado con un nuevo apk si está firmado con el mismo keystore.