diff --git a/client/CMakeLists.txt b/client/CMakeLists.txt index 72ad2ec8..d5913ac9 100644 --- a/client/CMakeLists.txt +++ b/client/CMakeLists.txt @@ -4,7 +4,7 @@ set(PROJECT AmneziaVPN) project(${PROJECT}) set(IOS 1) -#set(APPLE 1) +# set(APPLE 1) set_property(GLOBAL PROPERTY USE_FOLDERS ON) set_property(GLOBAL PROPERTY AUTOGEN_TARGETS_FOLDER "Autogen") diff --git a/client/cmake/macos.cmake b/client/cmake/macos.cmake index a560d29d..92ab14ca 100644 --- a/client/cmake/macos.cmake +++ b/client/cmake/macos.cmake @@ -1,4 +1,4 @@ -message("Client ==> iOS build") +message("Client ==> macOS build") set_target_properties(${PROJECT} PROPERTIES MACOSX_BUNDLE TRUE) set(CMAKE_OSX_ARCHITECTURES "x86_64" CACHE INTERNAL "" FORCE) @@ -34,22 +34,22 @@ set(LIBS ${LIBS} set(HEADERS ${HEADERS} - ${CMAKE_CURRENT_SOURCE_DIR}/platforms/ios/ios_controller.h - ${CMAKE_CURRENT_SOURCE_DIR}/platforms/ios/ios_controller_wrapper.h - ${CMAKE_CURRENT_SOURCE_DIR}/platforms/ios/iosnotificationhandler.h - ${CMAKE_CURRENT_SOURCE_DIR}/platforms/ios/QtAppDelegate.h - ${CMAKE_CURRENT_SOURCE_DIR}/platforms/ios/QtAppDelegate-C-Interface.h + ${CMAKE_CURRENT_SOURCE_DIR}/platforms/macos/ios_controller.h + ${CMAKE_CURRENT_SOURCE_DIR}/platforms/macos/ios_controller_wrapper.h + ${CMAKE_CURRENT_SOURCE_DIR}/platforms/macos/iosnotificationhandler.h + ${CMAKE_CURRENT_SOURCE_DIR}/platforms/macos/QtAppDelegate.h + ${CMAKE_CURRENT_SOURCE_DIR}/platforms/macos/QtAppDelegate-C-Interface.h ) -set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/platforms/ios/ios_controller.h PROPERTIES OBJECTIVE_CPP_HEADER TRUE) +set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/platforms/macos/ios_controller.h PROPERTIES OBJECTIVE_CPP_HEADER TRUE) set(SOURCES ${SOURCES} - ${CMAKE_CURRENT_SOURCE_DIR}/platforms/ios/ios_controller.mm - ${CMAKE_CURRENT_SOURCE_DIR}/platforms/ios/ios_controller_wrapper.mm - ${CMAKE_CURRENT_SOURCE_DIR}/platforms/ios/iosnotificationhandler.mm - ${CMAKE_CURRENT_SOURCE_DIR}/platforms/ios/iosglue.mm - ${CMAKE_CURRENT_SOURCE_DIR}/platforms/ios/QRCodeReaderBase.mm - ${CMAKE_CURRENT_SOURCE_DIR}/platforms/ios/QtAppDelegate.mm + ${CMAKE_CURRENT_SOURCE_DIR}/platforms/macos/ios_controller.mm + ${CMAKE_CURRENT_SOURCE_DIR}/platforms/macos/ios_controller_wrapper.mm + ${CMAKE_CURRENT_SOURCE_DIR}/platforms/macos/iosnotificationhandler.mm + ${CMAKE_CURRENT_SOURCE_DIR}/platforms/macos/iosglue.mm + ${CMAKE_CURRENT_SOURCE_DIR}/platforms/macos/QRCodeReaderBase.mm + ${CMAKE_CURRENT_SOURCE_DIR}/platforms/macos/QtAppDelegate.mm ) set(ICON_FILE ${CMAKE_CURRENT_SOURCE_DIR}/images/app.icns) @@ -125,25 +125,25 @@ target_compile_options(${PROJECT} PRIVATE set(WG_APPLE_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/3rd/amneziawg-apple/Sources) target_sources(${PROJECT} PRIVATE -# ${CMAKE_CURRENT_SOURCE_DIR}/platforms/ios/iosvpnprotocol.swift +# ${CMAKE_CURRENT_SOURCE_DIR}/platforms/macos/iosvpnprotocol.swift ${WG_APPLE_SOURCE_DIR}/WireGuardKitC/x25519.c - ${CLIENT_ROOT_DIR}/platforms/ios/LogController.swift - ${CLIENT_ROOT_DIR}/platforms/ios/Log.swift - ${CLIENT_ROOT_DIR}/platforms/ios/LogRecord.swift - ${CLIENT_ROOT_DIR}/platforms/ios/ScreenProtection.swift - ${CLIENT_ROOT_DIR}/platforms/ios/VPNCController.swift + ${CLIENT_ROOT_DIR}/platforms/macos/LogController.swift + ${CLIENT_ROOT_DIR}/platforms/macos/Log.swift + ${CLIENT_ROOT_DIR}/platforms/macos/LogRecord.swift + ${CLIENT_ROOT_DIR}/platforms/macos/ScreenProtection.swift + ${CLIENT_ROOT_DIR}/platforms/macos/VPNCController.swift ) target_sources(${PROJECT} PRIVATE - #${CMAKE_CURRENT_SOURCE_DIR}/ios/app/AmneziaVPNLaunchScreen.storyboard - ${CMAKE_CURRENT_SOURCE_DIR}/ios/app/Media.xcassets - ${CMAKE_CURRENT_SOURCE_DIR}/ios/app/PrivacyInfo.xcprivacy + #${CMAKE_CURRENT_SOURCE_DIR}/macos/app/AmneziaVPNLaunchScreen.storyboard + ${CMAKE_CURRENT_SOURCE_DIR}/macos/app/Media.xcassets + ${CMAKE_CURRENT_SOURCE_DIR}/macos/app/PrivacyInfo.xcprivacy ) set_property(TARGET ${PROJECT} APPEND PROPERTY RESOURCE - #${CMAKE_CURRENT_SOURCE_DIR}/ios/app/AmneziaVPNLaunchScreen.storyboard - ${CMAKE_CURRENT_SOURCE_DIR}/ios/app/Media.xcassets - ${CMAKE_CURRENT_SOURCE_DIR}/ios/app/PrivacyInfo.xcprivacy + #${CMAKE_CURRENT_SOURCE_DIR}/macos/app/AmneziaVPNLaunchScreen.storyboard + ${CMAKE_CURRENT_SOURCE_DIR}/macos/app/Media.xcassets + ${CMAKE_CURRENT_SOURCE_DIR}/macos/app/PrivacyInfo.xcprivacy ) add_subdirectory(ios/networkextension) diff --git a/client/macos/networkextension/WireGuardNetworkExtension-Bridging-Header copy.h b/client/macos/networkextension/WireGuardNetworkExtension-Bridging-Header copy.h new file mode 100644 index 00000000..f911e186 --- /dev/null +++ b/client/macos/networkextension/WireGuardNetworkExtension-Bridging-Header copy.h @@ -0,0 +1,26 @@ +#include "wireguard-go-version.h" +#include "3rd/amneziawg-apple/Sources/WireGuardKitGo/wireguard.h" +#include "3rd/amneziawg-apple/Sources/WireGuardKitC/WireGuardKitC.h" + +#include +#include + +#define WG_KEY_LEN (32) +#define WG_KEY_LEN_BASE64 (45) +#define WG_KEY_LEN_HEX (65) + +void key_to_base64(char base64[WG_KEY_LEN_BASE64], + const uint8_t key[WG_KEY_LEN]); +bool key_from_base64(uint8_t key[WG_KEY_LEN], const char* base64); + +void key_to_hex(char hex[WG_KEY_LEN_HEX], const uint8_t key[WG_KEY_LEN]); +bool key_from_hex(uint8_t key[WG_KEY_LEN], const char* hex); + +bool key_eq(const uint8_t key1[WG_KEY_LEN], const uint8_t key2[WG_KEY_LEN]); + +void write_msg_to_log(const char* tag, const char* msg); + +// Khai báo hàm C để Swift có thể sử dụng +void hev_socks5_tunnel_quit(void); +// Updated function definition in C +int hev_socks5_tunnel_main(const char* configFile, int fd); diff --git a/client/macos/networkextension/WireGuardNetworkExtension-Bridging-Header.h b/client/macos/networkextension/WireGuardNetworkExtension-Bridging-Header.h index 2cca0fc8..bab71246 100644 --- a/client/macos/networkextension/WireGuardNetworkExtension-Bridging-Header.h +++ b/client/macos/networkextension/WireGuardNetworkExtension-Bridging-Header.h @@ -19,3 +19,4 @@ bool key_from_hex(uint8_t key[WG_KEY_LEN], const char* hex); bool key_eq(const uint8_t key1[WG_KEY_LEN], const uint8_t key2[WG_KEY_LEN]); void write_msg_to_log(const char* tag, const char* msg); +