¿Cómo puedo hacer que Anclaje USB inverso funcione en mi dispositivo KitKat? Ya lo tengo funcionando en mi dispositivo Jellybean

FWIW Reverse USB tethering funciona muy bien en mi dispositivo Jellybean, supongamos que tiene el número de serie 0123456789ABCDEF, estos son los comandos que uso para que funcione:

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"

Ejecuto estos comandos en mi máquina Linux a la que está conectado el teléfono, y en mi dispositivo Jellybean, el navegador cargará un sitio web utilizando datos a través de USB.

Ahora tengo un dispositivo KitKat y tengo un script similar, uso

"service call connectivity 34 i32 1"

en la primera línea, ya que kitkat necesita un comando ligeramente diferente, por lo que incluso después de que todos mis comandos se ejecutan sin mensajes de error, cuando cargo el navegador en el teléfono, simplemente obtengo 'página no encontrada'

¿Hay un fue para arreglar esto? Intenté hacer ping a Google desde el teléfono y los pings funcionan, así que supongo que se trata de un problema de software.

¿Alguien ha logrado hacer esto con éxito en KitKat? Gracias

EDITAR: he realizado algunas pruebas más y creo que es un problema de DNS. Hacer ping a las direcciones IP funciona bien, pero hacer ping a los nombres de host da 'ping: host desconocido' en el dispositivo kitkat. Hacer ping a los nombres de host funciona perfectamente en el dispositivo Jellybean, los tengo conectados a la misma máquina Linux en este momento, por lo que la única diferencia aquí son las versiones de Android.

Tengo la sensación de que hay algunos pasos o comandos adicionales que debo agregar a mi secuencia de comandos aquí, ya que ni siquiera puedo hacer ping al nombre de mi enrutador desde el dispositivo Kitkat, mientras que puedo hacer ping a la dirección IP sin problemas.

Respuestas (2)

Después de que algunas pruebas y errores parecen haber logrado que funcione, resulta que es un problema de DNS. Si alguien más tiene este problema, resulta que necesita algunos comandos adicionales para que KitKat funcione.

Agregué estos al final de mi script publicado anteriormente y ahora puedo hacer ping a Google y obtener pings devueltos:

adb shell su -c 'ndc resolver setifdns rndis0 "" 192.168.1.1 192.168.1.1'
adb shell su -c 'ndc resolver setdefaultif rndis0'

Sustituya 192.168.1.1 con la dirección IP de su enrutador, usa esta dirección para DNS.

Ahora voy a probar el DNS de Google (8.8.8.8) y veré si todavía funciona, y también veré si puedo hacer que funcione bien con mi dispositivo Jellybean conectado a la misma caja de Linux.

¿Has probado esto? http://forum.xda-developers.com/showthread.php?t=1371345 Dice que es compatible con versiones de Android inferiores a 5.0.

No puedo usar ese software con miedo ya que la máquina que estoy usando para dar acceso a la red de mi teléfono está ejecutando Debian Linux. Me temo que Windows no es una opción aquí. Leeré la sección de solución de problemas, ya que puede tener alguna información que ayude, con suerte, puede tener alguna información sobre la configuración del servidor DNS.