18 votes

Android USB reverse tethering : Comment tromper les applications

USB reverse tethering = Le téléphone portable obtient une connexion réseau du PC via USB.

Je sais comment faire du tethering USB inversé sauf pour un problème : de nombreuses applications Android vont vérifier la connexion réseau en utilisant le code ci-dessous avant de faire tout travail utile :

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

Le problème est que, lors de l'utilisation de l'USB reverse tethering, le code ci-dessus signalera l'absence de connexion réseau. Cependant, il y a une connexion réseau (qui est l'USB reverse tethering lui-même), et ping, wget et tous les programmes qui ne font pas cette vérification stupide fonctionnent bien.

La question est donc la suivante : comment puis-je pirater le système pour que cette vérification de la connexion réseau renvoie un résultat positif (afin de tromper ces applications) ?

BTW. J'utilise Cyanogenmod 7. Et toute solution spécifique à ce MOD est également la bienvenue.

0 votes

Cette question aborde le même problème que Android.stackexchange.com/questions/11728/

0 votes

Tony Beta Lambda a proposé une solution valable - vous devriez envisager de l'accepter.

9voto

Flow Points 18254

Je dirais qu'il y a uniquement Des solutions spécifiques pour chaque modèle. Presque toutes les applications que je connais utilisent cette API Android, et donc le code extrait dans vos questions, pour vérifier la connectivité du réseau.

Il faudrait modifier le code source de Cyanogen pour que le système d'exploitation (Android+Cyanogen) soit conscient de la connectivité réseau du tethering inverse USB et renvoie les bonnes informations à l'application qui demande l'état actuel du réseau. Je ne crois pas que cela puisse être fait avec une couche artificielle entre l'API et l'application qui "trompe" l'application dans ce domaine. Il est plus réaliste que Cyanogen implémente la gestion du tethering inversé en imitant une connexion WiFi active. Vous devriez leur demander d'aborder ce sujet. Peut-être qu'à l'avenir Android aura un support officiel pour le reverse tethering :)

5voto

Tony Beta Lambda Points 166

Je vois que c'est une question assez ancienne, mais au cas où quelqu'un aurait fait une recherche et serait arrivé ici. Il existe un module assez récent appelé FakeWifiConnection basé sur le cadre Xposed. L'installation et l'utilisation devraient être assez simples.

0 votes

C'est très bien ; vous devriez poster la même réponse dans la rubrique Android.stackexchange.com/questions/11728/

0 votes

@Michaël Je pense que cette question a été marquée en doublon.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X