Create VPN profile on Android

风格不统一 提交于 2019-12-17 23:24:01

问题


Is it possible to programmatically create VPN profile on Android (assuming that I have a rooted device)?

If is possible, how?

Thanks.


回答1:


You should look at the com.android.settings.vpn2 package. There it uses the @hidden KeyStore methods to manipulate VPNs:

  • KeyStore.getInstance().saw(Credentials.VPN) returns an array of String VPN IDs

  • VpnProfile.decode(KeyStore.getInstance().get(Credentials.VPN + vpn_id)) gets the VPN configuration data for the given VPN ID and decodes it as a VpnProfile object.

  • VpnProfile.put(Credentials.VPN + vpn_id, someVpnProfileInstance.encode()) will create/update a VPN connection with the given ID using the settings in the VpnProfile instance.

However, you will need to execute this as the system process -- otherwise, the KeyStore instance you get will not be connected to the one that the OS uses.

If there is a way to do this without a rooted device, I'd be interested in knowing how...

P.S. - There's a similar question here: How to programmatically create a new VPN interface with Android 4.0?



来源:https://stackoverflow.com/questions/9718289/create-vpn-profile-on-android

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!