added openvpn3 via cloak for iOS

This commit is contained in:
Anh Viet
2023-04-23 22:45:09 +07:00
parent 67af4729fe
commit 9cb32f0207
9 changed files with 32 additions and 9 deletions
+1
Submodule client/3rd/Cloak added at 6d19a801bc
+1
View File
@@ -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()
+1 -1
View File
@@ -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);
+1 -1
View File
@@ -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)")
} }
+4 -1
View File
@@ -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",
+3 -3
View File
@@ -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.
+5 -1
View File
@@ -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");
+14
View File
@@ -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 "$@"