Verificação de assinatura de aplicativo: como funciona, como desativá-lo com Xposed e por que você não deveria

click fraud protection

Você pode desativar facilmente a verificação de assinatura de aplicativos Android (APK) usando o Xposed Framework, mas não deve fazer isso na grande maioria dos casos.

Se você já tentou modificar e reinstalar um aplicativo do sistema, provavelmente encontrou verificações de assinatura de aplicativos de uma forma ou de outra. Você removeu o aplicativo original antes de continuar ou deu ao APK modificado outro nome de pacote para instalá-lo sem primeiro remover o aplicativo antigo. E em ambos os casos, você também teve que assinar novamente o aplicativo para instalá-lo.

Você pode contornar todos esses comportamentos desativando temporariamente as verificações de assinatura de aplicativos. Mas antes de entrarmos na essência metafórica deste artigo e dizermos como fazer isso, é fundamental que falemos um pouco sobre verificações de assinatura de aplicativos, o que elas fazem e por que você deve nunca removê-los na grande maioria dos casos.

Noções básicas de verificação de assinatura do Android

Por padrão, o sistema operacional Android requer todos aplicativos a serem assinados para serem instalados. Em termos muito básicos, isto significa que a assinatura do aplicativo é usada para identificar o autor de um aplicativo (ou seja verificar sua legitimidade), bem como estabelecer relações de confiança entre aplicações com a mesma assinatura. Com o primeiro, você tem a garantia (até um grau razoável) de que um aplicativo com uma assinatura válida vem dos desenvolvedores esperados. E através deste último, aplicações assinadas com a mesma chave privada podem ser executadas no mesmo processo e compartilhar dados privados. Então, quando você instala uma atualização de aplicativo, o sistema operacional Android verifica essa assinatura para garantir que: A) o APK não foi adulterado desde que foi assinado e B) o certificado do aplicativo corresponde ao do certificado atualmente instalado versão.

Então, como tudo isso me afeta no mundo real? É simples, realmente. Se você obtiver um APK fora da Google Play Store e tentar instalá-lo como uma atualização do aplicativo atualmente instalado (leia: mesmo nome de pacote), o sistema operacional tentará validar o certificado do aplicativo para garantir que ele veio do mesmo certificado inicial desenvolvedores. Se o certificado corresponder, a instalação do aplicativo prosseguirá conforme planejado, seu aplicativo manterá os dados existentes e tudo estará pronto. Se a assinatura não for válida (indicando que o APK foi adulterado) ou se o certificado não corresponder ao do aplicativo original, a instalação falhará. E conforme mencionado anteriormente, o certificado do aplicativo só corresponderá se for assinado com a mesma chave privada usada para assinar a versão anterior. Em outras palavras, você só pode instalar um aplicativo se ele tiver uma assinatura válida que corresponda à do APK. conteúdo, e você só poderá instalar uma atualização se seu certificado também corresponder ao encontrado na versão anterior do aplicativo.

[Como um aparte humorístico neste artigo denso, há um exemplo muito público em que uma chave de assinatura de aplicativo privado foi perdida ou comprometida. É claro que estou me referindo ao próprio aplicativo Authenticator do Google, que recebeu uma atualização que alterou o nome do pacote de com.google.android.apps.authenticator para com.google.android.apps.authenticator2 em uma atualização há cerca de dois anos. Devido a essa alteração, todas as atualizações subsequentes do aplicativo Authenticator só poderão ser emitidas sob o novo nome do pacote – com a nova assinatura gerada pela nova chave de assinatura privada.]

Por que você pode desejar desativar (temporariamente) a verificação de assinatura

Agora, vamos dar uma olhada em um cenário potencial em que desejamos desabilitar temporariamente a verificação de assinatura do aplicativo. Conforme mencionado no início deste artigo, a verificação de assinatura pode ser uma dor de cabeça ao modificar aplicativos de sistema existentes. Se você instalar uma versão modificada de um aplicativo do sistema, não será possível assinar o aplicativo com um certificado válido e correspondente. Em casos como esse, normalmente você desejaria remover primeiro o aplicativo existente e depois instalar a versão modificada normalmente. Você também pode desabilitar a verificação de assinatura, mas é melhor (e mais seguro) deixar a verificação de assinatura habilitada e simplesmente remover a versão antiga para que a nova possa ser instalada. Isso, no entanto, pode se tornar um problema se o aplicativo que você está tentando substituir contiver dados que você prefere não perder. Certamente existem maneiras de preservar os dados manualmente usando acesso root e transplantá-los para a nova versão do o aplicativo, mas os usuários também podem simplesmente desativar temporariamente a verificação de assinatura e depois retomar as verificações após. Alternativamente, conforme apontado pelo membro sênior do XDA mcbyte_it nos comentários, isso também pode ser útil no desenvolvimento de aplicativos.

Como fazer isso

Até agora, desabilitar a verificação de assinatura tem sido uma solução horrível para praticamente qualquer problema. Isso ocorre porque, ao fazer isso, você basicamente joga fora a proteção integrada do Android que garante que seus aplicativos não foram adulterados e que suas atualizações vêm do original desenvolvedores. Mas agora, graças à magia do Xposed Framework, você pode desativar temporariamente a verificação de assinatura e reativá-la quando terminar de instalar o aplicativo modificado. Um desses módulos Xposed que pode fazer exatamente isso foi lançado recentemente pelo XDA Senior Member Pyler, e funciona conforme planejado para todos os dispositivos capazes de executar o Xposed. Desta forma, quando desejar instalar uma atualização de aplicativo modificada que não tenha sido devidamente assinada, você pode simplesmente habilite o módulo, reinicie, instale a atualização do aplicativo modificado, desabilite o módulo, reinicie e fique feliz caminho.

Agora que você sabe como desabilitar temporariamente a verificação de assinatura, é importante reiterar a importância é deixar a verificação de assinatura ativada o tempo todo, a menos que você tenha um motivo muito, muito bom para desativar isto. Como tal, você só deve realmente usar essa ferramenta para aplicar atualizações de aplicativos que você mesmo cria e quando existem circunstâncias atenuantes que exigem que você faça isso, em vez de simplesmente desinstalar o aplicativo antigo primeiro.

Esteja seguro e use isso criteriosamente.