Partage de connexion inversé USB Android: comment tromper les applications

18

Partage de connexion inversé USB = le téléphone portable obtient la connexion réseau du PC via USB.

Je sais comment utiliser le partage de connexion inversé USB, sauf pour un problème: de nombreuses applications Android vérifieront 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 du partage de connexion inversé USB, le code ci-dessus ne signalera aucune connexion réseau. Cependant, il existe une connexion réseau (qui est le partage de connexion inversé USB lui-même), et ping, wget et tous les programmes ne faisant pas cette vérification stupide fonctionnent bien.

La question est donc: comment puis-je pirater le système pour laisser cette vérification de connexion réseau retourner le succès (afin que je puisse tromper ces applications)?

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

Cyker
la source
Cette question porte sur le même problème que android.stackexchange.com/questions/11728/…
Débit
Tony Beta Lambda a publié une solution valide - vous devriez envisager de l'accepter.
Michaël

Réponses:

5

Je vois que c'est une question plutôt ancienne mais au cas où quelqu'un googlerait et arriverait ici. Il existe un module assez nouveau appelé FakeWifiConnection basé sur le framework Xposed. L'installation et l'utilisation devraient être assez simples.

Tony Beta Lambda
la source
C'est super; vous devriez poster la même réponse dans android.stackexchange.com/questions/11728/…
Michaël
@ Michaël Je pense que cette question a été marquée en double
Tony Beta Lambda
9

Je dirais qu'il n'y a que des solutions spécifiques au Mod. Presque toutes les applications que je connais utilisent cette API Android, et donc le code a été coupé dans vos questions, pour les vérifications de la connectivité réseau.

Il faudrait modifier la source Cyanogen pour que le système d'exploitation (Android + Cyanogen) soit au courant de la connectivité réseau du partage de connexion inversé USB et renvoie les bonnes informations à l'application demandant 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 en cela. Il est plus réaliste que Cyanogen implémente la gestion du partage de connexion 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 partage de connexion inversé. :)

Couler
la source