如何现有的VPN应用程序的Andr​​oid 2.0中创建新的配置文件 - 2.3?

如何现有的VPN应用程序的Andr​​oid 2.0中创建新的配置文件 -  2.3?

问题描述:

在一番搜索的计算器,它似乎在创建VPN配置文件$ P $的唯一办法生根的设备对4.0

After much searching on StackOverflow, it seems rooting a device in the only way to create a VPN profile pre-4.0

我的问题是如何在以下应用程序做没有根?

My question is how do the following apps do it without root?

http://www.featvpn.com/

https://开头play.google.com/store/apps/details?id=com.ex$p$pssvpn.vpn&hl=en

更新1

好像私有API的路要走pre-4.0。不幸的是,没有多少资源在那里开始。有谁知道,如果私有API仍需要一个根深蒂固的设备?

Seems private API is the way to go pre-4.0. Unfortunately, not many resources out there to get started. Does anyone know if private api still requires a rooted device?

更新2

看来你可以使用修改后的android.jar做到这一点,或通过使用反射。 L2TP / IPSEC仍需要root权限的设备。 PPTP似乎并不确实。

It seems you can do this using modified Android.jar or by using reflection. L2TP/IPSEC still requires rooted device. PPTP does not seem to.

如何使用内部API在Android

更新3

请注意,这是从各种来源。看来根必需的,因为VpnService开始浣熊,然后作为一个系统用户运行,并检索从密钥库中PSK。由其他应用程序创建的,因此密钥库条目是不可见的浣熊。 (在Linux环境中,浣熊是一个安全的过程协助IPSEC相关的重要谈判 - IKE)。

Please note, this is taken from various sources. It seems root is required because VpnService starts racoon, which then runs as a system user, and retrieves the PSK from the KeyStore. So KeyStore entries created by other apps aren't visible to racoon. (In linux environment, racoon is a security process assisting in IPSEC related key negotiations - IKE).

这是有道理的,但是,仍有一些实现L2TP / IPSEC无根的应用程序。

更新4

XinkVPN,源$ C ​​$ C上手。仍然不允许用户创建L2TP配置文件而不需要生成一个key_store并重新编译用户。不是很友好的市场,但一个神话般的开始。

XinkVPN, source code to get started. Still does not allow users to create L2TP profile without user having to generate a key_store and recompile. Not very market friendly but a fabulous start.

https://github.com/xinthink/xinkvpn

HTTP://$c$c.google.com/p/xinkvpn/

您可以只将用户重定向到VPN通过一个未公开的意图设置屏幕。

you could just redirect the user to the VPN settings screen via an undocumented intent.

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

这似乎工作在1.6-4.1手机。

This seems to work on 1.6-4.1 phones.