Quiero comunicarme entre mi dispositivo Android y mi caja de Linux sobre IP a través del modo de interfaz de red USB. El dispositivo que estoy usando es un OnePlus One corriendo CM12.1 nightly builds. Es rooteado y SELinux se establece en PERMISSIVE
. La separación de espacios de nombres de montaje también está desactivada.
He conectado mi OPO a mi caja de Linux y lo puse en modo de interfaz de red a través de algunos reflejos de Java y el permiso MANAGE_USB sólo del sistema. (No estoy usando la configuración estándar de tethering porque quiero usar mi caja de Linux como la puerta de enlace y no al revés). He utilizado ip addr add
para agregar una dirección IP en ambos extremos (caja de Linux y OPO) y luego agregó una ruta con ip route
a través de mi caja de Linux para el acceso a Internet. También he habilitado el reenvío de IPv4 en el lado de la caja de Linux, así como la habilitación de todo lo necesario iptables
reglas.
Mi problema es el siguiente: sólo root
pueden comunicarse a través de la interfaz. Por ejemplo, con mi caja Linux en 10.42.0.1
y mi OPO en 10.42.0.2
a través de la interfaz de red USB, ejecutando ping 10.42.0.1
o ping 8.8.8.8
en el lado de Android sin ejecutar desde un su
shell no funcionará . Ejecutando exactamente los mismos comandos que root
funciona perfectamente. Los mismos comandos a través de la interfaz WiFi en el lado de Android funcionan bien sin Root.
Estoy asumiendo que se trata de alguna nueva característica de seguridad implementada en Android 5.0 / 5.1, ya que funcionaba bien en KitKat. Alguien sabe exactamente lo que podría ser?