21

在 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 是否仍然需要有根设备?

更新 2

看来您可以使用修改后的 Android.jar 或使用反射来做到这一点。L2TP/IPSEC 仍然需要有根设备。PPTP似乎没有。

如何在 Android 上使用内部 API

更新 3

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

这是有道理的,但是,仍然有应用程序无需 root 即可实现 L2TP/IPSEC。

更新 4

XinkVPN,入门的源代码。仍然不允许用户在无需生成 key_store 并重新编译的情况下创建 L2TP 配置文件。不是很市场友好,但一个神话般的开始。

https://github.com/xinthink/xinkvpn

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

4

1 回答 1

2

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

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

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

于 2012-07-05T21:32:29.563 回答