0% acharam este documento útil (0 voto)
5 visualizações11 páginas

Usando Android com Linux e ADB

Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
5 visualizações11 páginas

Usando Android com Linux e ADB

Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Use o Android com o Linux

As distribuições Linux e o Android são mais do que sistemas


operacionais relacionados, eles possuem um núcleo(Kernel) em um nível
baixo bastante semelhantes. No Android é possível usar maior parte
dos comandos do Linux, você pode instalar o Bash, criar scripts e até
mesmo executar servidores remotos. Instalando um cliente SSH em seu
dispositivo, você poderá controlar servidores apenas com seu Android,
e até usar o Rsync para sincronizar arquivos.

ADB

ADB é a ferramenta favorita dos usuários avançados do Android, as


siglas significam Android Debug Bridge, e funciona como um sistema de
gerenciamento de smartphones com o computador. O ADB permite que você
execute e instale aplicações, mova arquivos do dispositivo para outro
e execute um monte de outras tarefas. Para utilizar o ADB no Windows,
você precisa instalar os drivers e reinicar sua máquina, no caso do
Linux não é necessário muito esforço. No seu dispositivo Android,
habilite a opção de Depuração USB(Configurações > Opções do
Desenvolvedor) e no seu Linux instale o pacote adb:

# Ubuntu/Debian/Mint
$ sudo apt-get install adb
# Arch Linux
$ sudo pacman -S android-tools android-udev

Após a instalação, você precisa conectar o smartphone no seu


computador e executar os seguintes comandos:
Obtendo a lista de dispositivos conectados:
$ adb devices
Instalando em APK anexado:
$ adb install [Link]

Copiar um arquivo para o dispositivo:


$ adb push [Link] /sdcard/

Baixar um arquivo do dispositivo:


$ adb pull /sdcard/DCIM/Camera/[Link] [Link]

Fazer uma captura de tela e baixar no seu computador:


$ adb shell screencap /sdcard/[Link]
$ adb pull /sdcard/[Link]
$ adb shell rm /sdcard/[Link]

Usando função do botão liga/desliga:


$ adb shell input keyevent 26

O ADB também pode ser usado para acessar a linha de comando(shell) do


seu smartphone:
$ adb shell

É importante notar que o ADB pode funcionar não apenas no USB, mas
também no Wi-Fi, mas isso requer privilégios de root no dispositivo e
no aplicativo WiFi ADB. Inicie o aplicativo, ative o wireless e
conecte-se ao smartphone com endereço IP mostrado pelo aplicativo:
$ adb connect IP-[Link]
Adb-sync

O ADB também pode ser usado para sincronizar arquivos entre


dispositivos(existe até uma opção para isso)
$ sync
Porém é mais conveniente usarmos o script adb-sync. Por exemplo, você
pode sincronizar música em seu dispositivo e em seu computador:
$ adb-sync ~/Music/ /sdcard/Music

E então, execute a mesma sincronização, mas com a remoção de arquivos


que foram excluídos no computador:
$ adb-sync --delete ~/Music/ /sdcard/Music

Uma maneira fácil de baixar arquivos no computador(sincronização


reversa):
$ adb-sync --reverse /sdcard/Download/ ~/Downloads

Adbfs

Outra maneira interessante de acessar arquivos no dispositivo com ADB


é usar adbfs, um pseudo FS(File System), que permite que você monte o
dispositivo como se fosse uma unidade flash USB ou qualquer outra
unidade.
A maneira mais fácil de instalar adbfs está no Arch Linux. Aqui está
no AUR, o comando para instalar é o seguinte:
$ yaourt -S adbfs-rootless-git

No Ubuntu/Debian e outros sistemas, o adbfs será de ser baixado


manualmente:
$ sudo apt-get install libfuse-dev android-tools-adb
$ git clone git://[Link]/spion/[Link]
$ cd adbfs-rootless
$ make

Agora você pode conectar o sistema de arquivos:


$ mkdir ~/Android
$ adbfs ~/Android

Para desativar:
$ fusermount -u ~/Android

Go-mtpfs

Outra maneira de conectar o dispositivo como um sistema de arquivos é


go-mtpfs, um sistema de arquivos que permite transferir dados através
do protocolo MTP. Este protocolo é usado em smartphones sem cartão de
memória.
No Arch Linux, é muito fácil instalar o go-mtpfs:
$ yaourt -S go-mtpfs

Em outras distribuições a instalação é a seguinte:


$ sudo apt-get install golang-go libusb1-devel
$ mkdir /tmp/go
$ export GOPATH=/tmp/go
$ go get [Link]/hanwen/go-mtpfs
$ go install [Link]/hanwen/go-mtpfs

Mais tudo elementar como com o adbfs:


$ mkdir ~/Android
$ go-mtpfs ~/Android

Para desativar:
$ fusermount -u ~/Android

SSH

A idéia de usar o ADB para se comunicar com o dispositivo pode


parecer estranha, o Android possui diversos servidores SSH que não
requerem acesso root. Assim em muitos casos, o SSH será mais
conveniente e eficaz. Como uma implementação do servidor, eu
recomendo escolher SimpleSSHD, uma aplicação gratuita e simples para
um servidor DropBear SSH testado no tempo para sistemas embarcados.
Se você tem root, então eu recomendo também instalar o BusyBox On
Rails, um conjunto de utilitários de linha de comando mais próximos
das distribuições Linux.

