FWIW Reverse USB tethering fonctionne très bien sur mon appareil Jellybean, supposons qu'il a le numéro de série 0123456789ABCDEF, voici les commandes que j'utilise pour le faire fonctionner :
adb -s 0123456789ABCDEF shell su -c 'service call connectivity 33 i32 1'
sleep 5
sudo ifconfig usb0 10.42.0.1 netmask 255.255.255.0
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
sudo iptables -t nat -A POSTROUTING -j MASQUERADE
adb -s 0123456789ABCDEF shell su -c "ifconfig rndis0 10.42.0.2 netmask 255.255.255.0"
adb -s 0123456789ABCDEF shell su -c "route add default gw 10.42.0.1 dev rndis0"
J'exécute ces commandes sur ma machine Linux à laquelle le téléphone est connecté, et sur mon appareil Jellybean le navigateur chargera un site web en utilisant les données sur USB.
Maintenant j'ai un appareil KitKat, et j'ai un script similaire, j'utilise
"service call connectivity 34 i32 1"
sur la première ligne car Kitkat a besoin d'une commande légèrement différente, mais même après que toutes mes commandes aient été exécutées sans message d'erreur, lorsque je charge le navigateur sur le téléphone, j'obtiens simplement "page non trouvée".
Y a-t-il un moyen de résoudre ce problème ? J'ai essayé d'envoyer un ping à Google depuis le téléphone et les pings fonctionnent, donc je suppose que c'est un problème logiciel ?
Quelqu'un a-t-il réussi à faire cela sur KitKat ? Merci
EDIT : J'ai fait d'autres tests, et je pense que c'est un problème de DNS. Le ping des adresses IP fonctionne bien, mais le ping des noms d'hôtes donne 'ping : unknown host' sur l'appareil Kitkat. Le ping des noms d'hôtes fonctionne parfaitement sur l'appareil Jellybean, j'ai les deux connectés à la même machine Linux en ce moment, donc la seule différence ici est la version d'Android.
J'ai le sentiment qu'il y a des étapes ou des commandes supplémentaires que je dois ajouter à mon script ici, car je ne peux même pas ping le nom de mon routeur à partir de l'appareil Kitkat, alors que je peux ping l'adresse IP sans problème.