No passado, realizar o tethering reverso do Linux para um dispositivo Android exigia o uso de configurações complexas de tabelas IP, conexões em ponte e outras ferramentas intrincadas. No entanto, com o esforço dedicado de um desenvolvedor, essa tarefa se tornou muito mais simples.
Conheça o Gnirehtet! Este programa experimental opera como um serviço em segundo plano, estabelecendo um sistema funcional de tethering reverso via USB. Isso permite que você compartilhe a conexão de internet do seu computador Linux com seu dispositivo Android.
Observação Importante: Antes de prosseguir com este guia, certifique-se de que seu dispositivo Android tenha acesso root. Sem privilégios de root, várias operações cruciais para o Gnirehtet não funcionarão corretamente.
Obter acesso root em dispositivos Android está mais fácil do que nunca, e há diversos tutoriais detalhados disponíveis para muitos modelos. Consulte os fóruns XDA para mais informações.
Instalação das Ferramentas do Android
O tethering reverso com o Gnirehtet se baseia nas ferramentas de desenvolvimento do Android. Antes de continuar, você precisará instalá-las no seu sistema Linux. Felizmente, a maioria das distribuições Linux simplificou esse processo. Abra o terminal e siga as instruções relevantes para o seu sistema:
Ubuntu |
sudo apt install android-tools |
Debian |
sudo apt-get install android-tools |
Arch Linux |
sudo pacman -S android-tools |
Fedora |
sudo dnf install android-tools |
OpenSUSE |
sudo zypper in android-tools |
Linux Genérico |
O Google oferece excelente suporte para a plataforma Linux, disponibilizando o kit de ferramentas SDK do Android. Para instalá-lo no seu sistema, acesse a página oficial. Extraia o arquivo baixado e siga as instruções fornecidas! |
Instalando o Gnirehtet
O Gnirehtet está disponível no Github. O código-fonte pode ser baixado e compilado, mas é mais fácil acessar a página de releases e baixar uma versão pré-compilada. Lá você encontrará versões em Java e Rust. Para maior praticidade, recomendamos a versão em Rust, pois dispensa a instalação do Java Runtime Environment.
Aviso: Caso opte pela versão em Java, será necessário instalar o Java Runtime Environment no seu Linux.
Para baixar a versão mais recente do Gnirehtet, abra o terminal e utilize o comando wget:
wget https://github.com/Genymobile/gnirehtet/releases/download/v2.2.1/gnirehtet-rust-linux64-v2.2.1.zip
Ou para baixar a versão Java:
wget https://github.com/Genymobile/gnirehtet/releases/download/v2.2.1/gnirehtet-java-v2.2.1.zip
Após o download do Gnirehtet, utilize a ferramenta de descompactação para extrair o conteúdo do arquivo ZIP:
unzip gnirehtet-rust-linux64-v2.2.1.zip
ou
unzip gnirehtet-java-v2.2.1.zip
Abra o gerenciador de arquivos, navegue até a pasta “Gnirehtet”, copie o arquivo gnirehtet.apk
para seu dispositivo Android e realize a instalação.
Abra o terminal e utilize o comando cd
para entrar na pasta do Gnirehtet que você acabou de extrair:
cd ~/gnirehtet-*
Configurando o Android para Tethering
O Gnirehtet requer algumas configurações adicionais no sistema operacional Android. Comece abrindo as “Configurações” do seu aparelho. Vá em “Sobre o Telefone” e toque no número da versão repetidamente até que uma mensagem “Você agora é um desenvolvedor” seja exibida.
Em seguida, vá para as opções do desenvolvedor e ative a depuração “USB”.
Abra o terminal e inicie o servidor ADB:
su -
ou
sudo -s
adb start server
Desbloqueie seu dispositivo Android e marque a opção “sempre aceitar” as conexões ADB. Volte ao terminal e encerre o servidor ADB:
adb kill-server
Utilizando o Gnirehtet
O Gnirehtet cria uma conexão entre seu computador Linux e o dispositivo Android por meio de um cabo USB. Para iniciar a conexão, abra um terminal e obtenha um shell de root:
su -
ou
sudo -s
Com acesso root, o aplicativo Gnirehtet poderá interagir com o sistema Linux e se comunicar com o dispositivo Android via ADB. Agora, inicie a conexão:
./gnirehtet autorun
Ao iniciar a conexão, um pedido de conexão VPN será exibido no seu dispositivo Android. Desbloqueie-o e aceite a conexão.
Após aceitar a conexão VPN, o Gnirehtet começará a rotear a conexão de internet via USB diretamente para seu dispositivo Android.
Reconectando
Cabo USB podem se desconectar ocasionalmente. Se isso acontecer enquanto o Gnirehtet estiver em execução, a conexão será interrompida. Felizmente, o programa oferece um recurso para restaurar a conexão rapidamente.
Para restaurar a conexão, abra um terminal e obtenha um shell root com su
ou execute com sudo
:
cd ~/gnirehtet-*
Dentro da pasta do Gnirehtet, execute o programa com a flag restart
. Isso reiniciará o sistema de tethering reverso.
sudo ./gnirehtet restart
Assim que o comando for concluído, desbloqueie o dispositivo Android e aceite a conexão VPN novamente para finalizar o processo de reinicialização.
Encerrando a Conexão
A conexão de tethering reverso pode ser interrompida quando desejado. Para isso, abra um novo terminal (deixe o terminal com a conexão em execução aberto) e execute:
cd ~/gnirehtet-* sudo ./gnirehtet stop
Em algumas ocasiões, o comando stop
pode não encerrar a conexão de tethering reverso corretamente. Nesses casos, será necessário forçar o encerramento do Gnirehtet.
Para encerrar o Gnirehtet à força, encontre o ID do processo com o comando pidof
e interrompa o programa com o comando kill
:
pidof ./gnirehtet sudo kill -9 processnumber