现有VPN应用程序如何在Android 2.0 – 2.3中创建新配置文件?

经过对StackOverflow的大量搜索后,它似乎只是在设备之前创建了一个4.0之前的VPN配置文件

我的问题是以下应用程序如何在没有root的情况下完成它?

http://www.featvpn.com/

https://play.google.com/store/apps/details?id=com.expressvpn.vpn&hl=en

更新1

似乎私有API是4.0之前的方式。 不幸的是,没有太多资源可以开始使用。 有谁知道私人api是否还需要root设备?

更新2

看来你可以使用改进的Android.jar或使用reflection来做到这一点。 L2TP / IPSEC仍然需要root设备。 PPTP似乎没有。

如何在Android上使用内部API

更新3

请注意,这取自各种来源。 似乎root是必需的,因为VpnService启动racoon,然后以系统用户身份运行,并从KeyStore中检索PSK。 因此,其他应用程序创建的KeyStore条目对racoon不可见。 (在linux环境中,racoon是一个协助IPSEC相关密钥协商的安全流程 – IKE)。

这是有道理的,然而,仍有一些应用程序可以在没有root的情况下实现L2TP / IPSEC。

更新4

XinkVPN,源代码入门。 仍然不允许用户创建L2TP配置文件而无需用户生成key_store并重新编译。 不是很友好,但开始很棒。

https://github.com/xinthink/xinkvpn

http://code.google.com/p/xinkvpn/

您可以通过未记录的意图将用户重定向到VPN设置屏幕。

Intent intent = new Intent("android.net.vpn.SETTINGS"); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); 

这似乎适用于1.6-4.1手机。