Android USB Reverse Tethering: So täuschen Sie die Apps

18

USB Reverse Tethering = Das Mobiltelefon erhält eine Netzwerkverbindung vom PC über USB.

Ich weiß, wie man USB-Reverse-Tethering ausführt, mit Ausnahme eines Problems: Viele Android-Apps überprüfen die Netzwerkverbindung anhand des folgenden Codes, bevor sie nützliche Arbeiten ausführen:

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

Das Problem ist, dass der obige Code bei Verwendung von USB-Reverse-Tethering keine Netzwerkverbindung meldet. Es gibt jedoch eine Netzwerkverbindung (das ist das USB-Reverse-Tethering selbst), und Ping, Wget und alle Programme, die diese dumme Prüfung nicht durchführen, funktionieren gut.

Die Frage ist also: Wie kann ich das System hacken, um diese Netzwerkverbindung auf Erfolg prüfen zu lassen (damit ich diese Apps zum Narren halten kann)?

Übrigens. Ich verwende Cyanogenmod 7. Und jede Lösung, die für dieses MOD spezifisch ist, ist auch willkommen.

Cyker
quelle
Diese Frage beschäftigt sich mit dem gleichen Problem wie android.stackexchange.com/questions/11728/…
Flow
Tony Beta Lambda hat eine gültige Lösung veröffentlicht. Sie sollten in Erwägung ziehen, diese zu akzeptieren.
Michaël

Antworten:

5

Ich sehe, dass dies eine ziemlich alte Frage ist, aber für den Fall, dass jemand gegoogelt hat und hierher gekommen ist. Es gibt ein ziemlich neues Modul namens FakeWifiConnection, das auf dem Xposed-Framework basiert. Die Installation und Verwendung sollte recht einfach sein.

Tony Beta Lambda
quelle
Das ist großartig; Sie sollten die gleiche Antwort in android.stackexchange.com/questions/11728/…
Michaël
@ Michaël Ich denke, diese Frage wurde doppelt markiert
Tony Beta Lambda
9

Ich würde sagen, dass es nur Mod-spezifische Lösungen gibt. Nahezu jede App, die ich kenne, verwendet diese Android-API und daher den Code, der in Ihren Fragen abgefragt wurde, für Netzwerkkonnektivitätsprüfungen.

Man müsste die Cyanogen-Quelle ändern, damit das Betriebssystem (Android + Cyanogen) die USB-Reverse-Tethering-Netzwerkkonnektivität erkennt und die richtigen Informationen an die App zurückgibt, die den aktuellen Netzwerkstatus anfordert. Ich glaube nicht, dass dies mit einer künstlichen Schicht zwischen der API und der App getan werden kann, die die App in diese "täuscht". Es ist realistischer, dass Cyanogen die Behandlung von Reverse Tethering durch Nachahmung einer aktiven WiFi-Verbindung implementiert. Sie sollten sie bitten, dieses Thema anzusprechen. Vielleicht hat Android in Zukunft offizielle Unterstützung für Reverse Tethering. :)

Fließen
quelle