Como executar um terminal Linux no Android

Nesse post vamos mostrar como acessar as funcionalidades de um sistema operacional GNU/Linux, Debian, a partir de um dispositivo Android, sem root. Teremos acesso a um terminal no modo texto e será possível instalar programas usando apt-get, gerenciar repositórios git, compilar e executar seus próprios programas.

Já é de conhecimento geral da comunidade da computação que os sistemas operacionais baseados no kernel Linux são fantásticos. Eles são responsáveis pela operação de grande parte dos servidores que sustentam a Internet, os supercomputadores mais rápidos da atualidade e também uma enorme parcela do mercado de dispositivos móveis. O sistema Android. por exemplo, utiliza o kernel Linux para suas operações de baixo nível. É possível até acessar um app terminal e usar algumas funcionalidades nativas do sistema. No entanto, isso é bastante limitado sem que o smartphone ou tablet tenha acesso root. Infelizmente, liberar o acesso root em um dispositivo é um processo que pode resultar em morte (do seu aparelho). Mas e se pudéssemos emular um sistema GNU/Linux em um dispositivo Android, como um aplicativo, sem necessidade de acessar a conta root do sistema nativo? É exatamente isso que o app GNURoot Debian faz.

Instalação do GNURoot Debian

O primeiro passo é instalar o aplicativo GNURoot Debian, disponível na Play Store. O projeto GNURoot Debian é open source e está disponível no Github.

Aplicativo GNURoot Debian
Aplicativo GNURoot Debian

Extração do sistema Debian

Ao abrir o aplicativo, o GNURoot vai conectar aos repositórios do Debian para baixar os arquivos do sistema operacional.

Baixando o Debian
Baixando o Debian

Depois disso, os arquivos, que foram baixados de forma compactada serão extraídos. Paciência nessa etapa, porque ela pode demorar alguns minutos. No meu caso, foram 10 minutos de espera. Dá tempo preparar uma limonada.

Extraindo o Debian
Extraindo o Debian

Quando a extração terminar, você estará face a face com um terminal GNU/Linux completo, emulado no seu dispositivo Android.

Welcome to the Dark Side
Welcome to the Dark Side

Explorando as funcionalidades

Você pode começar testando alguns comandos básicos como pwd, ls, cd, cat, echo, top, só para verificar que os programas mais comuns já estão instalados por padrão.

Linux Top
top

Os botões do menu servem para adicionar uma nova janela, excluir a janela atual e outras opções extras. Nessas opções extras, os dois itens mais importantes são Preferences e Special Keys.

Em Preferences você poderá decidir se quer ou não exibir a barra de status do Android, além da Action Bar do próprio aplicativo. Se quiser um design mais limpo, é interessante esconder essas barras. Outras opções são orientação da tela, tamanho e cor do texto, além de comportamentos das teclas especiais.

A seção Special Keys é bastante importante, pois existem muitas teclas especiais em um teclado de computador que não existem em teclados virtuais de smartphone, por exemplo, o CTRL-C, CTRL-V que tanto usamos após uma consulta no Stack Overflow.

As teclas especiais, preste atenção, são úteis
As teclas especiais, preste atenção, são úteis

No GNURoot, a tecla especial CTRL é substituída pelo botão de diminui o volume (Vol-Dn). Então, para digitar CTRL-C, basta segurar o botão de diminuir o volume e clicar em C no teclado. O botão de aumentar o volume (Vol-Up) é usado para sinalizar outras entradas possíveis, como as setas, PageUp, PageDown, Tab. Por exemplo, para digitar Tab, segure o botão de aumentar o volume e pressione T no teclado. Pode ser meio chato no começo, mas com um pouco de treino o cérebro memoriza os principais atalhos e isso deixa de ser um problema.

Caso suas teclas de atalho não estejam funcionando e você esteja usando o teclado padrão do Google, aquele que já veio instalado no Android, saiba que, por algum motivo, o Google Keyboard não é capaz de inserir os atalhos requeridos pelo GNURoot Debian. Um motivo misterioso. A alternativa é instalar um app de teclado compatível: um boa opção é o SwiftKey.

Instalando pacotes via apt-get

Muitos programas que normalmente vem com uma instalação GNU/Linux padrão não estarão disponíveis de imediato. Essas você terá que instalar via apt-get, o gerenciador de pacotes do Debian. Mas você não vai conseguir instalar nenhum pacote até atualizar a lista de repositórios apt. Apenas insira o comando

apt-get update

espere que as atualizações sejam baixadas e voilà. Estamos prontos. Vamos testar; instale o programa tree:

apt-get install tree
tree /sdcard

O comando tree /sdcard exibe toda a árvore de diretórios da memória principal do seu dispositivo Android, supondo que ela está em /sdcard.

Considerações finais sobre GNU/Linux no Android

O app GNURoot Debian dá acesso a quase todas as funcionalidades de um sistema Debian instalado em um desktop, exceto a algumas funções de rede ou instalações de drivers. Por exemplo, nos meus testes ping e nmap não funcionaram. No entanto traceroute funcionou perfeitamente. O software gerenciador de versões git funciona maravilhosamente. Executar python funcionou, mas instalar novos pacotes via pip deu certo apenas para alguns pacotes, enquanto outros apresentaram erros misteriosos.

É possível compilar programas em C/C++ usando gcc ou g++, mas para executá-los é necessário que o executável não esteja no diretório /home, pois este está montado na memória ou no cartão SD e o Android não permite a execução a partir destes. Para isso, basta mover o executável para o diretório /bin ou /usr/local/bin e ele estará acessível pelo nome em qualquer outro diretório. Não esqueça de configurar a permissão de execução do seu programa com chmod.

E um alerta final: com grandes poderes, vem grandes responsabilidades. Ou seja, é bom tomar o cuidado de não alterar diretórios ou arquivos utilizados diretamente no funcionamento dos seus apps. Corromper seus dados não é legal.

 ___________
< Obrigado! >
 -----------
      \                    / \  //\
       \    |\___/|      /   \//  \\
            /0  0  \__  /    //  | \ \    
           /     /  \/_/    //   |  \  \  
           @_^_@'/   \/_   //    |   \   \ 
           //_^_/     \/_ //     |    \    \
        ( //) |        \///      |     \     \
      ( / /) _|_ /   )  //       |      \     _\
    ( // /) '/,_ _ _/  ( ; -.    |    _ _\.-~        .-~~~^-.
  (( / / )) ,-{        _      `-.|.-~-.           .~         `.
 (( // / ))  '/\      /                 ~-. _ .-~      .-~^-.  \
 (( /// ))      `.   {            }                   /      \  \
  (( / ))     .----~-.\        \-'                 .~         \  `. \^-.
             ///.----..>        \             _ -~             `.  ^-`  ^-_
               ///-._ _ _ _ _ _ _}^ - - - - ~                     ~-- ,.-~
                                                                  /.-~

 

David Borges

Um dia... Boom! Dragão sem Chama.

3 thoughts to “Como executar um terminal Linux no Android”

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *