Como descompilar (decompile) e modificar um APK para Android

image_pdfimage_print

Nesse artigo, iremos indicar o uso do APKTool como forma de alterar uma apk existente para Android.

APKTool permite converter arquivos APK para um código fonte, o que lhe permite decodificar o programa e, em seguida, recompilar o arquivo de modo que você possa alterar seu funcionamento.

Neste tipo de programas de descompilação, em geral o código fonte é bem mais confuso que o original, visto que todos os comentários existentes no código original são removidos. Assim como os nomes das variáveis perdem a intuitividade, pois são modificados para nomes sem sentido, porém curtos, quando algumas partes do códigos também podem ser modificados por otimização pelo compilador original, fazendo-as bem diferente da original algumas vezes.

É extremamente difícil para se indicar o quão importante esta ferramenta é para a comunidade Android, mas uma lista de alguns dos seus casos de uso mais populares deve dar-lhe uma grande ideia do motivo pelo qual a ferramenta é tão importante:

  1. APKTool é usado para portar aplicações para dispositivos anteriormente não suportados pelo fabricante.
  2. Efetuar algumas alterações de estilo / layout.
  3. Fornecer traduções para aplicativos.
  4. Poder verificar versões não estáveis de um app em busca de novas funcionalidades.
  5. Atualizar versões de aplicativos cujo atualizações oficiais acabaram ou não são mais feitas.
  6. Por outro lado, ele também pode ser usado para esconder e distribuir malware ou o inverso, usado para testes de penetração de aplicativos Android.
  7. Diversos outros usos. Seria quase ilimitado o que poderíamos descrever aqui

APKTool está disponível em distribuições Linux / GNU e sistemas operacionais Microsoft Windows desde o lançamento inicial, mas o suporte Android para a ferramenta está finalizado há algum tempo. A atualização para a versão oficial Android da ferramenta cessou em 2013.

No entanto, um desenvolvedor de nome Andro Black, de forma independente vem lançando novas atualizadas para a plataforma Android, para que se possa descompilar e modificar arquivos APK em qualquer dispositivo Android também.

APKTool for Android

Assim como é feito nos aplicativos para desktop, o APKTool para Android efetua a engenharia reversa de arquivos APK.

Pode-se descompilar e recompilar aplicações em seu telefone Android, por exemplo, o que pode ser útil se você deseja modificar rapidamente os recursos de uma APK sem ter que ir até um computador.

Isso pode ser especialmente útil para criadores de temas que podem encontrar-se constantemente editando um arquivo APK e enviando-o para o seu dispositivo para testes em tempo real.

Importante: este app não pode ser usado para realmente editar o arquivo descompilado. É necessário um editor de texto no seu dispositivo.

Abaixo o menu do programa:

No menu settings, é permitido além de trocar o tema do aplicativo, identificar o AAPT e versão do APKTool desejados quando descompilar o arquivo de APK.

Há um checkbox chamado “root” nessas configurações, que sem estar checado, não permitirá compilar o aplicativo corretamente. E até a versão atual, ele não vem selecionado por padrão.

Para fazer uso do aplicativo, há dois menus. Um apresentado com um curto tap e o outro é apresentado com um pressionar longo.

O menu de toque simple, como mostrado abaixo, exibe as funções que você pode usar para trabalhar com um arquivo APK, sendo os principais Decompile All e Sign.

Há uma série de outras funções, mas estas não devem ser desconhecidas para você, desde que você certo conhecimento de programação ou tenha experiência anterior com APKTool.

Depois de descompilar um APK, você pode navegar seu conteúdo simplesmente tocando na pasta com o nome do APK para exibir seu conteúdo, assim como normalmente já o faz com aplicativos de gerenciamento de arquivos e diretórios.

Tocar em um arquivo carregará o comportamento padrão do Android e perguntará qual aplicativo deseja abrir o arquivo, que neste momento você usaria o editor de texto ou de imagem escolhido se você estiver tentando modificar um recurso.

Uma vez que você terminou de mexer com o APK você pode instalar sua versão modificada de dentro do aplicativo APKTool também. O menu de pressionar longo permite que você exclua / renomeie arquivos e diretórios, mas também é um menu de contexto, então quando se pressiona longamente uma pasta, ter-se-á a opção de compilar todos os recursos em um arquivo APK novamente.

 

 

A ferramenta é útil para mudanças rápidas em um aplicativo existente, sendo capaz de descompilar um aplicativo existente, alterar o arquivo strings.xml e recompilar o aplicativo novamente para exibir as alterações.

No entanto, a rapidez com que a ferramenta executa essas ações depende do seu dispositivo. No Google Nexus 6P, a descompilação de um arquivo APK demora cerca de 2 minutos enquanto a recompilação de um APK demorou mais 2 minutos, então creio que a maioria não gostaria de usar o APKTool do seu telefone com tanta frequência.

Trabalhar com arquivos APK em seu telefone não é o processo mais fácil, mas a ferramenta APKTool torna-o capaz.

Eu não recomendo que os desenvolvedores modifiquem APKs exclusivamente em seu telefone Android, uma vez que é lento e mais difícil de gerenciar / manejar, mas se possui um tablet Android e está procurando uma maneira mais conveniente de fazer pequenas modificações e testá-los em um dispositivo rapidamente, APKTool para Android é a uma grande opção.

Gostou? Tire um minutinho e dê sua contribuição para Drall Dev Community no Patreon!