Como descompilar apk?

Em Dúvidas de aparelhos e apps por André M. Coelho

Basicamente, descompilar um arquivo APK é fazer a engenharia reversa dos aplicativos, pegando bits e partes de código (na maioria dos casos, strings de um arquivo chamado strings.xml) de dentro, que podem sugerir recursos que estão chegando no futuro ou recursos que já existem. Também é possível usar métodos para ativar recursos não lançados em alguns aplicativos.

Mas como exatamente essas coisas são feitas ainda não foi divulgado até o momento, e você pode se surpreender ao saber que na verdade é um processo bastante direto.

Como descompilar APK?

Descompilar APKs é basicamente encontrar cadeias de caracteres em strings.xml. E o processo começa baixando uma ferramenta APK, a APK Tool.

Leia também

A primeira e mais simples ferramenta necessária para desmontagem de aplicativos é o APK Tool, um pequeno aplicativo gratuito que permite que você faça a engenharia reversa rápida e fácil de arquivos APK do Android. Você pode usá-lo em praticamente qualquer aplicativo Android, incluindo aqueles que não são do Google. Você pode encontrar o download da ferramenta APK no site oficiall, e clicar no link “Versão atual” no canto superior direito da página para baixar a versão mais recente.

Nota: se você tiver alguma experiência em desenvolvimento, provavelmente perceberá que esse é um arquivo .JAR e, combinado com a documentação do aplicativo em seu site, saberá como usá-lo. Se esse for o seu caso, você pode pular abaixo para a seção sobre ativar recursos não lançados nos aplicativos do Google.

Como usar um APK decompiler

Existem várias rotas que você pode seguir para usar esse arquivo .jar para descompilar aplicativos para Android, mas vamos mostrar o que achamos que é o método mais simples para aqueles que não têm experiência anterior em programação ou desenvolvimento .

1. Instale o Java

Para aqueles que estão começando a desenvolver e mexer com aplicativos Android, provavelmente é uma boa ideia instalar o Java Runtime Environment e o Java SE Development Kit. Você desejará garantir a instalação das versões corretas para o seu sistema operacional. Neste tutorial, usaremos um dispositivo macOS.

2. Configure seu ambiente

Esta etapa é simplesmente para facilitar a explicação e não é necessária se você souber o que está fazendo.

Crie uma pasta na sua área de trabalho chamada “teardowns” (ou qualquer outra coisa que seja do seu agrado). Arraste o arquivo .jar da APK Tool (ele deve ter o nome de apktool_X.X.X.jar – onde X é um número da edição) nessa pasta. Renomeie o arquivo .jar da APK Tool para algo simples como “apktool.jar” para facilitar a entrada de comandos.

3. Baixe o APK que você deseja descompilar

Faça o download do APK que você deseja desmontar do APKMirror. Renomeie isso para algo mais fácil de manipular, como “umdoistres.apk” (também não é necessário, mas esperamos tornar as coisas um pouco menos confusas quando você digitar o comando para executar a Ferramenta APK mais tarde). Arraste o arquivo .apk do aplicativo para a mesma pasta que o arquivo apktool.jar.:

Descompilando arquivos APK

Descompile arquivos APK para modificar, editar ou trabalhar a programação. (Foto: Hacker Noon)

4. Execute a ferramenta APK

Em uma máquina Mac ou Linux, abra o aplicativo Terminal (você pode usar o Spotlight para encontrá-lo rapidamente).

Navegue para o diretório que contém os dois arquivos acima. No Mac, você pode usar o comando “ls” (digite “ls” e pressione enter) para visualizar os arquivos no diretório atual e o comando “cd” para mudar para uma pasta que esteja no diretório atual.

Por exemplo, se sua pasta “descompilando” (ou o que você decidiu chamá-la na etapa 2 acima) estiver na sua área de trabalho, você provavelmente precisará abrir o Terminal, digite “cd desktop” (enter), seguido por ” CD Descompilando”(enter). Então você deve ver que está no diretório certo.

Em um PC, você precisará usar o comando “dir” para exibir o diretório atual e o mesmo comando “cd” para alterar o diretório para a pasta que possui o arquivo .JAR da ferramenta APK.)

A partir daqui, você pode digitar o comando para descompilar o aplicativo. Esse comando básico para descompilar um APK do Android é o seguinte, e você pode encontrar variações disso no site da Ferramenta APK:

java -jar apktool.jar d umdoistres.apk

Depois de fazer isso, você verá uma nova pasta que contém o aplicativo descompilado.

