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)
|
||||
project(${PROJECT})
|
||||
|
||||
#set(IOS 1)
|
||||
set(APPLE 1)
|
||||
set(IOS 1)
|
||||
#set(APPLE 1)
|
||||
|
||||
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||
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
|
||||
# "${CMAKE_CURRENT_SOURCE_DIR}/3rd/OpenVPNAdapter/build/Release-iphoneos/OpenVPNAdapter.framework"
|
||||
# )
|
||||
set_property(TARGET networkextension PROPERTY XCODE_EMBED_FRAMEWORKS
|
||||
"${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)
|
||||
# target_link_libraries("networkextension" PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/3rd/OpenVPNAdapter/build/Release-iphoneos/OpenVPNAdapter.framework")
|
||||
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-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/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]);
|
||||
|
||||
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 {
|
||||
|
||||
|
|
@ -6,23 +7,23 @@ public enum Socks5Tunnel {
|
|||
var ctlInfo = ctl_info()
|
||||
withUnsafeMutablePointer(to: &ctlInfo.ctl_name) {
|
||||
$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 {
|
||||
var addr = sockaddr_ctl()
|
||||
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) {
|
||||
$0.withMemoryRebound(to: sockaddr.self, capacity: 1) {
|
||||
ret = getpeername(fd, $0, &len)
|
||||
$0.withMemoryRebound(to: sockaddr.self, capacity: 1) { // sockaddr from Darwin
|
||||
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
|
||||
}
|
||||
if ctlInfo.ctl_id == 0 {
|
||||
ret = ioctl(fd, CTLIOCGINFO, &ctlInfo)
|
||||
ret = ioctl(fd, CTLIOCGINFO, &ctlInfo) // ioctl from Darwin
|
||||
if ret != 0 {
|
||||
continue
|
||||
}
|
||||
|
|
@ -38,12 +39,12 @@ public enum Socks5Tunnel {
|
|||
guard let tunnelFileDescriptor = self.tunnelFileDescriptor else {
|
||||
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
|
||||
guard let baseAddress = mutableBufferPointer.baseAddress else {
|
||||
return nil
|
||||
}
|
||||
var ifnameSize = socklen_t(IFNAMSIZ)
|
||||
var ifnameSize = socklen_t(IFNAMSIZ) // socklen_t and IFNAMSIZ from Darwin
|
||||
let result = getsockopt(
|
||||
tunnelFileDescriptor,
|
||||
2 /* SYSPROTO_CONTROL */,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue