Android USB обратная привязка: как обмануть приложения


18

Обратная связь USB = Мобильный телефон получает сетевое соединение с ПК через USB.

Я знаю, как выполнить обратное подключение через USB, за исключением одной проблемы: многие приложения Android проверяют сетевое соединение, используя приведенный ниже код, прежде чем выполнять какую-либо полезную работу:

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

Проблема заключается в том, что при использовании обратного USB-подключения вышеуказанный код сообщит об отсутствии сетевого подключения. Тем не менее, существует сетевое соединение (которое само по себе является обратным USB-модемом), и ping, wget и все программы, не выполняющие эту глупую проверку, работают хорошо.

Итак, вопрос: как я могу взломать систему, чтобы эта проверка сетевого подключения вернулась успешно (чтобы я мог обмануть эти приложения)?

КСТАТИ. Я использую Cyanogenmod 7. И любое решение, специфичное для этого мода, также приветствуется.


Этот вопрос касается той же проблемы, что и android.stackexchange.com/questions/11728/…
Flow

Тони Бета Лямбда опубликовал правильное решение - вы должны принять его.
Микаэль

Ответы:


5

Я вижу, что это довольно старый вопрос, но в случае, если кто-то погуглил и попал сюда. Существует довольно новый модуль под названием FakeWifiConnection, основанный на фреймворке Xposed. Установка и использование должны быть достаточно простыми.


Это отлично; Вы должны опубликовать тот же ответ в android.stackexchange.com/questions/11728/…
Микаэль

@ Михаэль Я думаю, что этот вопрос был помечен как дубликат
Тони Бета Лямбда

9

Я бы сказал, что есть только мод-специфичные решения. Почти каждое приложение, которое я знаю, использует этот API-интерфейс Android и, следовательно, код, заданный в ваших вопросах, для проверки сетевого подключения.

Нужно изменить источник Cyanogen, чтобы ОС (Android + Cyanogen) знала о подключении к сети через USB-модем и возвращала нужную информацию в приложение, запрашивающее текущее состояние сети. Я не верю, что это можно сделать с помощью искусственного слоя между API и приложением, которое «обманывает» приложение. Более реалистично, что Cyanogen реализует обработку обратного модема путем имитации активного соединения WiFi. Вы должны попросить их обратиться к этой теме. Возможно, в будущем у Android появится официальная поддержка обратной привязки. :)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.