dipa-studio/ios-sweet

硬件与物联网

把 Apple 的 XNU 内核和未修改的 iOS 16 用户态跑在 Redmi Note 10 Pro 上,面向内核移植实验者。

1,027
552
Python
MIT
上线 10 天

这是一个研究性质的 bring-up 项目,不是日常能用的手机系统:适合对 ARM 平台移植、在非 Apple 硬件上运行 Apple 用户态感兴趣的人。它能让 iPhone X 的 iOS 16.7.16 用户态在骁龙 732G 手机上启动,但多个核心子系统仍是占位或失败状态,而且安装过程会清空手机用户数据。

解决什么问题

要把 Apple 的用户态搬到非 Apple 手机上,通常得先有一层能跑的内核:CPU 初始化、中断、定时器、存储驱动,以及设备 bootloader 能接受的启动链。想实验的人往往得自己拼内核补丁、设备树、存储驱动和 iOS 根镜像。这个项目为特定机型打包了这条路径:通过 fastboot boot 加载 shim,把控制权交给打过补丁的 XNU,从 userdata 里的 HFS+ iOS 根文件系统启动 launchd、各类 daemon 和 SpringBoard。换来的结果是手机能进入主屏幕,而不是停在早期串口阶段。

有什么不同

特别之处在于这一整条栈里有很多环节是替换或生成出来的,而不是从零重写。项目保留原厂小米 bootloader,用一个小的 shim 读取实时设备树,加载 Mach-O 内核和生成的 Apple Device Tree,再带一长串 boot-args 启动 XNU。内核里有一份自己写的 UFS host 驱动,并从 userdata 分区挂载 iOS 根。上层跑的是未修改的 iPhone X 16.7.16 根文件系统和共享缓存,因此 launchd、backboardd、SpringBoard 都是真正的 Apple 二进制。

实际好处是能观察真正的 iOS 系统软件在 Qualcomm 板子上启动,并拿到能对照共享缓存符号化的崩溃日志。代价是大量关键逻辑藏在 boot-args 和补丁序列里:渲染完全走 CPU,大约 20–30 fps;8 个核只起了 6 个;Wi-Fi、蓝牙、蜂窝、音频、相机、传感器、GPS 和 Face ID 对应的 daemon 会启动失败或反复重启。README 明确说 Apple 的安全模型基本被关掉了。如果想不碰手机就迭代内核改动,tools/qemu-sweet.py 可以用 QEMU 配测试 RAM-disk 根启动同一个内核。

谁值得试

适合手里有一台闲置 sweet、对 XNU 和 ARM bring-up 好奇,并且能接受“能解锁、能开设置、能下拉控制中心,但退不出 App”的人。拉日志和符号化脚本是这个项目最有用的产出。不适合想要一台能用备用机或应用平台的人:没有 App Store、没有 Apple ID、没有 GPU 驱动,Home 手势也不工作。QEMU 路径让想改内核但没设备的人也能参与,不过这里描述的主屏幕结果仍然依赖真机。

使用条件与边界

文档路径要求 Redmi Note 10 Pro 的 global 或 Indian 版本(SM7150)、已解锁的 bootloader,以及一台 Linux PC;详见项目说明。内核通过 fork 的 workflow 借 blacktop/darwin-xnu-build 在 GitHub 的 macOS runner 上构建;根镜像则是用 apfs-fuse、hfsprogs 和 sudo 从 Apple 的 iPhone X IPSW 组装。装根镜像会清空 userdata 的全部内容;README 要求先备份 persist、modemst1、modemst2、fsg、fsc、boot、dtbo、vbmeta,因为这些分区含有每台设备单独的校准数据。首次启动在 Apple logo 上约 4–5 分钟,刷根镜像约 7 分钟。其他版本或固件可能需要修改。

HotRepo 点评

HotRepo 唯一记录到的是 2026-10-25 新项目榜(并非总榜)Python 第 24 名、总计 1,027 颗星;这只是一个快照,不是按日增长序列。项目创建于 2026-10-14,README 的状态说明标注为 2026-10-18。由于没有可比的每日榜单历史,目前无法判断热度能否持续。在投入一台闲置手机之前,先确认文档里的构建路径确实覆盖你手上的 sweet 版本和固件。

Hacker News 讨论

iOS running on the Redmi Note 10 Pro
▲ 3 · 2 条评论 · 2026年10月19日
iOS-sweet: iOS 16 running on a Redmi Note 10 Pro
▲ 3 · 0 条评论 · 2026年10月19日

本文由 AI 根据项目 README 生成,更新于 2026年10月25日,以项目官方文档为准。