以前研究过一次在iPad上安装Linux系统,当时的方案是:AltStore + UTM,由于没有硬件虚拟化,性能非常差,只能安装服务器版Linux,而且UTM由于签名问题需要每7天续签一次,几乎不具有可玩性。
最近看到有帖子说UTM支持硬件虚拟化了,于是稍微研究了一下,上面的两个问题也都解决了。
解决这两个问题的关键都在一个叫:Trollstore(巨魔)的工具。这个工具最强大的地方在于,可以免越狱安装未签名的应用,其原理是利用了iOS系统的一些安全漏洞,因此,这个工具会iOS版本有要求。例如:Trollstore1只支持14.0 ~ 15.4.1 、15.5 Beta 4
版本;Trollstore2支持14 - 16.5
(具体支持的系统版本可以看官网介绍)。因此,只要不是太新的系统,都是可以支持的。
现在的问题变成了如何将这个工具安装到设备中,下面以iPad Pro 第三代(系统版本:16.2
)为例进行介绍。
基本流程是按照官方文档进行操作。
Tips(提示)
应用安装到设备中Sideloadly
是用来通过侧载
方式安装Misaka
;而Misaka
用来溢出并注入Tips
应用,最后打开提示应用,界面就变成了安装Trollstore
的界面,点击安装就可以了。
推荐还是使用Mac系统来操作,Windows上可能会有些问题。
侧载
是指不通过AppStore来安装应用的方式,一般是使用企业证书或开发者证书对ipa文件进行签名,然后进行安装。
在电脑端下载并安装Sideloadly,并将最新版本的Misakaipa文件下载到本地。
拖入Misaka的ipa文件,输入苹果帐号,然后点击Start
,第一次会提示输入帐号密码,完成后Misaka就安装到设备上了。图标如下:
侧载类应用除了sideloadly,还有前面提到的AltStore
,以及爱思助手之类的。它们都有一个共同的缺点,就是每7天需要续签一次,基本只能用作开发调试场景。
Misaka是一款免越狱就可以对iOS设备进行定制的应用,同时也提供了安装Trollstore
的能力。
下面是官方文档推荐的注入方法:
在实际操作过程中遇到了以下两个问题:
Done
,但是打开提示
应用CrashError, please restart your device and try again [A2]
报错,网上找到一个方案是安装3.4.1
版本的Misaka这个步骤是整个安装过程中最花费时间的,重试了很多次,重启了很多次设备,最终采用的是以下方法搞定的:
PersistenceHelper_Embedded
,并拷贝到设备中FileManager
页面,打开到路径/var/containers/Bundle/Application/com.apple.tips/Tips.app
Tips
文件,点击它,然后点击File Overwrite
选项,导入PersistenceHelper_Embedded
文件覆盖打开提示
应用,点击Install Trollstore
进行安装,安装完成后,桌面上就会看到Trollstore的图标:
如果遇到打开
提示
应用Crash或是设备自动重启等问题,请卸载提示应用再重新安装,并再执行一次上面的步骤。
这里展示了UTM的多个版本:
Hypervisor
的版本,支持硬件虚拟化,性能较高(需要是M1 iPad)由于手上的这款是M1芯片,因此选择了UTM HV
版本。
UTM HV
版本的ipa文件拷贝到设备中+
号,选择Install IPA File
,然后选择刚才拷贝的ipa文件Install
,很快就会安装完成现在Linux系统的arm生态已经很健全了,基本上常见的应用都有提供对应的arm版本。这里选择了Ubuntu系统,除了生态考虑,还有性能因素,毕竟iPad才8G内存,如果系统本身占用了太多资源的话,留给应用的资源就很有限了。
创建一个新虚拟机
,选择虚拟化
(这种模式会开启硬件虚拟机)键盘
和鼠标
才能操作)至此,一个便携式Linux系统已经安装完成,系统操作还是非常流畅的,可以安装上vscode、git、docker等常用工具,轻量级开发也基本没啥问题。
连接上外接显示器,系统操作起来会更加舒服。
iPad上通过免越狱实现硬件虚拟化,极大提升了虚拟机系统操作的流畅性,真正将桌面版系统运行起来。在此基础上,iPad才能真正变成一个开发工具。