Intereting Posts
Можно ли хранить статическую ссылку на SharedPreferences и ее редактор? Какую платформу MBaaS использовать для конкретного проекта: Parse или Google Cloud Error: Ошибка получения родительского элемента для элемента: не найден ресурс, который соответствует указанному имени «Widget.AppCompat.ActionButton» Robolectric выбрасывает ресурсы $ NotFoundException при попытке доступа к ресурсу в исходной папке Выходные значения найдены в курсоре для logcat? – Android Удалить строку SQLite с предложением where с несколькими оговорками Задача расписания в android OnActivityResult () Данные Intent всегда равны нулю Где я могу найти google-play-services_lib.jar? Диалоговое окно datepicker не может использовать swinner для устройства Android 7.0 Вызов сканера штрих-кода при нажатии кнопки в приложении Android Как создать эффект пульсации в простом макете Как использовать отправленные сервером события (SSE) в android? NullPointerException с android.support.v7.widget.Toolbar ExpandableListView Слайдовая анимация в группе expand / collapse

Как программно создать новый VPN-интерфейс с Android 4.0?

Я хотел бы узнать, можно ли программным образом создать интерфейс VPN с новыми API VPN в Android 4.0. Я просмотрел http://developer.android.com/resources/samples/ToyVpn, но речь идет о создании полного VPN-клиента, который обрабатывает соединения и т. Д. Я хочу только добавить новую конфигурацию VPN и, возможно, удалить существующие.

Есть много таких вопросов, но все они кажутся до 4.0. Я понимаю, что раньше это было невозможно, но можно было бы подумать, что новые API VPN предоставили такую ​​функциональность. Так кто-нибудь нашел способ сделать это, или это все еще невозможно? Если есть способ, пожалуйста, укажите мне правильное направление.

Solutions Collecting From Web of "Как программно создать новый VPN-интерфейс с Android 4.0?"

Похоже, что это обрабатывается внутренне через классы com.android.settings.vpn2.VpnDialog (и связанные), которые в основном выполняют KeyStore.getInstance().put("VPN_[VPN ID]", [encoded VpnProfile object]>) – который затем приводит к созданию файлов с именами типа «/ data / misc / vpn / 1000_VPN_ [VPN ID]» (где 1000, по-видимому, является идентификатором системного процесса).

Используя отражение (или один из хакеров для доступа к скрытым / внутренним API-интерфейсам), вы можете сделать это самостоятельно, но поскольку ваш процесс не будет работать как системный процесс, системный VPN-браузер их не увидит.

Однако, согласно этому ( http://code.google.com/p/android/issues/detail?id=8915 ), есть хотя бы одно приложение, которое делает это без корневого телефона, но источник не кажется Быть доступным … так что, возможно, есть способ сделать это, что я не могу понять – я определенно был бы заинтересован, если он есть.

PS – Вот еще один подобный вопрос (хотя он специально спрашивает об использовании корневого устройства): Создать профиль VPN на Android

Да, есть способ. Используйте AndroidVpnService, он помогает вам создавать VPN-интерфейс на устройстве, существуют способы его программного программирования.