Este projeto fornece tethering reverso sobre adb
para Android: permite que os dispositivos usem a conexão de internet do computador ao qual estão conectados. Não requer nenhum acesso root (nem no dispositivo nem no computador). Funciona em GNU/Linux , Windows e Mac OS .
Atualmente, ele retransmite TCP e UDP sobre tráfego IPv4, mas (ainda?).
Este projeto não é mais mantido ativamente, apenas os principais bloqueadores (como problemas de construção) são corrigidos. Ainda deve funcionar, no entanto.
Duas implementações do Gnirehtet estão disponíveis:
Use a implementação Rust . O binário nativo consome menos CPU e memória e não requer um ambiente de tempo de execução Java .
O servidor de retransmissão do Gnirehtet foi inicialmente implementado apenas em Java. Como benefício, o mesmo "binário" é executado em todas as plataformas com o Java 8 runtime instalado. Ainda é mantido para fornecer uma alternativa funcional em caso de problemas com a versão Rust.
O aplicativo Android requer pelo menos API 21 (Android 5.0).
Apenas para a versão Java , o Java 8 (JRE) é necessário no seu computador. Em distros baseadas em Debian, instale o pacote openjdk-8-jre
.
Você precisa de uma versão recente do adb (onde adb reverse
é implementado, ele funciona com 1.0.36).
Está disponível nas ferramentas da plataforma Android SDK.
Em distros baseadas em Debian, você pode instalar alternativamente o pacote android-tools-adb
.
No Windows, caso você precise adb
apenas para esta aplicação, basta baixar as ferramentas da plataforma e extrair os seguintes arquivos para o diretório gnirehtet :
adb.exe
AdbWinApi.dll
AdbWinUsbApi.dll
Certifique-se de ativar a depuração adb em seu(s) dispositivo(s).
Se você usa o Homebrew, começar a usar é muito rápido. Para instalar a versão Rust:
brew install gnirehtet
Baixe a versão mais recente no sabor que você deseja.
gnirehtet-rust-linux64-v2.5.1.zip
gnirehtet-rust-win64-v2.5.1.zip
gnirehtet-rust-macos64-v2.2.1.zip
(versão antiga)Em seguida, extraia-o.
Os arquivos Linux e MacOS contêm:
gnirehtet.apk
gnirehtet
O arquivo do Windows contém:
gnirehtet.apk
gnirehtet.exe
gnirehtet-run.cmd
gnirehtet-java-v2.5.1.zip
Em seguida, extraia-o. O arquivo contém:
gnirehtet.apk
gnirehtet.jar
gnirehtet
gnirehtet.cmd
gnirehtet-run.cmd
Nota: No Windows, substitua ./gnirehtet
por gnirehtet
nos comandos a seguir.
O aplicativo não possui interface de usuário e deve ser controlado apenas pelo computador.
Se você deseja ativar o tethering reverso para exatamente um dispositivo, basta executar:
./gnirehtet run
O tethering reverso permanece ativo até você pressionar Ctrl+C .
No Windows, por conveniência, você pode clicar duas vezes em gnirehtet-run.cmd
(ele apenas executa gnirehtet run
, sem precisar abrir um terminal).
A primeira inicialização deve abrir um pop-up para solicitar permissão:
Um logotipo de "chave" aparece na barra de status sempre que o Gnirehtet está ativo:
Como alternativa, você pode ativar o tethering reverso para todos os dispositivos conectados (presentes e futuros) ligando para:
./gnirehtet autorun
Você pode executar as ações separadamente (pode ser útil se você quiser reverter o tether de vários dispositivos simultaneamente).
Inicie o servidor de retransmissão e mantenha-o aberto:
./gnirehtet relay
Instale o apk
no seu dispositivo Android:
./gnirehtet install [serial]
Em outro terminal, para cada cliente, execute:
./gnirehtet start [serial]
Para parar um cliente:
./gnirehtet stop [serial]
Para redefinir o túnel (útil para recuperar a conexão quando um dispositivo é desconectado e reconectado enquanto o gnirehtet está ativo):
./gnirehtet tunnel [serial]
O parâmetro serial é necessário apenas se adb devices
gerar mais de um dispositivo.
Para opções avançadas, chame ./gnirehtet
sem argumentos para obter mais detalhes.
O programa gnirehtet
expõe uma interface de linha de comando simples que executa comandos de nível inferior. Você pode chamá-los manualmente.
Para iniciar o servidor de retransmissão:
./gnirehtet relay
Para instalar o apk:
adb install -r gnirehtet.apk
Para iniciar um cliente:
adb reverse localabstract:gnirehtet tcp:31416
adb shell am start -a com.genymobile.gnirehtet.START
-n com.genymobile.gnirehtet/.GnirehtetActivity
Para parar um cliente:
adb shell am start -a com.genymobile.gnirehtet.STOP
-n com.genymobile.gnirehtet/.GnirehtetActivity
ADB
define um caminho personalizado para o executável adb
:
ADB=/path/to/my/adb ./gnirehtet run
GNIREHTET_APK
define um caminho personalizado para gnirehtet.apk
:
GNIREHTET_APK=/usr/share/gnirehtet/gnirehtet.apk ./gnirehtet run
rev <<< tethering
(em Bash )
Leia a página dos desenvolvedores.
Copyright (C) 2017 Genymobile
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.