USB Tether com Motorola Android

Publicado por Alessandro Martins em 29/03/2013

[ Hits: 6.561 ]

 


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

VMware Player no Fedora 21 x64

Convertendo formato de pacotes com alien

Ralink RT2570 no SuSE 9.x

Instalação do driver Nvidia com o Envy + gerenciador de janelas Beryl

Roteamento com marcação de pacotes

  

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