Converter apk para xml

Converter APK para XML

Decodifique um APK em Android manifest e XML de recursos legíveis com o Apktool.

Converter ficheiros APK online

Ainda não temos um conversor online dedicado para APK para XML, mas pode converter ficheiros APK online para estes formatos:

Como converter apk para xml arquivo

Um developer pode precisar de Android XML legível para inspecionar o manifest de um app, editar um layout, extrair resources ou compartilhar arquivos de configuração com outro developer. Um APK é um pacote instalável, e não um único documento XML, portanto o processo decodifica ou extrai vários arquivos XML possíveis.

O que é o formato APK

Um APK é o pacote de aplicação instalável do Android. Ele é um archive baseado em ZIP que pode conter código de aplicação compilado no formato DEX, um Android manifest binário, resources compilados, assets, bibliotecas nativas, assinaturas e metadata.

Android Studio, Gradle, Android build tools e sistemas de build de terceiros geram arquivos APK. APKs são encontrados durante a instalação manual de apps, testes de build, análise de aplicações e extração de backups de dispositivos.

O que é o formato XML

XML é um formato de texto estruturado usado pelo Android para manifests, layouts, menus, preferences, valores de resources, definições de navegação e dados de configuração. XML legível pode ser pesquisado, comparado com diff, editado, arquivado e aberto no Android Studio, Visual Studio Code, Notepad++ ou outro editor de texto.

Os arquivos dentro de um APK geralmente são armazenados como compiled binary XML, em vez de texto comum. A decodificação restaura elementos legíveis, atributos, namespaces e referências de resources, mas não recria exatamente os arquivos originais do projeto.

Como decodificar o pacote

Use o Apktool para obter resource XML legível

Apktool é a opção desktop mais adequada quando o resultado necessário inclui um manifest decodificado e arquivos de resources do Android. Instale um Java runtime compatível e, em seguida, baixe o wrapper e o JAR atuais do projeto oficial do Apktool e coloque-os de acordo com as instruções de instalação.

  1. Copie o APK para um diretório de trabalho.
  2. Abra um terminal nesse diretório.
  3. Execute apktool d app.apk -o decoded_app.
  4. Abra decoded_app/AndroidManifest.xml e inspecione os arquivos XML abaixo de decoded_app/res, incluindo layouts e resources de valores.

Se o destino já existir, use apktool d -f app.apk -o decoded_app para substituir seus arquivos. O Apktool decodifica o manifest binário e os resources compilados do Android; arquivos XML originalmente armazenados como texto simples podem apenas ser extraídos.

Inspecione o APK sem decodificação completa

No Android Studio, use Build → Analyze APK para visualizar a estrutura do archive, informações do manifest, arquivos DEX, resources e assets empacotados. Isso é útil para inspeção, mas geralmente não produz um diretório completo de arquivos XML editáveis.

Um utilitário ZIP, como o 7-Zip, pode extrair um APK porque o container usa a tecnologia ZIP. Ele não pode converter de forma confiável AndroidManifest.xml ou outro Android XML compilado em XML-fonte legível; esses arquivos exigem um decoder compatível com Android, como o Apktool.

Não existe um conversor online universal confiável de APK para XML, porque um APK pode conter vários tipos de XML e resources compilados. APK analyzers online podem exibir informações do manifest ou dos resources, mas os serviços variam quanto ao resultado e às políticas de retenção. Use um serviço online apenas para um APK não confidencial, após verificar seus termos de privacidade, e não faça upload de aplicações proprietárias, credenciais, builds privados ou dados de clientes. O Apktool local é a opção padrão mais segura.

Reconstrua um pacote modificado

Depois de editar os resources decodificados, reconstrua o pacote com apktool b decoded_app -o rebuilt.apk. O arquivo reconstruído deve ser assinado com o apksigner do Android SDK antes da instalação, por exemplo, executando apksigner sign --ks release.jks rebuilt.apk com o keystore e as opções de assinatura apropriados.

Um APK recém-assinado não mantém a identidade de assinatura original. As atualizações do Android exigem a mesma signing key da versão instalada, portanto um pacote modificado normalmente não pode atualizar a aplicação original. Teste os arquivos reconstruídos em um emulator ou dispositivo de teste.

Limites de qualidade e compatibilidade

O resultado não é um único arquivo XML: ele pode incluir um manifest, layouts, menus, valores, resources de navegação e outros arquivos, dependendo do pacote. Resource shrinking, obfuscation, optimization e compilation podem remover nomes, comentários, formatação e a estrutura original do código-fonte.

O Apktool pode produzir XML reconstruído diferente do XML original do projeto, embora continue adequado para inspeção ou, em alguns casos, para rebuilding. Framework resources e empacotamentos incomuns podem exigir arquivos adicionais de framework do Apktool ou uma versão mais recente do Apktool.

O bytecode DEX não é XML. Use o JADX para obter uma representação aproximada em Java ou outro decompiler para inspeção do código; a decompilation não restaura o código-fonte original em Java ou Kotlin, comentários, build configuration ou estrutura do projeto.

Simplificando, é impossível converter APK para XML diretamente.
Portanto, não existe um chamado conversor apk para xml ou um conversor online gratuito.

Comparação de formato: APK vs XML

Como os formatos APK e XML se comparam nas propriedades mais importantes para esta conversão.

Comparação dos formatos de arquivo APK e XML
Propriedade .APK Android Package .XML Extensible Markup Language
Padrão aberto Não Sim
Compressão Ambos Sem compressão
Tamanho típico do arquivo Médio Pequeno
Abre num navegador web Não Sim, nativamente
Edição posterior Não editável diretamente Fácil
Suporte a metadados Básico Básico
Legível em texto simples Não Sim
Mais usado para Incorporação em aplicações Intercâmbio de dados
Introduzido 2008 1998
Desenvolvedor Google W3C
Tipo MIME application/vnd.android.package-archive application/xml