18 votos

Anclaje USB para Android: Cómo engañar a las aplicaciones

USB reverse tethering = El móvil se conecta a la red desde el PC vía USB.

Sé cómo hacer tethering inverso por USB, excepto por un problema: muchas aplicaciones de Android comprobarán la conexión de red usando el código siguiente antes de hacer cualquier trabajo útil:

ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = connectivityManager.getActiveNetworkInfo();

El problema es que, cuando se utiliza el USB reverse tethering, el código anterior informará de que no hay conexión de red. Sin embargo, hay una conexión de red (que es el propio USB reverse tethering), y ping, wget y todos los programas que no hacen esta estúpida comprobación funcionan bien.

Así que la pregunta es: ¿Cómo puedo hackear el sistema para que esta comprobación de conexión de red devuelva éxito (para poder engañar a estas aplicaciones)?

POR CIERTO. Yo uso Cyanogenmod 7. Y cualquier solución específica para este MOD también es bienvenida.

0 votos

Esta pregunta aborda el mismo problema que Android.stackexchange.com/questions/11728/

0 votos

Tony Beta Lambda ha publicado una solución válida; deberías considerar aceptarla.

9voto

Flow Puntos 14132

Yo diría que hay sólo Soluciones específicas para los mods. Casi todas las aplicaciones que conozco utilizan esta API de Android, y por lo tanto el código recortado en sus preguntas, para comprobar la conectividad de la red.

Habría que cambiar la fuente de Cyanogen para que el SO (Android+Cyanogen) sea consciente de la conectividad de red de USB reverse tethering y devuelva la información correcta a la app solicitando el estado actual de la red. No creo que esto se pueda hacer con alguna capa artificial entre la API y la app que "engañe" a la app en este sentido. Es más realista que Cyanogen implemente el manejo del tethering inverso imitando una conexión WiFi activa. Deberías pedirles que aborden este tema. Tal vez en el futuro Android tenga soporte oficial para el tethering inverso. :)

5voto

shane Puntos 24

Veo que esta es una pregunta bastante antigua pero por si alguien buscó en Google y llegó aquí. Hay un módulo bastante nuevo llamado FakeWifiConnection basado en el marco Xposed. La instalación y el uso deberían ser bastante sencillos.

0 votos

Eso es genial; deberías publicar la misma respuesta en Android.stackexchange.com/questions/11728/

0 votos

@Michaël Creo que esa pregunta fue marcada como duplicada

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X