4.Theos安装

第四节 Theos 安装(含 Xcode 15 兼容)

学习目标

学完本节,希望你能够:

  1. 在 macOS 上完成 Theos 的安装(克隆、环境变量、ldid、SDK)。
  2. 说出 Xcode 15 下 Theos 要特别注意的点:SDK 路径、架构 arm64e、签名用 ldid、rootless 路径。
  3. 能按步骤解决「SDK 找不到、架构警告、签名失败」等常见报错。
  4. 跑通「创建项目 → make → make package」并确认生成 dylib/deb。
  5. 知道去哪更新 Theos 和 SDK,以及如何验证安装成功。

阅读提示:本节以 Xcode 15 为主环境写,其他 Xcode 版本思路类似,主要差在 SDK 版本号。

常见疑问:Xcode 15 还能用 Theos 吗?------能。Theos 是命令行工具链,对 Xcode 版本依赖小,调好 SDK 和 ldid 即可。


一、Theos 在 Xcode 15 里能用吗?一句话结论

能。 Theos 在 Xcode 15 下完全可用:项目创建、Logos 编译、打包 deb、安装到越狱设备都没问题。和 MonkeyDev 不同,Theos 不依赖 Xcode 的图形界面,主要注意 SDK 路径、架构、签名 几处即可。

完全支持的功能

  • 项目创建和编译
  • Logos 语法
  • 打包 deb、安装到越狱设备
  • Makefile 构建

需要你留意的变更

  • SDK 路径和版本号(如 iPhoneOS17.0.sdk)
  • 代码签名更严,建议用 ldid
  • 架构要包含 arm64e

二、安装与配置(一般怎么干)

全新安装步骤

记成一句话:装依赖 → 克隆 Theos → 配环境变量 → 装 ldid → 搞掂 SDK

bash 复制代码
# 1. 依赖(若无 Homebrew 先装)
brew install dpkg ldid git wget

# 2. 克隆 Theos
export THEOS=~/theos
git clone --recursive https://github.com/theos/theos.git $THEOS

# 3. SDK(关键)
# 方式 A:从本机 Xcode 拷贝
sudo cp -r /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk \
           $THEOS/sdks/iPhoneOS17.0.sdk

