mirror of
https://github.com/amnezia-vpn/amnezia-client.git
synced 2026-06-23 02:00:20 +07:00
added openvpn3 via cloak for iOS
This commit is contained in:
Submodule
+1
Submodule client/3rd/Cloak added at 6d19a801bc
Submodule client/3rd/OpenVPNAdapter updated: ca2b0c7e4c...518d42831d
@@ -43,6 +43,7 @@ set(LIBS ${LIBS}
|
|||||||
qt_standard_project_setup()
|
qt_standard_project_setup()
|
||||||
|
|
||||||
if(IOS)
|
if(IOS)
|
||||||
|
execute_process(COMMAND bash ${CMAKE_CURRENT_LIST_DIR}/scripts/run-build-cloak.sh)
|
||||||
execute_process(COMMAND bash ${CMAKE_CURRENT_LIST_DIR}/scripts/openvpn.sh args
|
execute_process(COMMAND bash ${CMAKE_CURRENT_LIST_DIR}/scripts/openvpn.sh args
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR})
|
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR})
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ QString CloakConfigurator::genCloakConfig(const ServerCredentials &credentials,
|
|||||||
config.insert("UID", cloakBypassUid);
|
config.insert("UID", cloakBypassUid);
|
||||||
config.insert("PublicKey", cloakPublicKey);
|
config.insert("PublicKey", cloakPublicKey);
|
||||||
config.insert("ServerName", "$FAKE_WEB_SITE_ADDRESS");
|
config.insert("ServerName", "$FAKE_WEB_SITE_ADDRESS");
|
||||||
config.insert("NumConn", 4);
|
config.insert("NumConn", 1);
|
||||||
config.insert("BrowserSig", "chrome");
|
config.insert("BrowserSig", "chrome");
|
||||||
config.insert("StreamTimeout", 300);
|
config.insert("StreamTimeout", 300);
|
||||||
|
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ func wg_log(_ type: OSLogType, staticMessage msg: StaticString) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func wg_log(_ type: OSLogType, message msg: String) {
|
func wg_log(_ type: OSLogType, message msg: String) {
|
||||||
os_log("%{public}s", log: OSLog.default, type: type, msg)
|
os_log("%{AMNEZIA}s", log: OSLog.default, type: type, msg)
|
||||||
Logger.global?.log(message: msg)
|
Logger.global?.log(message: msg)
|
||||||
NSLog("AMNEZIA: \(msg)")
|
NSLog("AMNEZIA: \(msg)")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -690,10 +690,13 @@ class PacketTunnelProvider: NEPacketTunnelProvider {
|
|||||||
private func setupAndlaunchOpenVPN(withConfig ovpnConfiguration: Data, withShadowSocks viaSS: Bool = false, completionHandler: @escaping (Error?) -> Void) {
|
private func setupAndlaunchOpenVPN(withConfig ovpnConfiguration: Data, withShadowSocks viaSS: Bool = false, completionHandler: @escaping (Error?) -> Void) {
|
||||||
wg_log(.info, message: "Inside setupAndlaunchOpenVPN()")
|
wg_log(.info, message: "Inside setupAndlaunchOpenVPN()")
|
||||||
let str = String(decoding: ovpnConfiguration, as: UTF8.self)
|
let str = String(decoding: ovpnConfiguration, as: UTF8.self)
|
||||||
wg_log(.info, message: "OPENVPN config: \(str)")
|
wg_log(.error, message: "---> OPENVPN config: \(str)")
|
||||||
|
|
||||||
let configuration = OpenVPNConfiguration()
|
let configuration = OpenVPNConfiguration()
|
||||||
configuration.fileContent = ovpnConfiguration
|
configuration.fileContent = ovpnConfiguration
|
||||||
|
if(str.contains("cloak")){
|
||||||
|
configuration.setPTCloak();
|
||||||
|
}
|
||||||
if viaSS {
|
if viaSS {
|
||||||
// configuration.settings = [
|
// configuration.settings = [
|
||||||
// "remote": "137.74.6.148 1194",
|
// "remote": "137.74.6.148 1194",
|
||||||
|
|||||||
@@ -296,7 +296,7 @@ public class IOSVpnProtocolImpl : NSObject {
|
|||||||
@objc func connect(ssConfig: String,
|
@objc func connect(ssConfig: String,
|
||||||
ovpnConfig: String,
|
ovpnConfig: String,
|
||||||
failureCallback: @escaping () -> Void) {
|
failureCallback: @escaping () -> Void) {
|
||||||
Logger.global?.log(message: "Connecting")
|
Logger.global?.log(message: "Logger Connecting")
|
||||||
// assert(tunnel != nil)
|
// assert(tunnel != nil)
|
||||||
|
|
||||||
self.openVPNConfig = ovpnConfig
|
self.openVPNConfig = ovpnConfig
|
||||||
@@ -315,7 +315,7 @@ public class IOSVpnProtocolImpl : NSObject {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@objc func connect(ovpnConfig: String, failureCallback: @escaping () -> Void) {
|
@objc func connect(ovpnConfig: String, failureCallback: @escaping () -> Void) {
|
||||||
Logger.global?.log(message: "Connecting")
|
Logger.global?.log(message: "Logger Connecting")
|
||||||
// assert(tunnel != nil)
|
// assert(tunnel != nil)
|
||||||
|
|
||||||
let addr: String = ovpnConfig
|
let addr: String = ovpnConfig
|
||||||
@@ -331,7 +331,7 @@ public class IOSVpnProtocolImpl : NSObject {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@objc func connect(dnsServer: String, serverIpv6Gateway: String, serverPublicKey: String, presharedKey: String, serverIpv4AddrIn: String, serverPort: Int, allowedIPAddressRanges: Array<VPNIPAddressRange>, ipv6Enabled: Bool, reason: Int, failureCallback: @escaping () -> Void) {
|
@objc func connect(dnsServer: String, serverIpv6Gateway: String, serverPublicKey: String, presharedKey: String, serverIpv4AddrIn: String, serverPort: Int, allowedIPAddressRanges: Array<VPNIPAddressRange>, ipv6Enabled: Bool, reason: Int, failureCallback: @escaping () -> Void) {
|
||||||
Logger.global?.log(message: "Connecting")
|
Logger.global?.log(message: "Logger Connecting")
|
||||||
// assert(tunnel != nil)
|
// assert(tunnel != nil)
|
||||||
|
|
||||||
// Let's remove the previous config if it exists.
|
// Let's remove the previous config if it exists.
|
||||||
|
|||||||
@@ -651,15 +651,19 @@ void IOSVpnProtocol::launchCloakTunnel(const QtJson::JsonObject &result)
|
|||||||
QJsonObject jsonObject {};
|
QJsonObject jsonObject {};
|
||||||
foreach(const QString& key, cloak.keys()) {
|
foreach(const QString& key, cloak.keys()) {
|
||||||
qDebug() << "Key = " << key << ", Value = " << cloak.value(key).toString();
|
qDebug() << "Key = " << key << ", Value = " << cloak.value(key).toString();
|
||||||
|
if(key == "NumConn" or key == "StreamTimeout"){
|
||||||
|
jsonObject.insert(key, cloak.value(key).toInt());
|
||||||
|
}else{
|
||||||
jsonObject.insert(key, cloak.value(key).toString());
|
jsonObject.insert(key, cloak.value(key).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
QJsonDocument doc(jsonObject);
|
QJsonDocument doc(jsonObject);
|
||||||
QString strJson(doc.toJson(QJsonDocument::Compact));
|
QString strJson(doc.toJson(QJsonDocument::Compact));
|
||||||
qDebug() << "str Object Cloak" << strJson.toNSString();
|
qDebug() << "str Object Cloak" << strJson.toNSString();
|
||||||
|
|
||||||
QString cloakBase64 = strJson.toUtf8().toBase64();
|
QString cloakBase64 = strJson.toUtf8().toBase64();
|
||||||
qDebug() << "base64: " << cloakBase64.toNSString();
|
qDebug() << "base64: " << cloakBase64.toNSString();
|
||||||
|
|
||||||
ovpnConfig.append("\n<cloak>\n");
|
ovpnConfig.append("\n<cloak>\n");
|
||||||
ovpnConfig.append(cloakBase64);
|
ovpnConfig.append(cloakBase64);
|
||||||
ovpnConfig.append("\n</cloak>\n");
|
ovpnConfig.append("\n</cloak>\n");
|
||||||
|
|||||||
Executable
+14
@@ -0,0 +1,14 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# go/clangwrap.sh
|
||||||
|
|
||||||
|
SDK_PATH=`xcrun --sdk $SDK --show-sdk-path`
|
||||||
|
CLANG=`xcrun --sdk $SDK --find clang`
|
||||||
|
|
||||||
|
if [ "$GOARCH" == "amd64" ]; then
|
||||||
|
CARCH="x86_64"
|
||||||
|
elif [ "$GOARCH" == "arm64" ]; then
|
||||||
|
CARCH="arm64"
|
||||||
|
fi
|
||||||
|
|
||||||
|
exec $CLANG -arch $CARCH -isysroot $SDK_PATH -mios-version-min=10.0 "$@"
|
||||||
Reference in New Issue
Block a user