Создать профиль VPN на Android

Можно ли программно создать профиль VPN на Android (при условии, что у меня есть рутированное устройство)?

Если возможно, то как?

Благодарю.

1 ответ

Решение

Вы должны посмотреть на пакет com.android.settings.vpn2. Там он использует методы @hidden KeyStore для управления VPN:

  • KeyStore.getInstance().saw(Credentials.VPN) возвращает массив идентификаторов String VPN

  • VpnProfile.decode(KeyStore.getInstance().get(Credentials.VPN + vpn_id)) получает данные конфигурации VPN для данного идентификатора VPN и декодирует их как объект VpnProfile.

  • VpnProfile.put(Credentials.VPN + vpn_id, someVpnProfileInstance.encode()) создаст / обновит VPN-соединение с указанным идентификатором, используя настройки в экземпляре VpnProfile.

Однако вам нужно будет выполнить это как системный процесс, иначе полученный вами экземпляр KeyStore не будет подключен к тому, который использует ОС.

Если есть способ сделать это без рутированного устройства, мне было бы интересно узнать, как...

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

Другие вопросы по тегам