Bem, posso compartilhar com você minha experiência:
No telefone (Samsung J1 (Android 5.1.1) enraizado ):
Opções do desenvolvedor ativas > > Depuração USB ativa > > Eu estou indo para Anchorage para rede e zona portátil e ativa Anchorage (desculpe a tradução, eu sou de Cuba) para rede USB > > Quando faço isso eu abro o emulador do Terminal Virtual (um apk) e acesso como root ( su
) e checo as interfaces de rede com ifconfig
, que retorna uma "nova" interface chamada rndis0 e com IP 192.168.42.129
No PC com o Debian:
Eu abro o terminal e acesso como root (só para não ter que colocar sudo
a cada vez) > > ifconfig
e retorna uma "nova" interface chamada usb0 com IP 192.168.42.111
Se você pingar do telefone para o PC e vice-versa e tudo deve estar ok (eu recebo respostas nos dois lados), agora é hora de dar ao telefone um gateway, então no emulador de terminal do telefone:
route add default gw 192.168.42.111 dev rndis0
> > colocando aqui o IP do PC
Neste ponto, você deve ser capaz de fazer ping no DNS do Google (tanto por IP quanto por nome) do emulador de terminal e, se sua conexão com a Internet não precisar de uma configuração de servidor proxy, você tem internet em seu telefone via cabo USB ... / p>
PS: Se o seu PC e telefone não usarem IP automaticamente, use isto:
No PC:
ifconfig usb0 10.42.0.1 netmask 255.255.255.0
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -j MASQUERADE
No telefone:
ifconfig rndis0 10.42.0.2 netmask 255.255.255.0
busybox route add default gw 10.42.0.1 dev rndis0
E configure o DNS (ainda celular):
mount -o remount, rw /system
echo 'nameserver 192.168.6.40' > /system/etc/resolv.conf
mount -o remount, ro /system
iptables -t nat -I OUTPUT 1 -p udp --dport 53 -j DNAT --to-destination 192.168.6.40:53