É muito fácil usar SimpleSSHD. Execute, pressione START e conecte-se


ao endereço IP especificado(usaremos a porta 2222):
$ ssh [Link] -p 2222

No momento da conexão uma senha única será exibida na tela, que deve
ser especificada no cliente. Esta não é uma maneira muito conveniente
de autenticar, mas você pode configurar autenticação por chaves.
Basta mudar o nome da sua chave pública
~/.ssh/id_rsa.pub
em
authorized_keys
e coloque-o no diretório ssh no cartão de memória do smartphone.
Bash, tmux, mc

O servidor SSH no próprio smartphone oferece ótimas oportunidades,


mas podem ser ainda maiores se você instalar ferramentas clássicas
como bash, tmux e mc no seu smartphone. O mc(midnight commander)
também permite que você navegue confortavelmente pelo cartão de
memória.
Iremos instalar o bash, tmux, mc e nano, preste atenção nas etapas e
será necessário der privilégios de usuário root no smartphone.
Então, baixe o Terminal IDE, renomeie o pacote APK em ZIP,
descompacte e encontre o arquivo
assets/[Link].mp3
renomeie, remova a extensão mp3 e descompacta. Dentro haverá muitos
diretórios e arquivos, dos quais só estamos interessados no
system/bin
e
system/etc/terminfo

O primeiro contém os utilitários que precisamos, copie aqueles que


você precisa para um diretório separado. O segundo é necessário para
o funcionamento correto dos utilitários. Selecione os utilitários e o
diretório terminfo para enviar no cartão de memória. Em seguida,
conecte-se a ele via SSH e insira os seguintes comandos para
habilitar a modificação do diretório do sistema:
$ su
# mount -o remount,rw /system

Em seguida, copie todas as utilidades necessárias para


/system/xbin/

e defina o código de permissão para eles:


# cp bash /system/xbin/
# chmod 755 /system/xbin/bash

Em seguida, crie um arquivo


/sdcard/ssh/.bashrc
e coloque as seguintes linhas nele:
export TERMINFO=/sdcard/terminfo
export TMPDIR=/data/local/tmp
export PS1="\u@\h:\w \$ "
Abra as configurações do SimpleSSHD e especifique a opção Login Shell
para
/system/xbin/bash
Pare e reinicie o servidor. Na próxima vez que você fizer login no
SSH, o bash será aberto e os utilitários que você copiou estarão
disponíveis.
Para garantir o funcionamento correto do Vim e do mc, copie para o
cartão de memória também os diretórios
etc/mc
e
etc/vim
E no arquivo
/sdcard/ssh/.bashrc
adicione as linhas:
export MC_DATADIR=/sdcard/mc
export VIMRUNTIME=/sdcard/vim
Rsync

O servidor SSH nos permite usar o rsync, um poderoso utilitário para


arquivos de sincronização e backup. Rsync permite que você execute
rápido uma sincronização bidirecional de arquivos entre duas
máquinas(em nosso caso numa máquina e um smartphone) com o
bombeamento de arquivos novos e modificados e a possibilidade de
retomar a sincronização interrompida.
O exemplo mais simples de usar o rsync em conjunto com um smartphone:
$ rsync --update --progress -e 'ssh -p 2222' -azv
[Link]:/sdcard/DCIM/Camera ~/Photos

Este comando copiará todas as fotos do smartphone para o diretório


~/Photos
Sobre as opções do pacote
-azv
neste caso significa que o diretório deve ser transferido como está
com todos os seus subdiretórios e direitos de acesso(opção -a).
-z
realiza uma compressão dos dados e a -v é modo verboso.

Comando reverso, copie dados da máquina para o smartphone:


$ rsync --delete --progress -e 'ssh -p 2222' -azv ~/Books
[Link]:/sdcard/Books

Aqui usamos a opção --delete para excluir arquivos que foram


excluídos do diretório local ~/Books.
Por padrão, se a conexão for encerrada, o rsync eliminará os arquivos
parcialmente transferidos. Para evitar isso, você pode usar a opção
--partial o que fará com que o rsync guarde os arquivos não entregues
e retome os carregamentos na próxima vez que o comando for executado.
SSHButton

Ok, nós nos conectamos ao smartphone, os arquivos foram


sincronizados, mas e se precisarmos de uma conexão SSH reversa do
smartphone para o computador? Neste caso, qualquer uma das dezenas de
clientes SSH para Android(ConnectBot por exemplo), funcionará se,
claro, você estiver pronto para inserir comandos no teclado de tela
sensível e pequena.
Se você não estiver pronto, sua escolha é o aplicativo do SSHButton,
que permite que você execute o comando desejado na máquina desejada
com o botão de um comando. A interface do SSHButton pode não ser tão
bela, mas o aplicativo funciona bem. Basta iniciar o SSHButton,
depois Menu > Adicionar e digite o comando desejado, o endereço do
servidor SSH, o login e a senha.
Links para os utilitários do artigo:

WiFi ADB: [Link]


id=[Link]

ADB-sync: [Link]

adbfs: [Link]

Go-mptfs: [Link]

SimpleSSHD: [Link]
id=[Link]

BusyBox: [Link]
id=[Link]

Terminal IDE: [Link]


ide/[Link]

Rsync: [Link]

ConnectBot: [Link]
id=[Link]

SSHButton: [Link]
id=[Link]

Hacking Brasil
por Ryoon Ivo

Você também pode gostar