5. Navegue para strings.xml

A maioria das informações mais interessantes pode ser encontrada em um arquivo chamado strings.xml. E a maneira como sabemos o que há de novo é comparando o arquivo strings.xml de uma versão recém-lançada de um aplicativo com os arquivos strings.xml lançados anteriormente. Você pode encontrar strings.xml no diretório / res / values ​​/.

Ativar recursos não lançados: como editar um APK?

Em alguns aplicativos estruturados de certas maneiras, também existem métodos para ativar os recursos que estão atualmente em desenvolvimento. É claro que o fato de existir um código para habilitá-los e que eles estejam em desenvolvimento não significa que eles acabarão se tornando recursos completos para o usuário, mas é interessante ver esses recursos em andamento independentemente.

1. Faça root de seu dispositivo

A primeira coisa que você precisa fazer antes de ativar os recursos em desenvolvimento é fazer root no seu dispositivo. Não há espaço suficiente neste guia rápido para abordar como fazer root em todos os dispositivos (é claro), então você terá que pesquisar isso sozinho. Mas não é preciso dizer que conseguir a raiz será muito mais fácil se você possuir um dispositivo que favorece o desenvolvimento, como o Nexus 6P ou o Google Pixel.

2. Instale um aplicativo de navegador de arquivos como o Solid Explorer

Depois de obter a raiz no seu dispositivo, você precisa instalar um aplicativo explorador de arquivos. Preferimos usar o Gerenciador de Arquivos do Solid Explorer, que pode ser encontrado na Play Store gratuitamente. No entanto, custa um pouco para manter todos os recursos após um período de teste.

3. Navegue para /dados/dados  ou /data/data

Na raiz, você usará o Solid Explorer (ou qualquer outro gerenciador de arquivos que escolher) para navegar da raiz para os /dados/dados ou /data/data. A partir daí, você verá uma lista de aplicativos instalados e precisará escolher aquele para o qual deseja ativar os recursos. Nesse caso, usaremos o exemplo do aplicativo Telefone e ativaremos a bolha flutuante mencionada na semana passada. Então, vamos navegar para com.google.android.dialer, que é o aplicativo do Google Phone.

4. Navegue para shared_prefs e modifique valores

A partir daqui, navegue para shared_prefs e pesquise os arquivos XML dentro para encontrar recursos que valem a pena ativar. Como você pode ver abaixo, navegamos para o arquivo chamado dialer_phenotype_flags.xml e encontramos um booleano relacionado a um return_to_call_bubble. Tudo o que fizemos para ativar o recurso foi alterar o booleano de “false” para “true” e salvar o arquivo.

5. Forçar o relançamento do aplicativo

Depois de navegar pelos arquivos em shared_prefs e ativar os recursos que você deseja ativar (observe que alguns dos valores outros tipos; nem sempre será um booleano falso / verdadeiro), tudo o que você precisa fazer é salvar o arquivo e volte para o iniciador e force a saída do aplicativo (remova-o da multitarefa). Basta reiniciar o aplicativo e você pode achar que um novo recurso está ativado. Obviamente, isso exige muito trabalho, tentativa e erro.

https://youtu.be/RDb-vg9X8Xo

Fazer o descompilamento de aplicativos para encontrar sequências de caracteres sugerindo recursos futuros e agora realmente entrar e permitir que alguns desses recursos os vejam em ação é um processo bastante trivial do ponto de vista técnico. Tudo o que você precisa é acessar a nova versão de um aplicativo para ver sequências de caracteres e um telefone raiz para habilitar alguns dos recursos em desenvolvimento. Mas não é uma paciência e habilidade triviais que são necessárias para testar dezenas de recursos para ver o que eles fazem e interpretar o que eles podem significar.

Dúvidas? Deixem nos comentários suas perguntas!

Sobre o autor

Autor André M. Coelho

Quando André entrou na faculdade em 2004, notebooks eram ainda muito caros. Para anotar as informações, buscou opções, encontrando no Palm Zire 72 um aparelho para ajudá-lo a registrar informações das aulas. Depois, trocou por um modelo de celular com teclado, Qtek quando o 2G e o 3G ainda engatinhavam no Brasil. Usou o conhecimento adquirido na pesquisa de diferentes modelos para prestar consultoria em tecnologia a diversas empresas que se adaptavam para o mundo digital. André passou ainda por um Samsung Omnia, um Galaxy Note II, e hoje continua um entusiasta de smartphones, compartilhando neste site tudo que aprendeu.

Deixe um comentário