j0shua-SYSON/iOS3-VM

GitHub: j0shua-SYSON/iOS3-VM

iOS3-VM 是一款用纯 C11 从零编写的全系统模拟器,通过精确模拟初代 iPhone 的 S5L8900 芯片硬件,在越狱 iPhone 上启动真实的 iPhone OS 3 内核与界面。

Stars: 0 | Forks: 0

# iOS3-VM ### 在现代越狱 iPhone 的应用内启动**真正的 iPhone OS 3** —— 苹果真实的内核、`launchd` 和 SpringBoard。 *一款从零开始打造的全系统模拟器,复刻 2007 年 iPhone 的芯片硬件,运行在 2025 年的口袋设备中。* [![core-tests](https://static.pigsec.cn/wp-content/uploads/repos/cas/c0/c0e0a586bf8db1874bd00726f21360b30fbe1b9b78ac1be17d381c58f6f1e290.svg)](https://github.com/j0shua-SYSON/iOS3-VM/actions/workflows/core-tests.yml) [![ios-build](https://static.pigsec.cn/wp-content/uploads/repos/cas/fb/fb179d9172a157b0b1b52876ec856d46aa2dc085ce7df6498f64606717cc8654.svg)](https://github.com/j0shua-SYSON/iOS3-VM/actions/workflows/ios-build.yml) [![license](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) ![platform](https://img.shields.io/badge/host-iOS%2015%20·%20A9%20·%20jailbroken-black) ![guest](https://img.shields.io/badge/guest-iPhone%20OS%203.1.3%20·%20S5L8900-lightgrey)
## 这是什么? iOS3-VM 是一个**底层全系统模拟器**。它不*重新实现* iPhone OS,也不伪造其应用——它极其精准地模拟了初代 iPhone 芯片(三星 **S5L8900** 及其 ARMv6 核心)的**硬件**,使得苹果自家**未经修改**的 boot ROM → iBoot → XNU kernel → `launchd` → **SpringBoard** 能够在上面运行,并让它们相信自己运行在一台真实的 2009 年 iPhone 上。 然后,它将这整个模拟出的手机**放入你真实 iPhone 的一个应用中。** ## 与众不同之处 | | 游戏/应用模拟器 | UTM (应用内的 QEMU) | **iOS3-VM** | |---|:---:|:---:|:---:| | 运行**真正的苹果 OS** | ✗ | ✓ (Linux/Windows 客户机) | ✓ **(iPhone OS 3)** | | **全系统**(启动真实内核) | ✗ | ✓ | ✓ | | 针对真实 iPhone 的硅片 | ✗ | ✗ | ✓ (S5L8900) | | **从零开始**、无依赖的内核 | — | ✗ (QEMU + glib + …) | ✓ (可移植 C11) | | 运行在**越狱的 iPhone** 上 | 部分支持 | ✓ | ✓ | ## 状态 本项目按**里程碑推进——每个阶段都能启动可见的内容。** 绝不闷头闭门造车。 | | 里程碑 | 状态 | |---|---|---| | **M0** | 工具链就绪:核心构建与测试在 CI 中运行,iOS `.ipa` 在 macOS runner 上构建,设备端自测运行 ARM 代码 | ✅ **已完成** | | **M1** | 完整的 ARMv6 (ARM1176) 解释器,已完成单元测试 | 🔵 进行中 — *24 个测试通过* | | **M2** | S5L8900 启动:裸机 payload 通过模拟的 UART 打印输出 | ⚪ | | **M3** | IMG3 + NAND/NOR:苹果真实的 **iBoot** 运行 | ⚪ | | **M4** | 真实的 **XNU kernel** 启动并输出日志 | ⚪ | | **M5** | `launchd` → **SpringBoard** 渲染界面——去点它吧 🏆 | ⚪ | 详见 [`docs/ROADMAP.md`](docs/ROADMAP.md)。 ## 工作原理 ``` Windows dev box GitHub Actions iPhone 6s Plus ┌────────────────┐ git push ┌──────────────────┐ .ipa ┌──────────────┐ │ portable C core│ ──────────► │ macOS runner: │ ───────► │ jailbroken │ │ tested locally │ │ xcodebuild → │ │ iOS 15 · A9 │ │ (MinGW, no SDK)│ │ ldid fake-sign │ │ RWX JIT-ready│ └────────────────┘ └──────────────────┘ └──────────────┘ ``` **模拟器核心是纯 C11 编写的,零依赖**,因此可以在任何桌面端不到一秒钟内完成单元测试——并且可以原封不动地直接放入 iOS 应用中。唯一的苹果特定代码是 UIKit/Metal 外壳。详见 [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md)。 **为什么旧手机是*理想*的宿主机:** A9 属于 `arm64` 架构,但早于苹果的 APRR/PAC/PPL JIT 强化机制(A12+),因此一旦越狱放宽了代码签名限制,我们就可以通过简单的 `mmap` 获取普通的 **RWX** 页面——这是动态重编译器(dynarec)最纯净的运行环境。客户机运行在 412 MHz 单核和 128 MB RAM 上;而宿主机则是双核 ~1.85 GHz `arm64` 和 2 GB RAM。实现实时运行是一个切实可行的目标。 ## 构建与运行 你不需要在自己的机器上安装**任何苹果相关的东西**——CI 会处理苹果平台的构建。 **在本地测试核心**(任何带有 C 编译器 + CMake 的操作系统均可): ``` cmake -S . -B build && cmake --build build && ctest --test-dir build --output-on-failure ``` **获取应用:** 推送到 GitHub → `ios-build` 工作流将生成一个未签名、伪签名的 `iOS3VM.ipa` 构件。下载它并安装到你的越狱设备上(TrollStore / 任何启用了 AppSync 的安装器)。不需要 Apple Developer 账号。 **启动 OS**(从 M3 阶段开始):将你**自己的** iPhone OS 3.1.3 IPSW 及其(已公开的)解密密钥放入应用的固件文件夹中——详见 [`docs/BOOT_CHAIN.md`](docs/BOOT_CHAIN.md)。 ## 要求 - **宿主机:** 一台运行 iOS 15 的**越狱** iPhone 6s / 6s Plus(Apple A9)。Dopamine 2.x(支持 A9)或 palera1n 均可使用;越狱提供的“在应用中允许 JIT”功能是解锁 dynarec 的关键。 - **固件:** 你自己的 iPhone OS 3.1.3 镜像及密钥。**本仓库不内置任何固件**——不包含任何苹果代码,就像游戏主机模拟器不会提供 ROM 一样。 ## 法律声明 iOS3-VM 是一款基于 MIT 许可证的原创、净室(clean-room)模拟器。它**不包含任何苹果固件、密钥或代码。** 你需要自行提供你有权使用的固件。 “iPhone”、“iOS”和“iPhone OS”是 Apple Inc. 的商标;本项目与苹果没有任何关联,也未获得其认可或赞助。
标签:ARM架构, Bash脚本, iOS, 客户端加密, 生成式AI安全, 系统底层, 虚拟机