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.
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.
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.
Quando a extração terminar, você estará face a face com um terminal GNU/Linux completo, emulado no seu dispositivo Android.
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.
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.
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 \__ / // | \ \ / / \/_/ // | \ \ @_^_@'/ \/_ // | \ \ //_^_/ \/_ // | \ \ ( //) | \/// | \ \ ( / /) _|_ / ) // | \ _\ ( // /) '/,_ _ _/ ( ; -. | _ _\.-~ .-~~~^-. (( / / )) ,-{ _ `-.|.-~-. .~ `. (( // / )) '/\ / ~-. _ .-~ .-~^-. \ (( /// )) `. { } / \ \ (( / )) .----~-.\ \-' .~ \ `. \^-. ///.----..> \ _ -~ `. ^-` ^-_ ///-._ _ _ _ _ _ _}^ - - - - ~ ~-- ,.-~ /.-~
Esse app tb eh muito massa:
https://play.google.com/store/apps/details?id=com.cuntubuntu&hl=pt-br
além de ser super fácil a instalação, ele virtualiza um SO completo, com interface gráfica e tudo. Sendo possível usar programas como gimp, inkscape e codeblocks no android
Santana,
Testei aqui. Muito bom, ele usa uma interface XFCE, que é bem leve. Imagino que seja melhor usá-lo em um tablet, com uma tela maior.