Android tethering wsteczny USB: jak oszukać aplikacje


18

Odwrotne tethering przez USB = telefon otrzymuje połączenie sieciowe z komputera przez USB.

Wiem, jak wykonać odwrotne tethering przez USB, z wyjątkiem jednego problemu: wiele aplikacji na Androida sprawdzi połączenie sieciowe za pomocą poniższego kodu przed wykonaniem jakiejkolwiek przydatnej pracy:

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

Problem polega na tym, że w przypadku korzystania z odwrotnego tetheringu przez USB powyższy kod nie zgłasza żadnego połączenia sieciowego. Istnieje jednak połączenie sieciowe (samo to samo tethering przez USB), ping, wget i wszystkie programy, które nie wykonują tego głupiego sprawdzania, działają dobrze.

Pytanie brzmi: w jaki sposób mogę zhakować system, aby to połączenie sieciowe sprawdziło powodzenie (aby móc oszukać te aplikacje)?

BTW. Używam Cyanogenmod 7. Każde rozwiązanie specyficzne dla tego MOD jest również mile widziane.


To pytanie dotyczy tego samego problemu, co android.stackexchange.com/questions/11728/…
Flow,

Tony Beta Lambda opublikował prawidłowe rozwiązanie - powinieneś rozważyć jego zaakceptowanie.
Michaël,

Odpowiedzi:



9

Powiedziałbym, że są tylko rozwiązania specyficzne dla Modu. Prawie każda aplikacja, którą znam, korzysta z tego interfejsu API systemu Android, a zatem kod został wpisany w pytaniach w celu sprawdzenia łączności z siecią.

Trzeba będzie zmienić źródło Cyanogen, aby system operacyjny (Android + Cyanogen) był świadomy łączności sieciowej z odwrotnym tetheringiem przez USB i zwrócił odpowiednie informacje do aplikacji żądającej bieżącego stanu sieci. Nie wierzę, że można to zrobić za pomocą sztucznej warstwy między interfejsem API a aplikacją, która „oszuka” aplikację. Bardziej realistyczne jest to, że Cyanogen implementuje obsługę odwrotnego tetheringu poprzez naśladowanie aktywnego połączenia WiFi. Powinieneś poprosić ich o zajęcie się tym tematem. Być może w przyszłości Android ma oficjalne wsparcie dla odwrotnego tetheringu. :)

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.