From bac7b3ab370125d88fc9f71cd16c19239fcc5bd0 Mon Sep 17 00:00:00 2001 From: pokamest Date: Thu, 30 Sep 2021 18:16:41 +0300 Subject: [PATCH] Android service wireguard build --- .gitmodules | 3 +++ client/3rd/wireguard-tools | 1 + client/android/build.gradle | 10 +++++----- client/client.pro | 8 ++++++-- .../ui/pages_logic/protocols/OtherProtocolsLogic.cpp | 2 +- client/vpnconnection.cpp | 8 ++++++++ 6 files changed, 24 insertions(+), 8 deletions(-) create mode 160000 client/3rd/wireguard-tools diff --git a/.gitmodules b/.gitmodules index e8a1e67a0..0f2034803 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "3rd/QtSsh"] path = 3rd/QtSsh url = https://github.com/amnezia-vpn/QtSsh.git +[submodule "client/3rd/wireguard-tools"] + path = client/3rd/wireguard-tools + url = https://github.com/WireGuard/wireguard-tools/ diff --git a/client/3rd/wireguard-tools b/client/3rd/wireguard-tools new file mode 160000 index 000000000..7a321ce80 --- /dev/null +++ b/client/3rd/wireguard-tools @@ -0,0 +1 @@ +Subproject commit 7a321ce808ef9cec1f45cce92befcc9e170d3aa9 diff --git a/client/android/build.gradle b/client/android/build.gradle index 355d4c723..e18e16fd1 100644 --- a/client/android/build.gradle +++ b/client/android/build.gradle @@ -104,9 +104,9 @@ android { targetSdkVersion = qtTargetSdkVersion } -// externalNativeBuild { -// cmake { -// path 'tunnel/CMakeLists.txt' -// } -// } + externalNativeBuild { + cmake { + path 'wireguard/CMakeLists.txt' + } + } } diff --git a/client/client.pro b/client/client.pro index cec0abff5..d17f4e455 100644 --- a/client/client.pro +++ b/client/client.pro @@ -34,7 +34,6 @@ HEADERS += \ debug.h \ defines.h \ managementserver.h \ - protocols/android_vpnprotocol.h \ protocols/openvpnovercloakprotocol.h \ protocols/protocols_defs.h \ protocols/shadowsocksvpnprotocol.h \ @@ -88,7 +87,6 @@ SOURCES += \ debug.cpp \ main.cpp \ managementserver.cpp \ - protocols/android_vpnprotocol.cpp \ protocols/openvpnovercloakprotocol.cpp \ protocols/protocols_defs.cpp \ protocols/shadowsocksvpnprotocol.cpp \ @@ -181,6 +179,12 @@ android { INCLUDEPATH += platforms/android + HEADERS += protocols/android_vpnprotocol.h \ + + + SOURCES += protocols/android_vpnprotocol.cpp \ + + DISTFILES += \ android/AndroidManifest.xml \ android/build.gradle \ diff --git a/client/ui/pages_logic/protocols/OtherProtocolsLogic.cpp b/client/ui/pages_logic/protocols/OtherProtocolsLogic.cpp index d9cf07e9b..400cb5c14 100644 --- a/client/ui/pages_logic/protocols/OtherProtocolsLogic.cpp +++ b/client/ui/pages_logic/protocols/OtherProtocolsLogic.cpp @@ -74,7 +74,7 @@ void OtherProtocolsLogic::onPushButtonSftpMountDriveClicked() set_pushButtonSftpMountEnabled(false); QProcess *p = new QProcess; - m_sftpMpuntProcesses.append(p); + m_sftpMountProcesses.append(p); p->setProcessChannelMode(QProcess::MergedChannels); connect(p, &QProcess::readyRead, this, [this, p, letter](){ diff --git a/client/vpnconnection.cpp b/client/vpnconnection.cpp index e1e8538aa..a521e8576 100644 --- a/client/vpnconnection.cpp +++ b/client/vpnconnection.cpp @@ -10,6 +10,10 @@ #include #include +#ifdef Q_OS_ANDROID +#include +#endif + #include "ipc.h" #include "core/ipcclient.h" #include "protocols/openvpnprotocol.h" @@ -316,7 +320,11 @@ ErrorCode VpnConnection::connectToVpn(int serverIndex, return e; } +#ifdef Q_OS_ANDROID + m_vpnProtocol.reset(new AndroidVpnProtocol(Protocol::WireGuard, m_vpnConfiguration)); +#else m_vpnProtocol.reset(new WireguardProtocol(m_vpnConfiguration)); +#endif } connect(m_vpnProtocol.data(), &VpnProtocol::protocolError, this, &VpnConnection::vpnProtocolError);