Converter deb para apk

Converter DEB para APK

Por que um DEB não pode se tornar um APK sem porting ou rebuilding do software

Converter ficheiros DEB online

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

Como converter deb para apk arquivo

  • Arquivos

Um programa Linux fornecido como um DEB não pode ser instalado em um telefone ou emulador Android que aceite APKs; por isso, busca-se a conversão quando o mesmo software é necessário nesse ambiente. Como os pacotes destinam-se a sistemas operacionais diferentes, um resultado funcional normalmente exige portar ou recompilar o programa, em vez de renomeá-lo ou reempacotá-lo.

O que é o formato DEB

DEB é o formato de pacote do Debian, usado pelo Debian, Ubuntu, Linux Mint e distribuições relacionadas. É um arquivo ar que contém metadados de controle e um arquivo de dados compactado com executáveis Linux, bibliotecas compartilhadas, arquivos de configuração, documentação e scripts de instalação.

apt e dpkg instalam pacotes DEB em sistemas Linux compatíveis. Um DEB pode ter como alvo amd64, arm64 ou outra arquitetura Linux, mas seus binários e dependências ainda são compilados para Linux, e não para Android.

O que é o formato APK

APK é o pacote de aplicativo instalável do Android. Normalmente contém um manifesto do Android, recursos compilados, código de aplicativo DEX, assets, bibliotecas nativas em diretórios específicos de ABI, como arm64-v8a, e uma assinatura criptográfica.

O Android usa o manifesto, o ID do aplicativo, as permissões, as informações de assinatura e as APIs do framework do Android para instalar e executar um APK. Os APKs também fornecem o sandbox de aplicativos do Android e podem ser distribuídos diretamente para dispositivos ou emuladores compatíveis. Android Studio e Gradle são as ferramentas de desktop padrão para criá-los.

Por que a conversão direta não funciona

Um arquivo DEB não é um APK com metadados diferentes. Seu executável geralmente é um binário Linux ELF vinculado a bibliotecas e interfaces Linux; um APK exige uma estrutura de aplicativo Android, código compatível e assinatura. Alterar .deb para .apk, recomprimir o arquivo ou colocar o DEB dentro de um APK não torna o programa executável no Android.

Não existe um conversor de desktop de uso geral ou um conversor online confiável capaz de transformar um DEB arbitrário em um APK funcional. Serviços online de arquivos podem descompactar um DEB, mas não conseguem portar o código-fonte, recompilar binários nativos, substituir APIs de desktop, criar um manifesto utilizável, resolver dependências do Android ou assinar o aplicativo finalizado. O envio de pacotes proprietários para esses serviços também pode expor seu conteúdo.

Como criar um equivalente para Android

  1. Inspecione o pacote. No Debian, Ubuntu ou outro sistema Linux, execute:

    dpkg-deb -I program.deb
    dpkg-deb -f program.deb Architecture
    dpkg-deb -x program.deb deb-root
    dpkg-deb -e program.deb deb-control

    Inspecione deb-root/usr/bin, deb-root/usr/lib e os metadados de controle. Execute file deb-root/usr/bin/program para identificar um executável ELF, um script ou dados independentes de arquitetura. Normalmente, o DEB não contém o código-fonte necessário para uma portabilidade.

  2. Localize o código-fonte e as dependências. Obtenha o código-fonte do programa e analise sua licença, sistema de compilação, bibliotecas externas, toolkit de desktop, pressupostos sobre o sistema de arquivos, serviços em segundo plano e suporte de CPU. Reutilizar apenas os ícones, fontes ou outros dados do DEB não faz a portabilidade do aplicativo.
  3. Crie um projeto Android. Use Android Studio com Gradle, defina o ID do aplicativo e as versões do Android compatíveis, implemente uma activity do Android ou outro componente adequado e substitua as interfaces de desktop Linux, o gerenciamento de serviços, os caminhos, as permissões e os mecanismos de configuração por equivalentes do Android.
  4. Recompile o código nativo quando necessário. Compile os componentes C ou C++ com o Android NDK para as ABIs necessárias, normalmente arm64-v8a. Bibliotecas compiladas para glibc ou para um ambiente Linux de desktop geralmente precisam de alterações no código-fonte antes que possam ser compiladas com a biblioteca C e as APIs do Android.
  5. Adapte o software de linha de comando separadamente. Um script ou utilitário de terminal pode funcionar no Termux depois que seu interpretador e suas dependências forem instalados, mas isso produz uma instalação em um ambiente de execução Termux, e não um APK. Um aplicativo Android gráfico ainda exige um front-end Android.
  6. Compile e assine o APK. Use Build → Generate App Bundles or APKs → Generate APKs no Android Studio ou execute ./gradlew assembleDebug. Uma compilação de depuração é assinada automaticamente e normalmente é gravada em app/build/outputs/apk/debug/ ou em um diretório abaixo dele. Para distribuição, configure um keystore de release e execute ./gradlew assembleRelease; o Android exige uma assinatura válida para a instalação.

Limites de compatibilidade e alternativas

Coincidir a arquitetura da CPU não é suficiente. Um binário Linux pode depender de glibc, X11 ou outras bibliotecas de desktop, caminhos do sistema de arquivos Linux, serviços do sistema, recursos do kernel ou scripts do gerenciador de pacotes que o Android não fornece. Um DEB que contenha apenas scripts, fontes ou dados pode ser reutilizado com mais facilidade, mas ainda precisa de um aplicativo ou ambiente de execução Android compatível.

Se o objetivo for executar o programa Linux original em vez de produzir um APK, instale um ambiente Linux adequado por meio do Termux e do proot-distro e, em seguida, use um gerenciador de pacotes dentro desse ambiente quando a arquitetura do dispositivo e a distribuição forem compatíveis com o DEB. Isso pode evitar a portabilidade, mas não cria um aplicativo Android, pode ser mais lento e não oferece a integração normal com o Android. apktool é útil para inspecionar ou recompilar um APK existente; ele não converte arquivos DEB.

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

Comparação de formato: DEB vs APK

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

Comparação dos formatos de arquivo DEB e APK
Propriedade .DEB Debian binary package .APK Android Package
Padrão aberto Sim Não
Compressão Ambos Ambos
Tamanho típico do arquivo Pequeno Médio
Abre num navegador web Não Não
Edição posterior Limitado Não editável diretamente
Suporte a metadados Básico Básico
Legível em texto simples Não Não
Mais usado para Incorporação em aplicações Incorporação em aplicações
Introduzido 1995 2008
Desenvolvedor Debian Project Google
Tipo MIME application/vnd.debian.binary-package application/vnd.android.package-archive

Outras conversões de arquivo .deb

Conversão inversa

Converter para .apk
de outros formatos

Compartilhar nas redes sociais: