O Android e o Linux são dois sistemas operacionais diferentes . Você não pode simplesmente pegar um executável de um e executá-lo do outro.
O primeiro obstáculo é o kernel. O Android e o Linux são baseados no mesmo kernel, mas eles possuem alguns recursos diferentes. Em particular, o Android fornece fichários , que só existem no kernel principal (aquele encontrado nas distribuições Linux) desde a versão 3.19. Um aplicativo de código nativo puro pode não usar fichários, mas a maioria dos aplicativos Java.
O segundo obstáculo são as bibliotecas dinâmicas. Se você tiver um executável vinculado dinamicamente, ele chama o vinculador dinâmico. Android e Linux têm diferentes vinculadores dinâmicos e, se o vinculador dinâmico não estiver presente, você recebe o mesmo erro como se o próprio executável não estivesse presente .
Se você copiar o vinculador dinâmico e os arquivos de configuração necessários e as bibliotecas nativas, poderá executar a maioria dos programas nativos. Você precisará copiar a maior parte de /system
e a cópia precisa estar localizada em /system
.
Se você deseja executar aplicativos Java, é mais complicado. Você precisa do ambiente de tempo de execução Java (Dalvik / ART), e a maioria dos aplicativos também requer alguns daemons do Android (alguns aplicativos de código nativo também exigem esses demônios).
O resultado é que enquanto os dois sistemas podem coabitar em um kernel, este precisa ser um kernel recente o suficiente, ou um kernel Android (um kernel Android pode rodar a maioria dos aplicativos Linux), e ambos os sistemas operacionais precisam ser instalado - você não pode simplesmente executar um aplicativo de um no outro.Não tenho conhecimento de nenhum instalador pronto para Android sobre o Linux. No entanto, existem instaladores para o inverso, em particular LinuxonAndroid .
Se o objetivo é rodar um aplicativo Android em um sistema Linux, então a maneira mais fácil é rodá-lo dentro do emulador que é parte do Ferramentas de desenvolvimento para Android .