在 iOS 设备上运行 PC 系统古已有之,不但有各种越狱插件,还有很多偷偷上架在 App Store 里的软件。但自从 iOS 加强对设备内文件的保护之后,由于不再能通过特殊软件访问到除 iTunes 共享文件夹之外的其他文件,那些靠关闭文件共享向苹果隐藏身份的 App 已经销声匿迹了。
那现在我们是否还有办法在不越狱的情况下继续在 iOS 上运行 PC 系统呢?幸运的是,这些曾经可用的工具都是开源的,在苹果开放了 Xcode 真机调试权限之后,我们可以选择自己下载源代码安装这些虚拟机工具来使用。
由于年代久远,一些软件的代码已无法在新版 Xcode 上直接编译,我于是花了一些时间给旧项目做了更新并放在了我自己的 Github 上。以下介绍的三款软件均会给出原作者的版本和我修改过的版本。想折腾的可以按照「折腾提示」做,不想折腾的 每个软件我都提供了安装好的系统,可以直接尝试。
关于如何利用 Xcode 安装这些开源软件的问题,由于篇幅限制我就不直接写在这里了。
minivMac4iOS
我曾写了一篇 文章(上古 Mac 操作系统体验指南) 介绍一款叫 vMac 的软件,它可以让你在今天的电脑上运行 Macintosh 的操作系统,这个 App 是它的 iOS 移植版。
软件支持模拟 Mac 128K、Mac II、Mac Plus,可以选择直接使用触摸屏或者使用屏幕作为触摸板操作,在 iPhone 上还支持 3D Touch 作为长按使用。
安装提示
在 GitHub 上下载项目的时候需要注意,由于软件引用了第三方库 libmfs 和 libres,下载源代码的时候需要单独点进去下载这两个项目,然后拷贝到工程文件夹的对应位置上,其余和一般安装过程一致。
使用提供的镜像
运行系统需要一个对应 Mac 型号的 ROM 文件和一个启动盘,我这里提供了一个装好系统的镜像,你可以直接通过 iTunes 文件共享复制到设备上使用: 百度云 、 MediaFire
运行的时候首先会出现 Macintosh 的 等待启动盘画面,这时用两个手指向左划可以调出选盘菜单。在选择启动盘之前,你需要先点按左下角的设置按钮。由于我的镜像对应的硬件是 Mac II 的版本,请选择这个硬件,分辨率随意。点按右上角的完成,之后选择磁盘镜像开机就可以了。
第一次运行后的画面是黑白的,可以按照下图中的步骤来切换到彩色显示模式(在苹果菜单中打开「控制面板 Control Panel」,之后选择「显示器 Monitor」,在弹出的对话框中左侧选择彩色,右侧选择 256 色)。需要注意的是色彩会占用大量的内存空间,假如你需要运行一些比较大的程序,黑白模式可以留下更多的可用内存。此外 Macintosh 系统的菜单需要鼠标一直保持长按才会显示,松手就会消失,在选择菜单中的项目的时候需要注意一下。
使用时两个手指向上滑动可以显示键盘,使用三个手指可以拖动窗口等目标。如果使用 iPhone,也可以使用 Force Touch 拖动目标。
你可以在这里找到能在系统上运行的软件: GoogleSite (没有梯子的可以到我上面提到的 vMac 介介绍文中找到打包的文件)
折腾提示
如果要在 App 中自己安装系统,可以在我上面给出的 vMac 介绍文的链接中下载到系统的安装盘,各种硬件 Rom 等材料,注意在 App 中点按编辑按钮并按加号,可以生成空的磁盘镜像。
版本区别
原作者版本: Github
我这个版本和原作者的版本没什么区别,我只是觉得原作者的图标太丑自己做了一个而已。:new_moon_with_face:
DosPad
这款软件原名 iDos,在非常早的时候就打着怀旧 Dos 游戏的旗号堂而皇之的过审出现在了 App Store。它自带了几个 Dos 游戏,但假如你用一些浏览 iOS 文件的软件看他的文件结构的话,就会发现这实际上是一个基于 DosBox 的虚拟机程序。
后来 iOS 收紧文件权限之后,这款软件就再也不能直接使用了,不过其开源的完整版本保留了 iTunes 文件共享的接口,所以安装其开源版本依旧可以好好玩耍。软件支持所有基于 Dos 的操作系统,不过基本上只有 Win3.1 可以保证运行效率。你可以在里面安装一些 Dos 游戏来玩,其自带的摇杆功能可以非常方便的玩游戏。
使用提供的镜像
这个用起来比较简单,只要把解压出来的所有文件用 iTunes 文件共享扔进去就可以了,如果有同名文件夹选择覆盖。
我预装了 Windows 3.1,开机输入 win 可以运行。内置了早期版本的 Office、VB、VC 等,由于这些程序需要一个叫 share 的 Dos 组件来运行,而 DosBox 对这组件支持不好,所以在运行 Windows 之前要先运行 fakeshar.com 来模拟一个 share 环境,否则会报错。
有一个小提示,假如你想拖动一个东西的话,除了可以切换到鼠标面板之外,还可以长按屏幕。当屏幕上出现指纹图案之后,就表示现在的鼠标是按住的状态。于是移动鼠标就是拖动了。此外你还可以通过快速点按两次并按住拖动的方法。
折腾提示
- DosPad 的 iTunes 文件共享目录其实就是 C 盘。
- 如果要挂载 IMG ISO 镜像等可以使用 IMGMOUNT 命令,详情见: DOSBOX Wiki
- 虚拟机的显示芯片为 S3’s 864,分辨率酌情,要么会爆炸,驱动安装详情见: SierraHelp
- 虚拟机的 Midi 硬件为 Ad Lib general,需要在控制面板的 Midi 映射程序中手动选择。
版本区别
原作者版本: Github
- 由我设计的新图标。
- 调整系统盘位置,方便使用。
- 修改编译选项,支持编译到新设备。
- 运行时系统不会锁定屏幕。
- 移除了已经无用的 iDos 分支。
已知问题
手机上界面布局不对,正在尝试解决。
iBox
iBox 是近两年开发的 Bochs 移植,但原作者做完基本功能就弃坑不管了。由于基于 Bochs 这一功能较为完整的虚拟机,使得 iBox 的兼容性极高,可以运行各种各样的系统。不管是 Windows、Linux 甚至乔布斯离开苹果时候做的 NextStep 也可以运行。但是因为 Bochs 完全模拟了 x86 及其外围设备,导致这款软件速度很慢。所以虽然对于喜欢折腾的人来说可玩性极高,但却并不实用,假如你只是想玩一些老游戏之类的,我会更推荐上面的 DosBox。
安装提示
软件依赖 SDL 库,需要先到 SDL 官网 下载 源代码 和 工具包 。
工具包是一个 DMG 文件,打开后需要先把里面白色乐高图标的 SDL2.framework 文件拷贝到 /Library/Frameworks 目录中。之后再解压下载的源代码,把 include/SDL_config_iphoneos.h 这个文件复制到 /Library/Frameworks/SDL2.framework/Headers/ 里面。之后就可以正常编译了。
使用提供的镜像
和前面的 minivMac 一样,iDos 也使用 IMG 文件作为系统盘,你可以把我提供的几个系统盘通过 iTunes 文件共享复制到设备上。运行之后点击加号添加一个配置文件。先选择从 HDD 启动,并把视频扩展(Extension)设置为 None。再点击 Drives 添加一个 HDD,并选择你希望启动的镜像文件。最后点击右上角的保存就可以开始运行了。
在竖屏状态下键盘会一直显示,横屏状态下摇晃设备可以显示和隐藏键盘。
折腾提示
- iBox 就是 Bochs,只要你可以制作在电脑版 Bochs 成功运行的镜像,基本上就可以在这运行了。
- 没足够的时间别折腾,巨坑。
版本区别
原作者版本: Github
- 随便设计了一个新图标(修这 App 都很费时间,原版压根没有图标,这个图标先凑活用着)。
- 运行时不会锁定屏幕。
- 支持 Swift 3,可以用 Xcode 8 编译。
- 修复多次晃动屏幕时画面乱飞的问题。
- 修复全屏时有画面在屏幕外看不到的问题。
- 修复在 iPad Pro 上运行时设置窗口尺寸问题。