FWIW Reverse USB tethering funciona muy bien en mi dispositivo Jellybean, vamos a suponer que tiene el número de serie 0123456789ABCDEF, aquí están los comandos que utilizo para hacerlo funcionar:
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 usando datos sobre USB.
Ahora tengo un dispositivo KitKat, y tengo una secuencia de comandos similar, yo uso
"service call connectivity 34 i32 1"
en la primera línea ya que kitkat necesita un comando ligeramente diferente, así que incluso después de que todos mis comandos se ejecuten sin mensajes de error, cuando cargo el navegador en el teléfono simplemente obtengo 'página no encontrada'
¿Hay alguna forma de arreglar esto? He probado a hacer ping a Google desde el teléfono y los pings funcionan, así que asumo que es un problema de software.
¿Alguien ha conseguido hacer esto en KitKat? Gracias
EDIT: He hecho algunas pruebas más, y creo que es un problema de DNS. Ping direcciones IP funciona bien, pero ping nombres de host da 'ping: host desconocido' en el dispositivo kitkat. Hacer ping a los nombres de host funciona perfectamente en el dispositivo Jellybean, tengo ambos conectados a la misma máquina Linux en este momento por lo que la única diferencia aquí es la versión de Android.
Tengo la sensación de que hay algunos pasos o comandos adicionales que necesito añadir a mi script aquí, ya que ni siquiera puedo hacer ping al nombre de mi router desde el dispositivo Kitkat, mientras que puedo hacer ping a la dirección IP sin problemas.