Skip to content

Commit bff160f

Browse files
authored
Add files via upload
1 parent 28e2b27 commit bff160f

File tree

4 files changed

+895
-0
lines changed

4 files changed

+895
-0
lines changed

Roothide/Makefile

Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
# 适配 Roothide 的 Theos 编译配置
2+
3+
# 插件信息
4+
PACKAGE_IDENTIFIER = com.pxx917144686.surge
5+
PACKAGE_NAME = Surge_pxx
6+
PACKAGE_VERSION = 0.4
7+
PACKAGE_ARCHITECTURE = arm64 arm64e
8+
PACKAGE_REVISION = 1540
9+
PACKAGE_SECTION = Tweaks
10+
PACKAGE_DEPENDS = mobilesubstrate (>= 0.9.5000), firmware (>= 14.0)
11+
PACKAGE_DESCRIPTION = Surge for iOS
12+
13+
define Package/Surge
14+
Package: $(PACKAGE_IDENTIFIER)
15+
Name: $(PACKAGE_NAME)
16+
Version: $(PACKAGE_VERSION)
17+
Architecture: $(PACKAGE_ARCHITECTURE)
18+
Maintainer: Nets
19+
Author: pxx917144686
20+
Section: $(PACKAGE_SECTION)
21+
Depends: $(PACKAGE_DEPENDS)
22+
Description: $(PACKAGE_DESCRIPTION)
23+
endef
24+
25+
26+
# 指定 Roothide 兼容路径**
27+
THEOS_PACKAGE_INSTALL_PREFIX = /private/var/containers/Bundle/tweaksupport/
28+
29+
# 目标平台
30+
ARCHS = arm64 arm64e
31+
TARGET = iphone:clang:latest:14.5
32+
33+
# 进程名称,确保插件能正确注入
34+
INSTALL_TARGET_PROCESSES = Surge-iOS
35+
36+
# iPhone SDK 路径
37+
SDK_PATH = $(shell xcode-select --print-path)/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk
38+
39+
# 直接输出到当前目录
40+
export THEOS_PACKAGE_DIR = $(CURDIR)
41+
42+
# Theos 通用设置
43+
include $(THEOS)/makefiles/common.mk
44+
45+
# 插件:名称
46+
TWEAK_NAME = Surge
47+
48+
# 源代码文件
49+
Surge_FILES = Tweak.x
50+
51+
# OpenSSL 配置路径
52+
OPENSSL_PATH = /Users/pxx917144686/openssl-ios
53+
54+
# 启用 ARC 并添加 OpenSSL 头文件
55+
Surge_CFLAGS = -fobjc-arc -I$(OPENSSL_PATH)/include -I$(OPENSSL_PATH)/include/openssl
56+
57+
# 链接 OpenSSL
58+
Surge_LDFLAGS = -L$(OPENSSL_PATH)/lib -lssl -lcrypto -framework UIKit -framework Foundation -lsubstrate
59+
60+
# Theos 编译规则
61+
include $(THEOS_MAKE_PATH)/tweak.mk
62+
63+
64+
65+
66+
67+
68+
69+
70+
71+
72+
73+
74+
75+
76+
77+
78+
79+
80+
81+
82+
# PS
83+
# 报错:ld: warning: -multiply_defined is obsolete
84+
# 解释:为什么会出现这个问题?
85+
# 原因:新版本的 Apple 链接器 (ld64) 不再推荐使用 -multiply_defined;Theos 是为了兼容老的iOS,才默认加入了这个选项。
86+
# 解决:在文件 theos/makefiles/targets/_common/darwin_tail.mk 中,找到删除:-multiply_defined
87+
88+
89+
90+
91+
# PS:
92+
# 报错:warning: ignoring file '/usr/local/Cellar/openssl@3/3.4.0/lib/libcrypto.3.dylib': found architecture 'x86_64', required architecture 'arm64e'
93+
94+
# 解释:英特尔的Mac x86_64 不匹配架构 OpenSSL 库。
95+
# 检查: Mac架构方法,终端执行: uname -m
96+
# 输出: x86_64 表示 Intel Mac
97+
# 输出: arm64 表示 Apple Silicon Mac
98+
# 解决Intel(x86_64)方法:
99+
# 避免你耽误时间精力!理由:网络指导会产生 很多误导!会把你是Intel(x86_64) 实际是指导(arm64)的方法;
100+
# 你使用Intel Mac(x86_64)在编译 iOS 插件时,目标架构应为 arm64 或 arm64e ;
101+
102+
# 一、下载 OpenSSL 官方源代码
103+
# 终端执行下载文件:git clone https://github.com/openssl/openssl.git
104+
# 终端执行cd OpenSSL,这是默认路径:cd openssl
105+
106+
# 终端执行:export PLATFORM="iPhoneOS"
107+
# 终端执行:export SDK=$(xcrun --sdk iphoneos --show-sdk-path)
108+
# 终端执行:export CC="$(xcrun --sdk iphoneos -f clang)"
109+
110+
# 设置支持多个架构,arm64 和 arm64e
111+
# 终端执行:export ARCHS="arm64 arm64e"
112+
# 终端执行:export CFLAGS="-arch arm64 -arch arm64e -isysroot $SDK -miphoneos-version-min=14.0"
113+
# 终端执行:export LDFLAGS="-arch arm64 -arch arm64e -isysroot $SDK"
114+
115+
# 配置 OpenSSL 编译
116+
# 终端执行:./Configure ios64-cross no-shared no-dso no-hw no-engine --prefix=$(PWD)/../openssl-ios
117+
118+
119+
# 二、编译 OpenSSL:注意——> 时间 可能有点长!基于 你的电脑配置区别!
120+
# 配置参数
121+
# 终端执行: ./Configure ios64-cross no-shared no-dso no-hw no-engine --prefix=$(PWD)/../openssl-ios
122+
123+
# 清理缓存,避免旧文件干扰
124+
# 终端执行:make clean
125+
126+
# 编译OpenSSL
127+
# 终端执行:make
128+
129+
# 安装 OpenSSL 到指定目录
130+
# 终端执行:make install
131+
132+
133+
# 三、验证你的编译是否是 arm64 架构:
134+
# 终端执行:lipo -info ../openssl-ios/lib/libcrypto.a
135+
# 终端执行:lipo -info ../openssl-ios/lib/libssl.a
136+
# 成功的输出:libcrypto.a are: arm64 arm64e
137+
138+
139+
140+

0 commit comments

Comments
 (0)