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