Verificación de firma de aplicaciones: cómo funciona, cómo deshabilitarla con Xposed y por qué no debería hacerlo

Puede desactivar fácilmente la verificación de firma de aplicaciones de Android (APK) utilizando Xposed Framework, pero no debería hacerlo en la gran mayoría de los casos.

Si alguna vez intentó modificar y reinstalar una aplicación del sistema, probablemente encontró comprobaciones de firma de la aplicación de una forma u otra. O eliminó la aplicación original antes de continuar, o le dio a su APK modificado otro nombre de paquete para poder instalarlo sin eliminar primero la aplicación anterior. Y en cualquier caso, también tuvo que volver a firmar la aplicación para poder instalarla en primer lugar.

Puede evitar todos estos comportamientos desactivando temporalmente las comprobaciones de firmas de aplicaciones. Pero antes de entrar en la carne y las patatas metafóricas de este artículo y decirle cómo hacerlo, Es fundamental que hablemos un poco sobre las comprobaciones de firmas de aplicaciones, qué hacen y por qué debería nunca eliminarlos en la gran mayoría de los casos.

Conceptos básicos de verificación de firma de Android

De forma predeterminada, el sistema operativo Android requiere todo aplicaciones que deben firmarse para poder ser instaladas. En términos muy básicos, esto significa que la firma de la aplicación se utiliza para identificar al autor de una aplicación (es decir. verificar su legitimidad), así como establecer relaciones de confianza entre aplicaciones con una misma firma. Con el primero, tiene la seguridad (en un grado razonable) de que una aplicación con una firma válida proviene de los desarrolladores esperados. Y a través de este último, las aplicaciones firmadas con la misma clave privada podrán ejecutarse en el mismo proceso y compartir datos privados. Luego, cuando instala una actualización de la aplicación, el sistema operativo Android verifica esta firma para asegurarse de que: A) el APK no haya sido manipulado en el tiempo transcurrido desde que se firmó, y B) el certificado de la aplicación coincide con el del instalado actualmente versión.

Entonces, ¿cómo me afecta todo esto en el mundo real? Es muy sencillo, de verdad. Si obtiene un APK desde fuera de Google Play Store e intenta instalarlo como una actualización de su aplicación actualmente instalada (lea: mismo nombre de paquete), el sistema operativo intentará validar el certificado de la aplicación para asegurarse de que proviene del mismo nombre inicial. desarrolladores. Si el certificado coincide, la instalación de la aplicación se realizará según lo planeado, su aplicación conservará sus datos existentes y todo está listo. Si la firma no es válida (lo que indica que el APK ha sido manipulado) o si el certificado no coincide con el de la aplicación original, la instalación fallará. Y como se indicó anteriormente, el certificado de la aplicación solo coincidirá si está firmado con la misma clave privada utilizada para firmar la versión anterior. En otras palabras, sólo puedes instalar una aplicación si tiene una firma válida que coincida con la del APK. contenido, y solo puede instalar una actualización si su certificado también coincide con el que se encuentra en la versión anterior de la aplicación.

[Como comentario humorístico en este artículo, que de otro modo sería denso, hay un ejemplo muy público en el que se perdió o se vio comprometida la clave de firma de una aplicación privada. Por supuesto, me refiero a la aplicación Authenticator de Google, que recibió una actualización que cambió el nombre de su paquete de com.google.android.apps.authenticatorcom.google.android.apps.authenticator2 en una actualización hace unos dos años. Debido a este cambio, todas las actualizaciones posteriores de la aplicación Authenticator solo se pudieron emitir con el nuevo nombre del paquete, con la nueva firma generada por la nueva clave de firma privada.]

Por qué es posible que desee deshabilitar (temporalmente) la verificación de firma

Ahora, echemos un vistazo a un escenario potencial en el que es posible que deseemos desactivar temporalmente la verificación de firma de la aplicación. Como se mencionó al principio de este artículo, la verificación de firmas puede ser un dolor de cabeza al modificar aplicaciones existentes del sistema. Si instala una versión modificada de una aplicación del sistema, no podrá firmar la aplicación con un certificado válido y coincidente. En casos como este, normalmente querrás eliminar primero la aplicación existente y luego instalar la versión modificada como de costumbre. También puede desactivar la verificación de firma, pero es mejor (y más seguro) dejar habilitada la verificación de firma y simplemente eliminar la versión anterior para que se pueda instalar la nueva. Sin embargo, esto puede convertirse en un problema si la aplicación que estás intentando reemplazar tiene datos que preferirías no perder. Ciertamente, existen formas de conservar los datos manualmente mediante el acceso raíz y trasplantarlos a la nueva versión de la aplicación, pero es posible que los usuarios también deseen simplemente desactivar temporalmente la verificación de firma y luego reanudar las comprobaciones después. Alternativamente, como lo señaló el miembro senior de XDA mcbyte_es En los comentarios, esto también puede ser útil en el desarrollo de aplicaciones.

Cómo hacerlo

Hasta ahora, desactivar la verificación de firmas ha sido una solución horrible para prácticamente cualquier problema. Esto se debe a que, al hacerlo, básicamente desechas la protección integrada de Android que garantiza que sus aplicaciones no han sido manipuladas y que sus actualizaciones provienen del original desarrolladores. Pero ahora, gracias a la magia de Xposed Framework, puedes desactivar temporalmente la verificación de firma y volver a activarla una vez que hayas terminado de instalar la aplicación modificada. Uno de esos módulos Xposed que puede hacer precisamente esto fue publicado recientemente por un miembro senior de XDA pileroy funciona según lo previsto para todos los dispositivos capaces de ejecutar Xposed. De esta manera, cuando desee instalar una actualización de aplicación modificada que no haya sido firmada correctamente, simplemente puede habilite el módulo, reinicie, instale la actualización de la aplicación modificada, desactive el módulo, reinicie y disfrute forma.

Ahora que sabes cómo desactivar temporalmente la verificación de firmas, es importante reiterar lo importante que es es dejar habilitada la verificación de firma en todo momento, a menos que tengas una muy, muy buena razón para deshabilitarla él. Como tal, sólo debería utilizar dicha herramienta para aplicar actualizaciones de aplicaciones que usted mismo cree y cuando Hay circunstancias atenuantes que requieren que lo haga en lugar de simplemente desinstalar primero la aplicación anterior.

Esté seguro y utilice esto con prudencia.