MASTG-TOOL-0011: Ferramenta Apktool

Apktool é usado para descompactar pacotes de aplicativos Android (APKs). Simplesmente descompactar APKs com o utilitário padrão unzip deixa alguns arquivos ilegíveis. O AndroidManifest.xml é codificado em formato binário XML, que não é legível com um editor de texto. Além disso, os recursos do aplicativo ainda estão empacotados em um único arquivo de armazenamento.

Quando executado com sinalizadores de linha de comando padrão, o apktool decodifica automaticamente o arquivo Android Manifest para o formato XML baseado em texto e extrai os recursos do arquivo (ele também desmonta os arquivos .DEX em código smali - um recurso que revisitaremos mais adiante neste livro).

Entre os arquivos descompactados, você geralmente pode encontrar (após executar apktool d base.apk):

  • AndroidManifest.xml: O arquivo Android Manifest decodificado, que pode ser aberto e editado em um editor de texto.
  • apktool.yml: arquivo contendo informações sobre a saída do apktool
  • original: pasta contendo o arquivo MANIFEST.MF, que contém informações sobre os arquivos contidos no arquivo JAR
  • res: diretório contendo os recursos do aplicativo
  • smali: diretório contendo o bytecode Dalvik desmontado.

Você também pode usar o apktool para reempacotar os recursos decodificados de volta para APK/JAR binário. Consulte as técnicas Explorando o Pacote do Aplicativo e Repackaging and Re-Signing para obter mais informações e exemplos práticos.