Elmord's Magic Valley

Computers, languages, and computer languages. Às vezes em Português, sometimes in English.

Busybox e ssh no Android

2012-07-17 14:15 -0300. Tags: comp, unix, android, em-portugues

Há umas três semanas comecei a usar um smartphone. É um ótimo aparelho, até que se tenha que usá-lo como celular.

De qualquer forma, uma das grandes vantagens do Android é que o sistema operacional por baixo de tudo é um Linux mais ou menos normal (sem GNU, todavia), e portanto é possível rodar praticamente qualquer coisa que rode em Linux/ARM em um smartphone com Android.

[Imagem de um smartphone rodando o ssh]
E se não fosse pelo teclado virtual, já teria instalado o Nethack.

As condições mínimas para diversão são um terminal e os utilitários padrão (ls, cp, grep, etc.). Existe um pacote pronto com um emulador de terminal, Busybox, e cliente e servidor de ssh e rsync. Infelizmente, esse pacote requer o Android 2.3 ou superior (no meu brinquedo, que vem com um Android 2.2, ele inicia o terminal, dá três vibradas seguidas e congela). É possível, entretanto, obter as partes separadamente elsewhere e juntá-las.

O emulador de terminal pode ser encontrado no Android Market, mas se você é pagão e não tem conta no Google, pode obtê-lo diretamente da forja. A instalação é trivial e deixada como exercício para o leitor.

Tendo o terminal, podemos instalar o Busybox. Encontrei binários pré-compilados do Busybox para o Android neste site super-confiável. Esse binário deverá ser colocado na memória principal do aparelho, já que aparentemente o Android não dá permissão de execução a binários no /sdcard por padrão. Para tanto, você deverá se tornar root do mal, o que exige um equipamento rooteado. Obtive meu smartphone de segunda mão, e ele já veio rooteado, mas guias de como rootear não faltam. Assumindo um aparelho já rooteado:

  1. Abra o Terminal Emulator.
  2. Digite su. Talvez o sistema apresente uma janelinha pedindo confirmação para fornecer direitos de root ao su.
  3. mkdir /data/busybox
  4. mv /sdcard/onde-quer-que-você-tenha-baixado-o-busybox /data/busybox/busybox
  5. cd /data/busybox
  6. chmod 755 busybox
  7. Crie os links com os nomes dos utilitários padrão para o busybox. Em tese, ./busybox --install deveria fazer isso, mas para mim não funcionou. ./busybox --list aparentemente também não existe nessa versão do Busybox, então tive que apelar para a seguinte treta:
    for i in $(./busybox | ./busybox sed -n 's/,//gp' | ./busybox sed 1d); do ln -s busybox $i; done
  8. Pressione a tecla de menu, e selecione as Preferences do Terminal Emulator.
  9. Ajuste Initial command para: export PATH="/data/local/bin:/data/busybox:/data/dropbear:$PATH"
  10. Ajuste Command line para: /data/busybox/sh -

Pronto! A partir de agora, quando você iniciar o terminal, o Busybox abrirá automaticamente, e os comandos nele contidos estarão disponíveis.

Por último, instalemos o Dropbear, um cliente/servidor de ssh más pequeño del mundo. Os binários podem ser obtidos aqui (link no final do post). Baixe-o e faça o seguinte:

  1. Abra o Terminal Emulator.
  2. su
  3. cd /data
  4. mkdir dropbear
  5. cd dropbear
  6. unzip /sdcard/onde-quer-que-você-tenha-baixado-o-dropbear.zip
  7. chmod 755 *

E está feito! Agora você já pode derrubar a Internet de onde quer que você esteja.

Comentários / Comments (1)

Deivid R. Nogueira, 2013-10-30 22:19:15 -0200 #

Muito Interessante, e a resposta que estava procurando.... Muito obrigado


Deixe um comentário / Leave a comment

Main menu

Recent posts

Recent comments

Tags

em-portugues (213) comp (148) prog (71) in-english (62) life (49) unix (38) pldesign (37) lang (32) random (28) about (28) mind (26) lisp (25) fenius (22) mundane (22) web (20) ramble (18) img (13) rant (12) hel (12) scheme (10) privacy (10) freedom (8) esperanto (7) music (7) lash (7) bash (7) academia (7) copyright (7) home (6) mestrado (6) shell (6) android (5) conlang (5) misc (5) emacs (5) latex (4) editor (4) etymology (4) php (4) worldly (4) book (4) politics (4) network (3) c (3) tour-de-scheme (3) security (3) kbd (3) film (3) wrong (3) cook (2) treta (2) poem (2) physics (2) x11 (2) audio (2) comic (2) lows (2) llvm (2) wm (2) philosophy (2) perl (1) wayland (1) ai (1) german (1) en-esperanto (1) golang (1) translation (1) kindle (1) pointless (1) old-chinese (1)

Elsewhere

Quod vide


Copyright © 2010-2024 Vítor De Araújo
O conteúdo deste blog, a menos que de outra forma especificado, pode ser utilizado segundo os termos da licença Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International.

Powered by Blognir.