Android 13 14 vpn中怎么实现pptp和l2tp模式

目录

1.背景

2.上层逻辑

3.Vpn状态同步

4.你咋不给我生成state文件

5.最终patch


1.背景

        由于google在Android 13中处于安全性考虑,去掉了vpn中的pptp模式和l2tp模式,但是客户有需求还是要在vpn中通过pptp模式和l2tp模式进行vpn连接,所以目前首选方案是将android 12中的pptp模式和l2tp模式相关代码进行移植

        这里我分成两部分来说明下如何实现这个功能,1.上层Settings界面显示以及Framework层是否支持 2.底层mtpd是否支持,以及vpn状态传递是否正确

2.上层逻辑

        首先我们来确认下Framework层是否支持的,如下是Android 13中的Vpn.java的文件代码

            case VpnProfile.TYPE_PPTP:
                mtpd = new String[] {
                    iface, "pptp", profile.server, "1723",
                    "name", profile.username, "password", profile.password,