> For the complete documentation index, see [llms.txt](https://jorgelucas011.gitbook.io/manual-pentest-mobile/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://jorgelucas011.gitbook.io/manual-pentest-mobile/apk.md).

# Android Package Kit (APK)

Para simplificar o entendimento podemos dizer que um APK nada mais é do que um conjunto de códigos .class compilados em .dex, o manifesto no qual há especificações sobre o aplicativo em geral, e por fim recursos, que são diretórios contendo strings, layouts, menus e tudo que não era código Java antes da compilação.

![Fonte: MANIFEST SECURITY](https://4188995347-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MOWbmIgHEyWk9IYyTwh%2F-MOWjCOOhVfvaKw_GBA4%2F-MOXNrTAXPa14SB1RCf1%2FScreenshot%20from%202020-12-14%2014-50-54.png?alt=media\&token=503e43e3-498f-43c9-9490-affca4f16d22)

Um APK contém uma variedade de arquivos e recursos, mas normalmente contém certos diretórios e arquivos. O Google Developers, site oficial para desenvolvedores Android, especifica todos estes arquivos. Porém, serão citados apenas os mais importantes para o contexto deste manual:&#x20;

a. **AndroidManifest.xml**: este documento é utilizado para informações organizacionais, contendo 27 tipos pré-definidos de elementos, dentre os quais pode-se especificar componentes da aplicação, permissões necessárias pela aplicação para interagir com outras, bibliotecas necessárias, filtros para intents e broadcasts;&#x20;

b. **META-INF:** é um diretório que contém meta informações necessárias para assinatura da aplicação. Alguns arquivos importantes são: MANIFEST.MF (o manifesto em formato de metadado), CERT.RSA (o certificado da aplicação), CERT.SF (contém o sumário SHA-1 correspondente ao manifesto);&#x20;

c. **lib**: um diretório que contém código compilado especificamente para um processador, e é dividido em diretórios de mesmo nome da arquitetura - armeabi, armeabi-v7a, x86 e mips;&#x20;

d. **assets**: um diretório contendo arquivos que serão compactados junto com a aplicação;&#x20;

e. **res**: um diretório que contém recursos que não são pré compilados. Estes incluem layouts, valores (strings, ids, cores) e drawables, que são arquivos 12 de desenho. A classe R armazena todos os IDs de todos os recursos desta pasta, uma vez definidos em seu XML (string.xml, layout.xml e afins);&#x20;

f. **proguard-project.txt**: arquivo de configuração do proguard, que serve para ofuscação de código fonte, com o objetivo de evitar com que alguém leia este código.
