Je veux communiquer entre mon appareil Android et ma boîte Linux sur IP via le mode d'interface réseau USB. L'appareil que j'utilise est un OnePlus One exécutant CM12.1 nightly builds. Il est rooté et SELinux est réglé sur PERMISSIVE
. La séparation des espaces de noms des montagnes est également désactivée.
J'ai connecté mon OPO à ma boîte Linux et l'ai mis en mode d'interface réseau par le biais d'un piratage de réflexion Java et de la permission MANAGE_USB réservée au système. (Je n'utilise pas le paramètre standard de tethering parce que je veux utiliser ma boîte Linux comme passerelle et non l'inverse). J'ai utilisé ip addr add
pour ajouter une adresse IP aux deux extrémités (boîte Linux et OPO) et ensuite ajouter une route avec ip route
via ma boîte Linux pour l'accès à l'internet. J'ai également activé la redirection IPv4 du côté de la boîte Linux, ainsi que l'activation de toutes les fonctions nécessaires à l'accès à Internet. iptables
règles.
Mon problème est le suivant : seulement root
peuvent communiquer sur l'interface. Par exemple, avec ma boîte Linux à 10.42.0.1
et mon OPO à 10.42.0.2
à travers l'interface réseau USB, en exécutant ping 10.42.0.1
ou ping 8.8.8.8
du côté d'Android sans passer par un su
coquille ne fonctionnera pas . En exécutant exactement les mêmes commandes que root
fonctionne parfaitement. Les mêmes commandes sur l'interface WiFi du côté Android fonctionnent bien sans Root.
Je suppose qu'il s'agit d'une nouvelle fonction de sécurité mise en œuvre dans Android 5.0 / 5.1, car elle fonctionnait bien dans KitKat. Quelqu'un sait-il exactement ce que cela peut être ?