Создать профиль VPN на Android
Можно ли программно создать профиль VPN на Android (при условии, что у меня есть рутированное устройство)?
Если возможно, то как?
Благодарю.
1 ответ
Вы должны посмотреть на пакет com.android.settings.vpn2. Там он использует методы @hidden KeyStore для управления VPN:
KeyStore.getInstance().saw(Credentials.VPN)
возвращает массив идентификаторов String VPNVpnProfile.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?