Comment inverser Tether de Linux à Android avec Gnirehtet



Dans le passé, l’établissement d’une connexion internet inversée entre Linux et Android nécessitait des configurations complexes impliquant des tables IP, des connexions pontées et d’autres outils. Heureusement, le travail d’un développeur a permis de simplifier grandement cette opération.

Voici Gnirehtet ! Il s’agit d’un utilitaire expérimental fonctionnant en tant que service d’arrière-plan pour créer un système de partage de connexion USB inversé fonctionnel, permettant à votre appareil Android d’utiliser la connexion internet de votre machine Linux.

Important : Avant de suivre ce tutoriel, assurez-vous que votre appareil Android est rooté. Sans accès root, la plupart des opérations nécessaires au fonctionnement de Gnirehtet ne seront pas possibles.

L’obtention des droits root sur Android est devenue plus simple qu’avant, et de nombreux appareils offrent des procédures détaillées. Consultez les forums XDA pour plus d’informations.

Installation des outils Android

Le partage de connexion inversé avec Gnirehtet repose sur les outils de développement Android. Avant de continuer, il est nécessaire de les installer sur votre distribution Linux. La plupart des distributions proposent des processus d’installation simples. Ouvrez un terminal et suivez les instructions appropriées à votre système d’exploitation.

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

Distribution Linux générique

Google offre un bon support pour la plateforme Linux, ce qui permet d’obtenir facilement le kit de développement Android (SDK). Pour l’installer sur votre système, rendez-vous sur la page officielle. Décompressez l’archive téléchargée et suivez les instructions.

Installation de Gnirehtet

Gnirehtet est disponible sur Github. Le code source est téléchargeable et peut être compilé. Cependant, il est plus simple de se rendre sur la page de publication et de télécharger une version précompilée du logiciel. Vous y trouverez une version Java et une version Rust. Pour simplifier l’utilisation, il est recommandé de télécharger la version Rust, car elle ne nécessite pas d’environnement d’exécution Java.

Note : Si vous optez pour la version Java, vous devrez installer l’environnement d’exécution Java sur Linux.

Pour télécharger la dernière version de Gnirehtet, ouvrez un terminal et utilisez la commande wget.

wget https://github.com/Genymobile/gnirehtet/releases/download/v2.2.1/gnirehtet-rust-linux64-v2.2.1.zip

Vous pouvez également télécharger la version Java avec :

wget https://github.com/Genymobile/gnirehtet/releases/download/v2.2.1/gnirehtet-java-v2.2.1.zip

Une fois le téléchargement terminé, utilisez l’utilitaire de décompression pour extraire le contenu de l’archive Zip.

unzip gnirehtet-rust-linux64-v2.2.1.zip

ou

unzip gnirehtet-java-v2.2.1.zip

Ouvrez le gestionnaire de fichiers et accédez au dossier « Gnirehtet ». Copiez le fichier gnirehtet.apk sur votre appareil Android et installez-le.

Ouvrez un terminal et utilisez la commande CD pour vous rendre dans le dossier Gnirehtet décompressé.

cd ~/gnirehtet-*

Configuration d’Android pour le partage de connexion

Gnirehtet ne fonctionnera pas sans quelques ajustements au système Android. Commencez par ouvrir les « Paramètres ». Rendez-vous dans « À propos du téléphone » et appuyez plusieurs fois sur le numéro de build jusqu’à ce que vous voyiez le message « Vous êtes maintenant un développeur ».

Allez dans les options pour les développeurs, trouvez le débogage « USB » et activez-le.

Ouvrez un terminal et démarrez un serveur Adb.

su -

ou

sudo -s
adb start server

Déverrouillez votre appareil Android et cochez la case pour « toujours accepter » les connexions ADB. Retournez ensuite au terminal exécutant le serveur ADB et arrêtez-le.

adb kill-server

Utilisation de Gnirehtet

Gnirehtet établit une connexion entre votre PC Linux et votre appareil Android via USB. Pour démarrer une connexion, ouvrez un terminal et obtenez un shell root.

su -

ou

sudo -s

Avec un shell root, l’application Gnirehtet peut fonctionner sans problème avec le système Linux et communiquer avec l’appareil Android via ADB. À ce moment-là, démarrez la connexion :

./gnirehtet autorun

Au démarrage de la connexion avec Gnirehtet, une nouvelle invite de connexion VPN apparaîtra sur votre appareil Android. Déverrouillez-le et acceptez la connexion.

Après avoir validé la connexion VPN, Gnirehtet commencera à acheminer une connexion internet via USB directement vers l’appareil Android.

Reconnexion

Il arrive que les câbles USB soient débranchés. Si cela se produit pendant que Gnirehtet est en cours d’exécution, la connexion sera interrompue. Heureusement, le programme possède une fonctionnalité permettant de restaurer instantanément une connexion perdue.

Pour restaurer une connexion, ouvrez un terminal, obtenez un shell root avec su ou exécutez la commande avec sudo.

cd ~/gnirehtet-*

Dans le dossier Gnirehtet, exécutez le programme avec l’option de redémarrage. Cela relancera le système de partage de connexion inversé.

sudo ./gnirehtet restart

Une fois la commande exécutée, déverrouillez l’appareil Android et acceptez à nouveau la connexion VPN pour finaliser le processus de redémarrage.

Arrêter la connexion

Le partage de connexion inversé peut être arrêté à tout moment. Pour ce faire, ouvrez un nouveau terminal (laissez celui exécutant la connexion ouvert) et suivez les instructions ci-dessous :

cd ~/gnirehtet-*

sudo ./gnirehtet stop

Parfois, la commande d’arrêt ne parvient pas à terminer la connexion. Si cela se produit, vous devrez forcer l’arrêt de Gnirehtet.

Pour forcer l’arrêt de Gnirehtet, recherchez l’identifiant de processus (PID) à l’aide de pidof, puis arrêtez le programme avec la commande kill.

pidof ./gnirehtet

sudo kill -9 numéro_du_processus