笔记
0工具
0此页用于记录用户反馈问题后的每一次改进
关于
“写笔记”支持四种格式——Word 文档、Excel 表格、Markdown、纯文本,起稿或二次编辑时都能随时切换,同一篇笔记想用哪种形态来记,都由你说了算。
md、txt、csv、json 这类纯文本则原样载入,不做多余加工。拿一张现成的表倒进来、改几笔、再导出去,等于白用一台免费的格式转换器。
要带走就在右上角点“下载”,可导出 PDF、Word、Markdown、Excel、TXT 等格式;列表卡片“⋯”菜单里,也有同样的下载入口。
在“工具”页点“+ 上传工具”即可发布:填好名称与链接,再用 Markdown 把使用方法写清楚——能解决什么问题、怎么装、怎么用,比堆介绍实在。
要分发安装包就一并上传压缩包(ZIP、RAR、7Z、TAR.GZ,最大 35MB),别人在详情页一键下载;只放链接不带附件也可以。
工具按大家的收藏热度排序,好用的自然会被顶上来。发布后可在详情页或卡片菜单里编辑、下架。
写笔记时勾上“隐藏”,这篇就只存在于你自己的账号里:不进列表、不进搜索、不上首页精选,也不会出现在任何公开的页面,链接发给别人同样打不开。
适合放密码、草稿、日记这类只给自己看的内容;想公开,去“发布”打开它,把“隐藏”的勾去掉再保存,之后编辑会默认保持原状态,不会悄悄变回公开。
不想公开、只想临时给人看:点“分享”生成一条带密码和有效期的链接,到期自动失效,你也能随时撤销。
你的内容会同时保存在多个副本上,系统定期做备份与完整性校验,再配合异地容灾机制:就算某台机器出问题,数据也不会丢,可以长期放心存放;特别重要的资料,仍建议你另外再留一份备份。
全站跑在容器化、模块化的现代架构上,更新、部署、回滚都很快,扩展性和稳定性都按长期运营的标准来设计(Built for reliability, designed to scale)。
这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。
不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。
产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。
如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。
趋势
vphone-cli:在 macOS 上通过 Virtualization.framework 启动虚拟 iPhone 的完整指南
利用 Apple 的 Virtualization.framework 和 PCC 研究虚拟机基础设施,在 Apple Silicon Mac 上启动虚拟 iPhone,支持多种固件变体与越狱选项。
引言
vphone-cli 是一个开源命令行工具,它利用 Apple 的 Virtualization.framework 在 Apple Silicon Mac 上创建并运行虚拟 iPhone。该项目基于 PCC(Private Cloud Compute)研究虚拟机基础设施,实现了从 IPSW 下载、固件修补、DFU 恢复、自定义固件安装到首次启动的完整流程。目前该项目在 GitHub 上已获得 8.9k Star 和 1.3k Fork,展示了社区对 iOS 虚拟化的浓厚兴趣。
核心原理
Apple 的 Virtualization.framework 允许在 macOS 上创建虚拟机,但通常只支持 macOS 和 Linux 客户机。vphone-cli 通过使用 PCC 研究虚拟机基础设施,突破了这一限制,使得 iOS 能够作为客户机运行。它利用了 Apple 在 iOS 18 中引入的 Private Cloud Compute(PCC)虚拟机研究环境,该环境原本用于安全研究,现在被重新用于虚拟 iPhone。
系统要求
- 主机:Apple Silicon Mac,macOS 15+(Sequoia)
- 开发环境:Xcode + iOS SDK(用于交叉编译客户机守护进程)
- 安全设置:需要放宽 SIP/AMFI 以允许私有 PV=3 权限和未签名二进制文件
- 依赖工具:python@3.13, aria2, wget, gnu-tar, openssl@3, ldid-procursus, sshpass, keystone, cmake, libusb, ipsw, zstd
安装与构建
通过 Homebrew 安装
bash
brew install zqxwce/tap/vphone-cli
从源码构建
bash
git clone --recurse-submodules https://github.com/Lakr233/vphone-cli.git
./scripts/setup_tools.sh # 安装依赖、构建工具链子模块、创建 Python 虚拟环境
./scripts/build.sh # 构建并签名 vphone-cli,打包 .app,交叉编译 vphoned
构建完成后,可执行文件位于 cd .build/vphone-cli.app/Contents/MacOS/,运行 vphone-cli --help 查看帮助。
快速开始
一条命令即可完成从下载到首次启动的完整流程:
bash
vphone-cli vm create myphone -V jb # -V / --variant 指定变体
vphone-cli vm launch myphone
详细使用指南
虚拟机管理
bash
vphone-cli vm list # 列出所有虚拟机(--json 可脚本化)
vphone-cli vm info myphone # 显示单个虚拟机信息
vphone-cli vm new myphone # 创建空配置包(可指定 CPU/内存/磁盘)
vphone-cli vm config myphone --cpu 8 --memory 8192 # 修改配置
vphone-cli vm clone myphone myphone-2 # 快速 APFS 克隆,生成新设备标识
vphone-cli vm export myphone --out myphone.tzst # 导出(默认 zstd,--max 使用 xz -9)
vphone-cli vm import myphone.tzst --name restored # 导入
vphone-cli vm rename myphone iphone16 # 重命名
vphone-cli vm delete iphone16 # 删除
手动构建虚拟机流程
vm create 自动执行以下步骤,也可以手动分步执行:
bash
1. 创建空配置包
vphone-cli vm new myphone
2. 下载并合并 IPSW
vphone-cli fw prepare myphone --iphone-version 26.1
3. 修补引导链
vphone-cli fw patch myphone --variant jb
4. 进入 DFU 模式(后台运行)
vphone-cli vm launch myphone --dfu &
5. 获取 SHSH 并执行 DFU 恢复
vphone-cli restore myphone --get-shsh
vphone-cli restore myphone
6. 停止 DFU 启动
vphone-cli vm stop myphone
7. 安装自定义固件(需要 sudo)
vphone-cli cfw install myphone --variant jb
8. 首次启动
vphone-cli vm launch myphone
更新 iOS 版本
通过 fw prepare 指定 IPSW 文件路径即可更新:
bash
vphone-cli fw prepare myphone --iphone-source /path/to.ipsw --cloudos-source /path/to.ipsw
固件变体
vphone-cli 提供五种修补变体,安全绕过程度递增,通过 --variant 参数指定:
| 变体 | 引导链补丁数 | CFW 阶段数 | 说明 |
|---|---|---|---|
| less | 4 | 2 | 无补丁,保留 iOS 缓解措施 |
| regular | 42 | 10 | 绕过 AMFI/SSV/Img4/TXM |
| dev | 53 | 12 | 增加 TXM 权限/调试绕过 |
| jb | 113 | 14 | 完整越狱,首次启动自动安装 Sileo 和 TrollStore |
| exp | 141 | 18 | jb 的超集,增加反虚拟机检测研究补丁 |
每种变体的详细组件差异见 research/0_binary_patch_comparison.md。
连接虚拟机
- SSH(越狱变体):
ssh -p 22222 mobile@<vm-ip>,密码alpine - SSH(regular/dev 变体):
ssh -p 22222 root@<vm-ip> - VNC:
vnc://<vm-ip>:5901
文件布局
所有文件默认位于 ~/.vphone/,可通过环境变量重定向:
| 路径 | 内容 |
|---|---|
~/.vphone/VMs/ |
虚拟机配置包(可用 $VPHONE_LIBRARY_ROOT 覆盖) |
~/.vphone/ipsws/ |
下载的 iPhone 和 cloudOS IPSW 缓存 |
~/.vphone/tools/ |
APFS seal-volume 工具缓存 |
~/.vphone/debs/ |
.deb 包缓存(用于 jb/exp 变体安装 Sileo、apt 等) |
~/.vphone/venv/ |
Python 虚拟环境(可用 $VPHONE_VENV_DIR 覆盖) |
优先级:单项覆盖 > $VPHONE_ROOT > 默认路径。
SIP/AMFI 放宽
方案 A:完全禁用 SIP 和 AMFI(最宽松)
在 Recovery 模式(长按电源键 → 终端)执行:
bash
csrutil disable
csrutil allow-research-guests enable
重启进入 macOS 后设置 AMFI 启动参数(需要 SIP 完全关闭):
bash
sudo nvram boot-args="amfi_get_out_of_my_way=1 -v"
重启生效
方案 B:保持 SIP 开启,仅对特定二进制放行
在 Recovery 模式执行:
bash
csrutil enable --without debug
csrutil allow-research-guests enable
重启后运行:
bash
vphone-amfidont # 本地构建时路径为 .build/vphone-cli.app/Contents/Resources/vphone-amfidont
此方案保持 AMFI 系统级启用,仅对 vphone-cli 二进制放行。
测试环境
项目已在多种主机和固件组合上验证,例如:
- Mac16,11 + iOS 27.0b2 + cloudOS 26.1-23B85
- Mac16,8 + iOS 26.5.1 + cloudOS 26.1-23B85
- Mac16,12 + iOS 26.3 + cloudOS 26.3-23D128
- Mac16,6 + iOS 26.4.1 + cloudOS 26.4-23E5207q
完整列表见 README。
常见问题
zsh: killed ./vphone-cli
AMFI/调试限制未绕过,请参考前置条件设置 amfi_get_out_of_my_way=1 或使用 amfidont。
Virtualization is not available on this hardware
你的 Mac 本身是虚拟机,PV=3 客户机无法嵌套。请使用非嵌套的 macOS 15+ 主机。
卡在 "Press home to continue"
通过 VNC 连接,右键(双指点击)模拟 Home 键。
系统应用无法安装
在 iOS 设置过程中,不要选择日本或欧盟地区(额外的监管检查无法满足),建议选择美国等地区。
应用启动崩溃 EXC_GUARD / GUARD_TYPE_MACH_PORT
重新修补固件并强制处理:
bash
vphone-cli fw patch --variant --force-exc-guard
然后重新恢复/安装。iOS 18 基础版本始终需要此操作。
安装 .ipa / .tipa
使用运行中虚拟机的 Install 菜单(拖拽或文件选择)。
cfw install 挂起在重新签名系统二进制时
这是 ldid-procursus 2.1.5 及更早版本的已知 bug:bytes(uint64_t) 调用 __builtin_clzll(0) 时没有零值保护,导致无符号循环计数器下溢,ldid 陷入无限循环。触发条件为包含特定 entitlements 的 plist。
总结
vphone-cli 将 iOS 虚拟化带入了普通开发者的视野,通过利用 PCC 研究基础设施,实现了在 Mac 上运行完整 iOS 系统的可能性。尽管需要放宽安全设置,但它在越狱研究、应用测试和安全分析方面具有巨大潜力。该项目展示了 Apple 自家虚拟化框架的灵活性,也为未来 iOS 开发工具链开辟了新方向。