Ce projet propose le partage de connexion inversé sur adb
pour Android : il permet aux appareils d'utiliser la connexion Internet de l'ordinateur sur lequel ils sont branchés. Il ne nécessite aucun accès root (ni sur l'appareil ni sur l'ordinateur). Il fonctionne sous GNU/Linux , Windows et Mac OS .
Actuellement, il relaie TCP et UDP sur le trafic IPv4, mais il ne prend pas (encore ?) en charge IPv6.
Ce projet n'est plus activement maintenu, seuls les bloqueurs majeurs (comme les problèmes de build) sont corrigés. Cela devrait quand même fonctionner.
Deux implémentations de Gnirehtet sont disponibles :
Utilisez l'implémentation Rust . Le binaire natif consomme moins de CPU et de mémoire et ne nécessite pas d'environnement d'exécution Java .
Le serveur relais de Gnirehtet n'était initialement implémenté qu'en Java. Comme avantage, le même « binaire » s’exécute sur chaque plate-forme sur laquelle le runtime Java 8 est installé. Il est toujours maintenu pour fournir une alternative fonctionnelle en cas de problèmes avec la version Rust.
L'application Android nécessite au minimum l'API 21 (Android 5.0).
Pour la version Java uniquement, Java 8 (JRE) est requis sur votre ordinateur. Sur les distributions basées sur Debian, installez le package openjdk-8-jre
.
Vous avez besoin d'une version récente d'adb (là où adb reverse
est implémenté, il fonctionne avec la 1.0.36).
Il est disponible dans les outils de la plateforme Android SDK.
Sur les distributions basées sur Debian, vous pouvez également installer le package android-tools-adb
.
Sous Windows, si vous avez besoin adb
uniquement pour cette application, téléchargez simplement les outils de la plateforme et extrayez les fichiers suivants dans le répertoire gnirehtet :
adb.exe
AdbWinApi.dll
AdbWinUsbApi.dll
Assurez-vous d'avoir activé le débogage adb sur vos appareils.
Si vous utilisez Homebrew, la mise en route est très rapide. Pour installer la version Rust :
brew install gnirehtet
Téléchargez la dernière version dans la version souhaitée.
gnirehtet-rust-linux64-v2.5.1.zip
gnirehtet-rust-win64-v2.5.1.zip
gnirehtet-rust-macos64-v2.2.1.zip
(ancienne version)Puis extrayez-le.
Les archives Linux et MacOS contiennent :
gnirehtet.apk
gnirehtet
L'archive Windows contient :
gnirehtet.apk
gnirehtet.exe
gnirehtet-run.cmd
gnirehtet-java-v2.5.1.zip
Puis extrayez-le. Les archives contiennent :
gnirehtet.apk
gnirehtet.jar
gnirehtet
gnirehtet.cmd
gnirehtet-run.cmd
Remarque : Sous Windows, remplacez ./gnirehtet
par gnirehtet
dans les commandes suivantes.
L'application n'a pas d'interface utilisateur et est destinée à être contrôlée uniquement depuis l'ordinateur.
Si vous souhaitez activer le partage de connexion inversé pour exactement un appareil, exécutez simplement :
./gnirehtet run
Le partage de connexion inversé reste actif jusqu'à ce que vous appuyiez sur Ctrl+C .
Sous Windows, pour plus de commodité, vous pouvez double-cliquer sur gnirehtet-run.cmd
à la place (il exécute simplement gnirehtet run
, sans nécessiter d'ouvrir un terminal).
Le tout premier démarrage devrait ouvrir une fenêtre contextuelle pour demander l'autorisation :
Un logo "clé" apparaît dans la barre d'état chaque fois que Gnirehtet est actif :
Vous pouvez également activer le partage de connexion inversé pour tous les appareils connectés (présents et futurs) en appelant :
./gnirehtet autorun
Vous pouvez exécuter les actions séparément (cela peut être utile si vous souhaitez inverser le lien vers plusieurs appareils simultanément).
Démarrez le serveur relais et laissez-le ouvert :
./gnirehtet relay
Installez l' apk
sur votre appareil Android :
./gnirehtet install [serial]
Dans un autre terminal, pour chaque client, exécutez :
./gnirehtet start [serial]
Pour arrêter un client :
./gnirehtet stop [serial]
Pour réinitialiser le tunnel (utile pour rétablir la connexion lorsqu'un appareil est débranché et rebranché alors que gnirehtet est actif) :
./gnirehtet tunnel [serial]
Le paramètre série est requis uniquement si adb devices
génèrent plusieurs appareils.
Pour les options avancées, appelez ./gnirehtet
sans arguments pour obtenir plus de détails.
Le programme gnirehtet
expose une interface de ligne de commande simple qui exécute des commandes de niveau inférieur. Vous pouvez les appeler manuellement à la place.
Pour démarrer le serveur relais :
./gnirehtet relay
Pour installer l'apk :
adb install -r gnirehtet.apk
Pour démarrer un client :
adb reverse localabstract:gnirehtet tcp:31416
adb shell am start -a com.genymobile.gnirehtet.START
-n com.genymobile.gnirehtet/.GnirehtetActivity
Pour arrêter un client :
adb shell am start -a com.genymobile.gnirehtet.STOP
-n com.genymobile.gnirehtet/.GnirehtetActivity
ADB
définit un chemin personnalisé vers l'exécutable adb
:
ADB=/path/to/my/adb ./gnirehtet run
GNIREHTET_APK
définit un chemin personnalisé vers gnirehtet.apk
:
GNIREHTET_APK=/usr/share/gnirehtet/gnirehtet.apk ./gnirehtet run
rev <<< tethering
(dans Bash )
Lisez la page des développeurs.
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.