Tethering USB Android inverso: come ingannare le app


18

Tethering inverso USB = Il cellulare ottiene la connessione di rete dal PC tramite USB.

So come eseguire il tethering inverso USB tranne un problema: molte app Android controlleranno la connessione di rete utilizzando il codice seguente prima di fare qualsiasi lavoro utile:

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

Il problema è che, quando si utilizza il tethering inverso USB, il codice sopra riportato non segnala alcuna connessione di rete. Tuttavia, esiste una connessione di rete (che è il tethering inverso USB stesso) e ping, wget e tutti i programmi che non eseguono questo stupido controllo funzionano bene.

Quindi la domanda è: come posso hackerare il sistema per consentire a questa connessione di rete di controllare il successo (in modo da poter ingannare queste app)?

BTW. Uso Cyanogenmod 7. E anche qualsiasi soluzione specifica per questa MOD è benvenuta.


Questa domanda risolve lo stesso problema di android.stackexchange.com/questions/11728/…
Flusso

Tony Beta Lambda ha pubblicato una soluzione valida: dovresti considerare di accettarla.
Michaël,

Risposte:


5

Vedo che questa è una domanda piuttosto vecchia, ma nel caso qualcuno abbia cercato su Google ed è arrivato qui. Esiste un modulo abbastanza nuovo chiamato FakeWifiConnection basato sul framework Xposed. L'installazione e l'utilizzo dovrebbero essere abbastanza semplici.


È grandioso; dovresti pubblicare la stessa risposta in android.stackexchange.com/questions/11728/…
Michaël

@ Michaël Penso che quella domanda sia stata contrassegnata come duplicata
Tony Beta Lambda,

9

Direi che ci sono solo soluzioni specifiche per Mod. Quasi tutte le App che conosco utilizzano questa API Android, e quindi il codice inserito nelle tue domande, per i controlli di connettività di rete.

È necessario modificare la sorgente di Cyanogen in modo che il sistema operativo (Android + Cyanogen) sia a conoscenza della connettività di rete di tethering inverso USB e restituisca le informazioni giuste all'app che richiede lo stato di rete corrente. Non credo che ciò possa essere fatto con un certo livello artificiale tra l'API e l'app che "ingannano" l'app in questo. È più realistico che Cyanogen implementa la gestione del tethering inverso imitando una connessione WiFi attiva. Dovresti chiedere loro di affrontare questo argomento. Forse in futuro Android ha il supporto ufficiale per il tethering inverso. :)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.