讓「折騰」這件事變得更好玩一些:在iPad上運(yùn)行PC系統(tǒng)
在 iOS 設(shè)備上運(yùn)行 PC 系統(tǒng)古已有之,不但有各種越獄插件,還有很多偷偷上架在 App Store 里的軟件。但自從 iOS 加強(qiáng)對設(shè)備內(nèi)文件的保護(hù)之后,由于不再能通過特殊軟件訪問到除 iTunes 共享文件夾之外的其他文件,那些靠關(guān)閉文件共享向蘋果隱藏身份的 App 已經(jīng)銷聲匿跡了。
那現(xiàn)在我們是否還有辦法在不越獄的情況下繼續(xù)在 iOS 上運(yùn)行 PC 系統(tǒng)呢?幸運(yùn)的是,這些曾經(jīng)可用的工具都是開源的,在蘋果開放了 Xcode 真機(jī)調(diào)試權(quán)限之后,我們可以選擇自己下載源代碼安裝這些虛擬機(jī)工具來使用。
由于年代久遠(yuǎn),一些軟件的代碼已無法在新版 Xcode 上直接編譯,我于是花了一些時間給舊項(xiàng)目做了更新并放在了我自己的 Github 上。以下介紹的三款軟件均會給出原作者的版本和我修改過的版本。想折騰的可以按照「折騰提示」做,不想折騰的 每個軟件我都提供了安裝好的系統(tǒng),可以直接嘗試。
關(guān)于如何利用 Xcode 安裝這些開源軟件的問題,由于篇幅限制我就不直接寫在這里了。
minivMac4iOS
我曾寫了一篇 文章(上古 Mac 操作系統(tǒng)體驗(yàn)指南) 介紹一款叫 vMac 的軟件,它可以讓你在今天的電腦上運(yùn)行 Macintosh 的操作系統(tǒng),這個 App 是它的 iOS 移植版。
軟件支持模擬 Mac 128K、Mac II、Mac Plus,可以選擇直接使用觸摸屏或者使用屏幕作為觸摸板操作,在 iPhone 上還支持 3D Touch 作為長按使用。
安裝提示
在 GitHub 上下載項(xiàng)目的時候需要注意,由于軟件引用了第三方庫 libmfs 和 libres,下載源代碼的時候需要單獨(dú)點(diǎn)進(jìn)去下載這兩個項(xiàng)目,然后拷貝到工程文件夾的對應(yīng)位置上,其余和一般安裝過程一致。
使用提供的鏡像
運(yùn)行系統(tǒng)需要一個對應(yīng) Mac 型號的 ROM 文件和一個啟動盤,我這里提供了一個裝好系統(tǒng)的鏡像,你可以直接通過 iTunes 文件共享復(fù)制到設(shè)備上使用: 百度云 、 MediaFire
運(yùn)行的時候首先會出現(xiàn) Macintosh 的 等待啟動盤畫面,這時用兩個手指向左劃可以調(diào)出選盤菜單。在選擇啟動盤之前,你需要先點(diǎn)按左下角的設(shè)置按鈕。由于我的鏡像對應(yīng)的硬件是 Mac II 的版本,請選擇這個硬件,分辨率隨意。點(diǎn)按右上角的完成,之后選擇磁盤鏡像開機(jī)就可以了。
第一次運(yùn)行后的畫面是黑白的,可以按照下圖中的步驟來切換到彩色顯示模式(在蘋果菜單中打開「控制面板 Control Panel」,之后選擇「顯示器 Monitor」,在彈出的對話框中左側(cè)選擇彩色,右側(cè)選擇 256 色)。需要注意的是色彩會占用大量的內(nèi)存空間,假如你需要運(yùn)行一些比較大的程序,黑白模式可以留下更多的可用內(nèi)存。此外 Macintosh 系統(tǒng)的菜單需要鼠標(biāo)一直保持長按才會顯示,松手就會消失,在選擇菜單中的項(xiàng)目的時候需要注意一下。
使用時兩個手指向上滑動可以顯示鍵盤,使用三個手指可以拖動窗口等目標(biāo)。如果使用 iPhone,也可以使用 Force Touch 拖動目標(biāo)。
你可以在這里找到能在系統(tǒng)上運(yùn)行的軟件: GoogleSite (沒有梯子的可以到我上面提到的 vMac 介介紹文中找到打包的文件)
折騰提示
如果要在 App 中自己安裝系統(tǒng),可以在我上面給出的 vMac 介紹文的鏈接中下載到系統(tǒng)的安裝盤,各種硬件 Rom 等材料,注意在 App 中點(diǎn)按編輯按鈕并按加號,可以生成空的磁盤鏡像。
版本區(qū)別
原作者版本: Github
我這個版本和原作者的版本沒什么區(qū)別,我只是覺得原作者的圖標(biāo)太丑自己做了一個而已。:new_moon_with_face:
DosPad
這款軟件原名 iDos,在非常早的時候就打著懷舊 Dos 游戲的旗號堂而皇之的過審出現(xiàn)在了 App Store。它自帶了幾個 Dos 游戲,但假如你用一些瀏覽 iOS 文件的軟件看他的文件結(jié)構(gòu)的話,就會發(fā)現(xiàn)這實(shí)際上是一個基于 DosBox 的虛擬機(jī)程序。
后來 iOS 收緊文件權(quán)限之后,這款軟件就再也不能直接使用了,不過其開源的完整版本保留了 iTunes 文件共享的接口,所以安裝其開源版本依舊可以好好玩耍。軟件支持所有基于 Dos 的操作系統(tǒng),不過基本上只有 Win3.1 可以保證運(yùn)行效率。你可以在里面安裝一些 Dos 游戲來玩,其自帶的搖桿功能可以非常方便的玩游戲。
使用提供的鏡像
這個用起來比較簡單,只要把解壓出來的所有文件用 iTunes 文件共享扔進(jìn)去就可以了,如果有同名文件夾選擇覆蓋。
我預(yù)裝了 Windows 3.1,開機(jī)輸入 win 可以運(yùn)行。內(nèi)置了早期版本的 Office、VB、VC 等,由于這些程序需要一個叫 share 的 Dos 組件來運(yùn)行,而 DosBox 對這組件支持不好,所以在運(yùn)行 Windows 之前要先運(yùn)行 fakeshar.com 來模擬一個 share 環(huán)境,否則會報錯。
有一個小提示,假如你想拖動一個東西的話,除了可以切換到鼠標(biāo)面板之外,還可以長按屏幕。當(dāng)屏幕上出現(xiàn)指紋圖案之后,就表示現(xiàn)在的鼠標(biāo)是按住的狀態(tài)。于是移動鼠標(biāo)就是拖動了。此外你還可以通過快速點(diǎn)按兩次并按住拖動的方法。
折騰提示
- DosPad 的 iTunes 文件共享目錄其實(shí)就是 C 盤。
- 如果要掛載 IMG ISO 鏡像等可以使用 IMGMOUNT 命令,詳情見: DOSBOX Wiki
- 虛擬機(jī)的顯示芯片為 S3’s 864,分辨率酌情,要么會爆炸,驅(qū)動安裝詳情見: SierraHelp
- 虛擬機(jī)的 Midi 硬件為 Ad Lib general,需要在控制面板的 Midi 映射程序中手動選擇。
版本區(qū)別
原作者版本: Github
- 由我設(shè)計的新圖標(biāo)。
- 調(diào)整系統(tǒng)盤位置,方便使用。
- 修改編譯選項(xiàng),支持編譯到新設(shè)備。
- 運(yùn)行時系統(tǒng)不會鎖定屏幕。
- 移除了已經(jīng)無用的 iDos 分支。
已知問題
手機(jī)上界面布局不對,正在嘗試解決。
iBox
iBox 是近兩年開發(fā)的 Bochs 移植,但原作者做完基本功能就棄坑不管了。由于基于 Bochs 這一功能較為完整的虛擬機(jī),使得 iBox 的兼容性極高,可以運(yùn)行各種各樣的系統(tǒng)。不管是 Windows、Linux 甚至喬布斯離開蘋果時候做的 NextStep 也可以運(yùn)行。但是因?yàn)?Bochs 完全模擬了 x86 及其外圍設(shè)備,導(dǎo)致這款軟件速度很慢。所以雖然對于喜歡折騰的人來說可玩性極高,但卻并不實(shí)用,假如你只是想玩一些老游戲之類的,我會更推薦上面的 DosBox。
安裝提示
軟件依賴 SDL 庫,需要先到 SDL 官網(wǎng) 下載 源代碼 和 工具包 。
工具包是一個 DMG 文件,打開后需要先把里面白色樂高圖標(biāo)的 SDL2.framework 文件拷貝到 /Library/Frameworks 目錄中。之后再解壓下載的源代碼,把 include/SDL_config_iphoneos.h 這個文件復(fù)制到 /Library/Frameworks/SDL2.framework/Headers/ 里面。之后就可以正常編譯了。
使用提供的鏡像
和前面的 minivMac 一樣,iDos 也使用 IMG 文件作為系統(tǒng)盤,你可以把我提供的幾個系統(tǒng)盤通過 iTunes 文件共享復(fù)制到設(shè)備上。運(yùn)行之后點(diǎn)擊加號添加一個配置文件。先選擇從 HDD 啟動,并把視頻擴(kuò)展(Extension)設(shè)置為 None。再點(diǎn)擊 Drives 添加一個 HDD,并選擇你希望啟動的鏡像文件。最后點(diǎn)擊右上角的保存就可以開始運(yùn)行了。
在豎屏狀態(tài)下鍵盤會一直顯示,橫屏狀態(tài)下?lián)u晃設(shè)備可以顯示和隱藏鍵盤。
折騰提示
- iBox 就是 Bochs,只要你可以制作在電腦版 Bochs 成功運(yùn)行的鏡像,基本上就可以在這運(yùn)行了。
- 沒足夠的時間別折騰,巨坑。
版本區(qū)別
原作者版本: Github
- 隨便設(shè)計了一個新圖標(biāo)(修這 App 都很費(fèi)時間,原版壓根沒有圖標(biāo),這個圖標(biāo)先湊活用著)。
- 運(yùn)行時不會鎖定屏幕。
- 支持 Swift 3,可以用 Xcode 8 編譯。
- 修復(fù)多次晃動屏幕時畫面亂飛的問題。
- 修復(fù)全屏?xí)r有畫面在屏幕外看不到的問題。
- 修復(fù)在 iPad Pro 上運(yùn)行時設(shè)置窗口尺寸問題。