
开发者SmuOS(又名None24)成功在微软停产的双屏安卓手机Surface Duo 2上原生启动iOS 26。该设备搭载骁龙888处理器,目前双屏幕显示与触控功能均已正常运行。系统设置中,电话和设置应用可横跨双屏显示,iOS将设备识别为“iPhone 17 Pro Max”。据悉,这并非模拟器运行,而是通过自定义UEFI加载器引导苹果开源的XNU内核实现。
微软已于2024年10月停止对Surface Duo 2的支持,而苹果的双屏iPhone Duo于上周上市。当苹果以1999美元推出其双屏产品时,这位技术爱好者已将微软的废弃硬件改造成了类iPhone Duo设备,这一局面颇具讽刺意味。
iOS 26在Surface Duo 2上的实拍细节
测试设备的“关于本机”页面显示,系统版本为iOS 26.5.2,机型名称为“iPhone 17 Pro Max”,容量显示为5GB,序列号、Wi-Fi地址和蓝牙状态均显示为N/A。iOS将两块屏幕视为单一画布,设置应用的侧边栏位于左屏,选中页面位于右屏,完整呈现了与iPad一致的Liquid Glass视觉效果。
电话应用的双屏布局虽略显尴尬但极具趣味:拨号键盘居中分布,部分数字键分列左右屏,中间列隐藏在铰链处,甚至绿色通话按钮也被一分为二。尽管存在色彩条纹故障及右屏裂痕(开发者称使用的是测试机),但在安卓驱动的Surface Duo上成功运行iOS电话应用已属难得。
该项目进展迅速。10月24日,SmuOS发布iOS 26原生启动消息时仅单屏可用;数小时后进入设置界面,帖子浏览量迅速突破5.4万。至10月25日,双屏运行帧率已从最初的3-10fps提升至37fps,触控功能也宣告正常。
技术解析:如何在安卓手机上启动iOS
苹果在GitHub发布了iOS和macOS内核XNU的源代码。由于iPhone与多数安卓手机均采用ARM芯片,开发者可针对高通处理器编译该内核。SmuOS解释称,核心工作是从源码构建XNU内核以在特定SoC的ARM架构上运行,关键在于组件兼容性。
另一关键组件是开源项目UniXNU,旨在通过UEFI在非苹果ARM64硬件上运行iOS和macOS,类似Hackintosh的OpenCore。SmuOS作为UniXNU中Surface Duo 2(代号zeta)移植版的维护者,利用iOS 26.5.2的官方恢复镜像及编译后的XNU内核实现了这一突破。因未重新分发固件和苹果文件,该版本无法直接下载刷入。
让内核启动仅是开始。SmuOS需从零编写或移植驱动程序,包括为骁龙888的Adreno 660 GPU构建Metal转换层(将Metal转换为Vulkan并通过Turnip驱动运行)。此外,由于骁龙888不支持苹果芯片的指针认证安全功能,开发者从iOS共享缓存中剥离了2960万个指针签名,并将部分arm64e代码重写为arm64以优化性能。
SmuOS指出,图形堆栈而非内核才是最大难点,细微问题常导致SpringBoard等进程崩溃。他通过反编译ipsw深入理解iOS底层机制,历时两个月完成调查、试错与开发,并借助AI辅助理解XNU内核细节。
后续计划:Surface Pen模拟与iOS 27
在当前“iOS on Android”热潮中,SmuOS的移植版因在双屏上运行带有Liquid Glass效果的iOS 26而备受瞩目。他声称在相关新闻爆发前,已在Surface Duo 2和Pixel 10 Pro Fold上运行iOS 26,旨在成为首个在折叠屏上实现该功能的人。
目前,Surface Duo 2上的iOS仍处于研究阶段,壁纸渲染为黑色,部分功能尚未完善。SmuOS透露,两项新功能即将推出:Surface Pen模拟Apple Pencil,以及难度更高的iOS 27构建版本。由于尚无公开的iOS 27内核标签,升级工作更具挑战性。
除Surface Duo外,SmuOS还在将微软取消的双屏Windows版本Andromeda移植到Pixel 10 Pro Fold,并为Ayn Odin 2构建操作系统。他表示,这些探索纯粹出于乐趣,并鼓励模组社区继续推动技术创新:“如果你移植别人已经做过的事情,请确保做到最好或与那个人合作。”