# 方式 B:用社区 sdks 仓库(推荐)
cd $THEOS/sdks
wget https://github.com/theos/sdks/archive/refs/heads/master.zip
unzip master.zip && cp -r sdks-master/* . && rm -rf sdks-master master.zip

环境变量

bash 复制代码
# 写入 ~/.zshrc 或 ~/.bash_profile
export THEOS=~/theos
export THEOS_DEVICE_IP=127.0.0.1
export THEOS_DEVICE_PORT=2222
export THEOS_SDK_NAME=iphoneos17.0   # 按你实际 SDK 名改
export PATH=$THEOS/bin:$PATH

三、Xcode 15 下的 Makefile 与 rootless

Makefile 建议配置

makefile 复制代码
ARCHS = arm64 arm64e
TARGET = iphone:clang:17.0:15.0
SDKVERSION = 17.0
SYSROOT = $(THEOS)/sdks/iPhoneOS17.0.sdk

THEOS_PACKAGE_SCHEME = rootless   # iOS 15+ rootless
TARGET_CODESIGN = $(THEOS)/bin/ldid
TARGET_CODESIGN_FLAGS = -S

include $(THEOS)/makefiles/common.mk
TWEAK_NAME = MyTweak
MyTweak_FILES = Tweak.x
MyTweak_CFLAGS = -fobjc-arc -Wno-deprecated-declarations
MyTweak_INSTALL_PATH = /var/jb/Library/MobileSubstrate/DynamicLibraries

include $(THEOS_MAKE_PATH)/tweak.mk
after-install:: install.exec "killall -9 SpringBoard || true"

Rootless(iOS 15+)路径

越狱机若是 rootless (如 palera1n),dylib 装到 /var/jb/... 而不是 /Library/... 。上面 MyTweak_INSTALL_PATH 就是 rootless 路径;非 rootless 可改为 /Library/MobileSubstrate/DynamicLibraries


四、创建项目与编译

nic.pl 创建项目

bash 复制代码
$THEOS/bin/nic.pl
# 建议选 tweak_modern、application_modern、preference_bundle_modern 等带 modern 的模板

编译、打包、安装

bash 复制代码
make clean && make
make package
make install THEOS_DEVICE_IP=localhost THEOS_DEVICE_PORT=2222

记一句:设备要先 SSH 端口转发(如 iproxy 2222 22),再 make install。


五、常见错误与解决(对照表)

现象/报错 原因 怎么办
xcrun: error: SDK "iphoneos" cannot be located SDK 路径变了 xcode-select -s /Applications/Xcode.app/Contents/Developer 或 Makefile 里写死 SYSROOT = $(THEOS)/sdks/iPhoneOS17.0.sdk
ld: warning: ignoring file ... arm64e 缺 arm64e Makefile 里 ARCHS = arm64 arm64e
codesign failed 签名问题 用 ldid:TARGET_CODESIGN = $(THEOS)/bin/ldidTARGET_CODESIGN_FLAGS = -S
make: *** No rule to make target Makefile/路径错 检查 TWEAK_FILES、路径、include 是否正确
dpkg-deb: error 打包格式 检查 control 文件、layout 目录

六、验证安装成功

跑这几条心里有数即可:

bash 复制代码
$THEOS/bin/nic.pl --version   # 或直接 nic.pl 看模板列表
which ldid
ls $THEOS/sdks/
cd /tmp && $THEOS/bin/nic.pl  # 建个测试 tweak,make 一下看是否生成 .theos/obj/.../xxx.dylib

七、社区与更新

  • 更新 Theoscd $THEOS && git pull && git submodule update --init --recursive
  • 更新 SDKcd $THEOS/sdks && git pull(若用 theos/sdks 仓库)
  • 官方仓库:https://github.com/theos/theos
  • Logos 等文档可查 iPhone Dev Wiki、社区 /r/jailbreakdevelopers。

本节小结

你只要记住这几条就行:

  1. Theos 在 Xcode 15 下完全可用,重点是 SDK 路径、arm64e、ldid 签名、rootless 路径。
  2. 安装流程:克隆 Theos → 环境变量 → ldid → SDK;rootless 机子装到 /var/jb/...
  3. 常见坑:SDK 找不到(设 SYSROOT/xcode-select)、缺 arm64e(ARCHS)、签名失败(改用 ldid)。
  4. 验证:nic.pl 能选模板、make 能出 dylib、make package 能出 deb。

本节术语速查

术语 一句话解释
rootless 部分新越狱把系统文件放到 /var/jb,不再直接写 /,安装路径要跟着改。
ldid 越狱环境常用签名工具,给二进制签 entitlements,Theos 默认用它。
SYSROOT 编译时用的 SDK 根目录,指向某版本 iPhoneOS.sdk。

本节思考与练习

  1. 概念:用一句话说明「为什么 Theos 对 Xcode 版本依赖比 MonkeyDev 小」。
  2. 应用 :若报错 SDK "iphoneos" cannot be located,你会按什么顺序排查?
  3. 动手 :在本机完成 Theos 安装与环境变量配置,执行 nic.pl 并成功执行一次 make
  4. 综合:查当前 Theos 的 rootless 安装路径(/var/jb 还是 /Library),并写在你的 Makefile 注释里。

下一节预告 :下一节是 macOS 安装 Theos 完整教程,从零一步步:Command Line Tools、克隆、环境变量、ldid(Intel/Apple Silicon)、验证与第一个项目,把整条链路串起来。

相关推荐
长沙火山4 小时前
3.Theos 与 MonkeyDev
逆向·ios逆向
长沙火山5 小时前
5.macOS 安装 Theos 完整教程
逆向·ios逆向
长沙火山6 小时前
2.开发工具
逆向·ios逆向
长沙火山2 天前
第二十节_Android_加固原理
逆向·安卓逆向
长沙火山3 天前
第十六节_分析_WebSocket_API_请求
逆向·安卓逆向
长沙火山3 天前
第十三节_绕过_SSL_Pinning
逆向·安卓逆向
长沙火山3 天前
第十四节_Android_代码混淆与解混淆
逆向·安卓逆向
长沙火山4 天前
第二节_如何反编译_APK
逆向·安卓逆向
长沙火山4 天前
第七节_动态调试入门
逆向·安卓逆向