USB Tether com Motorola Android

Publicado por Alessandro Martins em 29/03/2013

[ Hits: 6.563 ]

 


USB Tether com Motorola Android



USB Tether (compartilhar Internet do Celular para o PC) não é possível com o Motorola, pois esta opção não existe no aparelho. No entanto, existe em outros aparelhos que possuem o Android.

Mas sempre tem uma gambiarra, que explico a seguir:

1. Instalar o pacote "iproute2", no caso do Ubuntu e derivados já tem por padrão. No meu caso, baixei e instalei pelo gslapt. Mas é facilmente achado no pkgs.org para sua distribuição.

2. Instalar OpenVPN, também achado no pkgs.org ou (no Ubuntu):

# apt-get install openvpn

3. Precisamos do adb (binário do Android SDK). Download aqui:
4. Dar permissão de execução ao arquivo e copiá-lo pra /usr/bin. Como root:

# chmod +x adb
# cp adb /usr/bin


5. Fazer o udev reconhecer o aparelho, precisamos conhecer a ID (USB) do aparelho.

No caso, estou usando um Motorola que tem a ID "22b8". Aqui tem uma lista dos dispositivos, ou basta verificar no sistema, com o comando lsusb que retorna a ID a ser usada:

lsusb
Bus 007 Device 007: ID 22b8:41da Motorola PCS

6. Criar um arquivo no diretório /etc/udev/rules.d com o nome "91-android.rules", com um editor de texto qualquer:

# mcedit /etc/udev/rules.d/91-android.rules

7. E colocar o seguinte, levando em conta o seu nome de usuário (alemar no meu caso) e a ID do aparelho (22b8):

SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="22b8", SYMLINK+="android_adb", MODE="0666", OWNER="alemar"


Salvar e dar permissões devidas ao arquivo:

# chmod a+r /etc/udev/rules.d/91-android.rules

8. Reiniciar o udev para carregar a nova regra:

Ubuntu:

# restart udev

Vector Linux (baseada no Slackware):

# /etc/rc.d/rc.udev force-restart

9. Habilitar o USB debug no aparelho:

Config → Aplicacoes → Desenvolvimento → USB Debug

10. Conectar o aparelho e ver se ele é listado com o comando:

# adb devices
List of devices    attached
88B0401600D        device

11. Baixar o "azilink.openvpn" pra ser usado como script de conexão:

# wget http://azilink.googlecode.com/files/azilink.ovpn

Editá-lo removendo a linha:

ping 10


Na minha versão do OpenVPN (2.2.2), ela conflita com a "keepalive".

Salvar o arquivo.

12. Instalar o "azilink-release.apk" no aparelho pelo adb:
adb install -r azilink-release.apk

Para versão com Android 2.2, pode-se usar a versão normal do Azilink:
13. Abrir o azilink no aparelho e habilitar a opção: Service active

14. Agora, pode-se executar a sequência a seguir para conectar à Internet ou usar o script, que faz a mesma coisa:

adb forward tcp:41927 tcp:41927
$ sudo echo 'domain lan' > /etc/resolv.conf
$ sudo echo 'search lan' >> /etc/resolv.conf
$ sudo echo 'nameserver 192.168.56.1' >> /etc/resolv.conf
$ sudo openvpn --config azilink.ovpn


Script:

#!/bin/bash
adb forward tcp:41927 tcp:41927
sleep 2
sudo echo 'domain lan' > /etc/resolv.conf
sudo echo 'search lan' >> /etc/resolv.conf
sudo echo 'nameserver 192.168.56.1' >> /etc/resolv.conf
sleep 2
sudo openvpn --config azilink.ovpn


Obviamente, deve ter um plano de dados habilitado e funcionando no aparelho e as conexões (Wi-Fi, eth) não estar ativadas.

É mais fácil rebootar e entrar no Windows né!? Tenho que concordar, mas onde está a diversão nisso?!

Fontes


Dica também publicada em: David Lopan - USB Tether com motorola android

Outras dicas deste autor

Acessar o site do banco Banrisul com o leitor de cartões no Arch Linux / Manjaro

Como instalar RemixOS com dual boot no Linux

Leitura recomendada

Dual boot com Windows 8 UEFI e Linux Mint Debian Edition (LMDE)

Evitando bruteforce de SSH utilizando o Fail2ban

O que é máscara de rede - entendendo o seu 255.255.255.0

Asterisk + X100P + Debian 4.0r

FreeBSD com Packet Filter

  

Comentários
[1] Comentário enviado por lopanrs em 02/04/2013 - 21:26h

Caso tenha o erro: Linux ip link set failed: could not execute external program
O parametro --iproute /sbin/ip no script ou na linha de comando do openvpn resolve se o programa estiver em /sbin note que pode estar em outro lugar, O comando 'whereis ip' acha ele pra voce.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts