update build hev5, openadapter for macos NE, code + config
This commit is contained in:
parent
478ba6e189
commit
ed7a78c75a
4 changed files with 24 additions and 17 deletions
|
|
@ -3,8 +3,8 @@ cmake_minimum_required(VERSION 3.25.0 FATAL_ERROR)
|
||||||
set(PROJECT AmneziaVPN)
|
set(PROJECT AmneziaVPN)
|
||||||
project(${PROJECT})
|
project(${PROJECT})
|
||||||
|
|
||||||
#set(IOS 1)
|
set(IOS 1)
|
||||||
set(APPLE 1)
|
#set(APPLE 1)
|
||||||
|
|
||||||
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||||
set_property(GLOBAL PROPERTY AUTOGEN_TARGETS_FOLDER "Autogen")
|
set_property(GLOBAL PROPERTY AUTOGEN_TARGETS_FOLDER "Autogen")
|
||||||
|
|
|
||||||
|
|
@ -103,12 +103,12 @@ find_library(FW_LIBRESOLV libresolv.9.tbd)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# set_property(TARGET networkextension PROPERTY XCODE_EMBED_FRAMEWORKS
|
set_property(TARGET networkextension PROPERTY XCODE_EMBED_FRAMEWORKS
|
||||||
# "${CMAKE_CURRENT_SOURCE_DIR}/3rd/OpenVPNAdapter/build/Release-iphoneos/OpenVPNAdapter.framework"
|
"${CMAKE_CURRENT_SOURCE_DIR}/3rd/OpenVPNAdapter/build/Release-macos/OpenVPNAdapter.framework"
|
||||||
# )
|
)
|
||||||
|
|
||||||
# set(CMAKE_XCODE_ATTRIBUTE_FRAMEWORK_SEARCH_PATHS ${CMAKE_CURRENT_SOURCE_DIR}/3rd/OpenVPNAdapter/build/Release-iphoneos)
|
set(CMAKE_XCODE_ATTRIBUTE_FRAMEWORK_SEARCH_PATHS ${CMAKE_CURRENT_SOURCE_DIR}/3rd/OpenVPNAdapter/build/Release-macos)
|
||||||
# target_link_libraries("networkextension" PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/3rd/OpenVPNAdapter/build/Release-iphoneos/OpenVPNAdapter.framework")
|
target_link_libraries("networkextension" PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/3rd/OpenVPNAdapter/build/Release-macos/OpenVPNAdapter.framework")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -182,4 +182,6 @@ target_include_directories(networkextension PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
|
||||||
|
|
||||||
target_link_libraries(networkextension PRIVATE ${CLIENT_ROOT_DIR}/3rd-prebuilt/3rd-prebuilt/wireguard/ios/arm64/libwg-go.a)
|
target_link_libraries(networkextension PRIVATE ${CLIENT_ROOT_DIR}/3rd-prebuilt/3rd-prebuilt/wireguard/ios/arm64/libwg-go.a)
|
||||||
|
|
||||||
target_link_libraries(networkextension PRIVATE ${CLIENT_ROOT_DIR}/3rd-prebuilt/3rd-prebuilt/xray/HevSocks5Tunnel.xcframework)
|
target_link_libraries(networkextension PRIVATE ${CLIENT_ROOT_DIR}/3rd-prebuilt/3rd-prebuilt/xray/HevSocks5Tunnel.xcframework/macos-arm64_x86_64/libhev-socks5-tunnel.a)
|
||||||
|
|
||||||
|
target_include_directories(networkextension PRIVATE ${CLIENT_ROOT_DIR}/3rd-prebuilt/3rd-prebuilt/xray/HevSocks5Tunnel.xcframework/macos-arm64_x86_64/Headers)
|
||||||
|
|
|
||||||
|
|
@ -19,3 +19,7 @@ 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]);
|
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);
|
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);
|
||||||
|
void hev_socks5_tunnel_main(void);
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
import HevSocks5Tunnel
|
import Darwin
|
||||||
|
import SystemConfiguration
|
||||||
|
|
||||||
public enum Socks5Tunnel {
|
public enum Socks5Tunnel {
|
||||||
|
|
||||||
|
|
@ -6,23 +7,23 @@ public enum Socks5Tunnel {
|
||||||
var ctlInfo = ctl_info()
|
var ctlInfo = ctl_info()
|
||||||
withUnsafeMutablePointer(to: &ctlInfo.ctl_name) {
|
withUnsafeMutablePointer(to: &ctlInfo.ctl_name) {
|
||||||
$0.withMemoryRebound(to: CChar.self, capacity: MemoryLayout.size(ofValue: $0.pointee)) {
|
$0.withMemoryRebound(to: CChar.self, capacity: MemoryLayout.size(ofValue: $0.pointee)) {
|
||||||
_ = strcpy($0, "com.apple.net.utun_control")
|
_ = strcpy($0, "com.apple.net.utun_control") // strcpy comes from Darwin
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for fd: Int32 in 0...1024 {
|
for fd: Int32 in 0...1024 {
|
||||||
var addr = sockaddr_ctl()
|
var addr = sockaddr_ctl()
|
||||||
var ret: Int32 = -1
|
var ret: Int32 = -1
|
||||||
var len = socklen_t(MemoryLayout.size(ofValue: addr))
|
var len = socklen_t(MemoryLayout.size(ofValue: addr)) // socklen_t comes from Darwin
|
||||||
withUnsafeMutablePointer(to: &addr) {
|
withUnsafeMutablePointer(to: &addr) {
|
||||||
$0.withMemoryRebound(to: sockaddr.self, capacity: 1) {
|
$0.withMemoryRebound(to: sockaddr.self, capacity: 1) { // sockaddr from Darwin
|
||||||
ret = getpeername(fd, $0, &len)
|
ret = getpeername(fd, $0, &len) // getpeername from Darwin
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ret != 0 || addr.sc_family != AF_SYSTEM {
|
if ret != 0 || addr.sc_family != AF_SYSTEM { // AF_SYSTEM from Darwin
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if ctlInfo.ctl_id == 0 {
|
if ctlInfo.ctl_id == 0 {
|
||||||
ret = ioctl(fd, CTLIOCGINFO, &ctlInfo)
|
ret = ioctl(fd, CTLIOCGINFO, &ctlInfo) // ioctl from Darwin
|
||||||
if ret != 0 {
|
if ret != 0 {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
@ -38,12 +39,12 @@ public enum Socks5Tunnel {
|
||||||
guard let tunnelFileDescriptor = self.tunnelFileDescriptor else {
|
guard let tunnelFileDescriptor = self.tunnelFileDescriptor else {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
var buffer = [UInt8](repeating: 0, count: Int(IFNAMSIZ))
|
var buffer = [UInt8](repeating: 0, count: Int(IFNAMSIZ)) // IFNAMSIZ from Darwin
|
||||||
return buffer.withUnsafeMutableBufferPointer { mutableBufferPointer in
|
return buffer.withUnsafeMutableBufferPointer { mutableBufferPointer in
|
||||||
guard let baseAddress = mutableBufferPointer.baseAddress else {
|
guard let baseAddress = mutableBufferPointer.baseAddress else {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
var ifnameSize = socklen_t(IFNAMSIZ)
|
var ifnameSize = socklen_t(IFNAMSIZ) // socklen_t and IFNAMSIZ from Darwin
|
||||||
let result = getsockopt(
|
let result = getsockopt(
|
||||||
tunnelFileDescriptor,
|
tunnelFileDescriptor,
|
||||||
2 /* SYSPROTO_CONTROL */,
|
2 /* SYSPROTO_CONTROL */,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue