Android11编译第九弹:openvpn调优

2023-12-13 20:36:23

openvpn是一个开源项目,提供vpn 服务功能,可以自己搭建VPN服务器。

https://github.com/schwabe/ics-openvpn.git

集成这个客户端以后,出现一些问题:

问题一.VPN KEY下发失败

问题二:VPN KEY下发成功,但是VPN 连接失败;

因此,需要对客户端源码项目进行调优。

一、openvpn源码下载

同步项目到本地

1.1 克隆项目

git clone?https://github.com/schwabe/ics-openvpn.git

?1.2 配置APP签名

因为需要作为一个内置应用,采用系统签名。

二、配置编译环境

2.1 安装编译工具

安卓项目编译工具,包括Android Studio, Git,NDK, cmake等。

安卓完成需要配置SDK和NDK的环境变量。

2.2 下载Swig 工具

openvpn 编译必须swig工具,

去官网下载

https://www.swig.org/download.html

下载后解压缩,然后配置环境变量。

验证swig是否安装成功,打开DOS,然后输入swig -help

2.3 编译项目

gradle部分,main--》Task->build-->assembleDebug,点击编译

问题一:编译报错,ndk只支持3位的,没有支持64位

[CXX5202] This app only has 32-bit [armeabi-v7a] native libraries. Beginning August 1, 2019 Google Play store requires that all apps that include native libraries must provide 64-bit versions. For more information, visit https://g.co/64-bit-requirement

原因:主模块main只编译了32位的指令集。

ics-openvpn/main/build.gradle.kts

    splits {
        abi {
            isEnable = true
            reset()
//            include("x86", "x86_64", "armeabi-v7a", "arm64-v8a")
            include("armeabi-v7a")
            isUniversalApk = true
        }
    }

可以清晰的看到,因为abi只定义了armeabi-v7a。

添加arm64-v8a,增加64位版本。

include("armeabi-v7a", "arm64-v8a")

?问题二:再次编译assembleDebug,报错swig指令处理失败

FAILURE: Build completed with 6 failures.

1: Task failed with an exception.
-----------
* What went wrong:
Execution failed for task ':main:generateOpenVPN3SwigskeletonOvpn23Debug'.
> A problem occurred starting process 'command 'swig''

C/C++: ? Could NOT find SWIG (missing: SWIG_EXECUTABLE SWIG_DIR) (Required is at
C/C++: ? least version "3.0")

因为WINDOWS环境下,没有找到SWIG相关

文章来源:https://blog.csdn.net/joedan0104/article/details/134838072
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。