[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f2dfhanlzgxne0":3},{"code":4,"message":5,"data":6,"timestamp":36},10000,"success",{"full_name":7,"position":8,"description":9,"language":10,"stars":11,"forks":12,"stars_gained":13,"age_days":14,"hn_threads":15,"one_liner":26,"summary_md":27,"topic":28,"github_topics":31,"license":32,"homepage":33,"updated_at":34,"history":35},"dipa-studio\u002Fios-sweet",24,"iOS 16 userland + XNU on Redmi Note 10 Pro (sweet, SM7150)","Python",1027,552,100,10,[16,22],{"id":17,"title":18,"points":19,"comments":20,"posted_at":21},50149266,"iOS running on the Redmi Note 10 Pro",3,2,"2026-10-19",{"id":23,"title":24,"points":19,"comments":25,"posted_at":21},50153772,"iOS-sweet: iOS 16 running on a Redmi Note 10 Pro",0,"把 Apple 的 XNU 内核和未修改的 iOS 16 用户态跑在 Redmi Note 10 Pro 上，面向内核移植实验者。","这是一个研究性质的 bring-up 项目，不是日常能用的手机系统：适合对 ARM 平台移植、在非 Apple 硬件上运行 Apple 用户态感兴趣的人。它能让 iPhone X 的 iOS 16.7.16 用户态在骁龙 732G 手机上启动，但多个核心子系统仍是占位或失败状态，而且安装过程会清空手机用户数据。\n\n## 解决什么问题\n\n要把 Apple 的用户态搬到非 Apple 手机上，通常得先有一层能跑的内核：CPU 初始化、中断、定时器、存储驱动，以及设备 bootloader 能接受的启动链。想实验的人往往得自己拼内核补丁、设备树、存储驱动和 iOS 根镜像。这个项目为特定机型打包了这条路径：通过 `fastboot boot` 加载 shim，把控制权交给打过补丁的 XNU，从 `userdata` 里的 HFS+ iOS 根文件系统启动 launchd、各类 daemon 和 SpringBoard。换来的结果是手机能进入主屏幕，而不是停在早期串口阶段。\n\n## 有什么不同\n\n特别之处在于这一整条栈里有很多环节是替换或生成出来的，而不是从零重写。项目保留原厂小米 bootloader，用一个小的 shim 读取实时设备树，加载 Mach-O 内核和生成的 Apple Device Tree，再带一长串 boot-args 启动 XNU。内核里有一份自己写的 UFS host 驱动，并从 `userdata` 分区挂载 iOS 根。上层跑的是未修改的 iPhone X 16.7.16 根文件系统和共享缓存，因此 launchd、backboardd、SpringBoard 都是真正的 Apple 二进制。\n\n实际好处是能观察真正的 iOS 系统软件在 Qualcomm 板子上启动，并拿到能对照共享缓存符号化的崩溃日志。代价是大量关键逻辑藏在 boot-args 和补丁序列里：渲染完全走 CPU，大约 20–30 fps；8 个核只起了 6 个；Wi-Fi、蓝牙、蜂窝、音频、相机、传感器、GPS 和 Face ID 对应的 daemon 会启动失败或反复重启。README 明确说 Apple 的安全模型基本被关掉了。如果想不碰手机就迭代内核改动，`tools\u002Fqemu-sweet.py` 可以用 QEMU 配测试 RAM-disk 根启动同一个内核。\n\n## 谁值得试\n\n适合手里有一台闲置 `sweet`、对 XNU 和 ARM bring-up 好奇，并且能接受“能解锁、能开设置、能下拉控制中心，但退不出 App”的人。拉日志和符号化脚本是这个项目最有用的产出。不适合想要一台能用备用机或应用平台的人：没有 App Store、没有 Apple ID、没有 GPU 驱动，Home 手势也不工作。QEMU 路径让想改内核但没设备的人也能参与，不过这里描述的主屏幕结果仍然依赖真机。\n\n## 使用条件与边界\n\n文档路径要求 Redmi Note 10 Pro 的 global 或 Indian 版本（SM7150）、已解锁的 bootloader，以及一台 Linux PC；详见[项目说明](https:\u002F\u002Fgithub.com\u002Fdipa-studio\u002Fios-sweet\u002Fblob\u002Fmain\u002FREADME.md)。内核通过 fork 的 workflow 借 [blacktop\u002Fdarwin-xnu-build](https:\u002F\u002Fgithub.com\u002Fblacktop\u002Fdarwin-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 分钟。其他版本或固件可能需要修改。\n\n## HotRepo 点评\n\nHotRepo 唯一记录到的是 2026-10-25 新项目榜（并非总榜）Python 第 24 名、总计 1,027 颗星；这只是一个快照，不是按日增长序列。项目创建于 2026-10-14，README 的状态说明标注为 2026-10-18。由于没有可比的每日榜单历史，目前无法判断热度能否持续。在投入一台闲置手机之前，先确认文档里的构建路径确实覆盖你手上的 `sweet` 版本和固件。",{"slug":29,"name":30},"hardware","硬件与物联网",[],"MIT","https:\u002F\u002Fwww.reddit.com\u002Fr\u002Fhackios\u002Fs\u002FrMV4w6WDTe","2026-10-25T02:53:47Z",[],1792906366]