recentemente, nós publicamos um guia sobre como adicionar dependências para apenas produtos específicos. Depois de termos implementado os passos necessários, queríamos ter a certeza de que a final .apk realmente não contém mais nenhuma classe indesejada. Neste post, vamos mostrar-lhe como verificar que classes e recursos estão em um apk.
Nota: Este guia foi concebido para descompilar o seu próprio apk, e não o trabalho árduo de outros programadores. Assim, não incluímos quaisquer passos para reverter-engenharia ou contornar o código ofuscação.
Preparação: Instalar as Ferramentas
Um apk Android é basicamente uma zipado directory, que contém algumas matérias recursos (imagens, arquivos de layout, ..) and a classes.dex
file. Este arquivo contém todos os códigos reais e nos interessa mais. Vamos baixar todas as ferramentas que precisamos:
- você vai precisar abrir o apk. Você pode usar a funcionalidade incorporada do seu sistema operacional, ou instalar o seu arquivador favorito (un)como 7-Zip.
- A fim de reverter o
classes.dex
file to a, você precisará baixar a ferramenta dex2jar. - Por último, a fim de tornar o ficheiro legível para o olho humano, baixar e executar Jd-Gui.
obter o seu código de volta
tudo bem, agora é hora de fazer o trabalho real. Copie o seu ficheiro apk para uma pasta em que deseja trabalhar. Descompacte o apk usando a ferramenta de sua escolha e você deve obter um diretório com alguns sub-diretórios e alguns arquivos.
Sinta-se à vontade para navegar na pasta AndroidManifest.xml
ou na pasta res
. A peça mais interessante é o classes.dex
. Assim, mude para a sua ferramenta dex2jar
e abra um novo terminal.se estiver no Mac OS, execute sh d2j-dex2jar.sh -f -o output.jar your_app_input.apk
. Os usuários do Windows podem usar o arquivo .bat
para criar o arquivo . Uma vez que a ferramenta passou, navegue para o novo arquivo .
visualizando o código descompilado
por último, Inicie o download JD-GUI
ferramenta e use-o para abrir o arquivo .
pode navegar em todos os pacotes e classes, que estão na sua apk. O código é uma versão despojada e não contém quaisquer comentários ou estruturas redundantes que você está vendo em sua IDE. Lembre-se, esta é a minimização compilada do seu aplicativo. No entanto, ele deve dar-lhe informações suficientes para aprender sobre o básico do aplicativo. Por exemplo, ele nos ajudou a verificar que não existem mais pacotes relacionados com a biblioteca admob no aplicativo.
outras opções
Se você só precisa de uma descompila rápida, você pode usar a ferramenta online em www.decompileandroid.com/.
para fins de descompilação mais avançados, você poderia dar uma olhada no apktool, que dá um monte de ajudantes adicionais.