iPad上使用UTM安装Linux arm64系统

0x00 背景

以前研究过一次在iPad上安装Linux系统,当时的方案是:AltStore + UTM,由于没有硬件虚拟化,性能非常差,只能安装服务器版Linux,而且UTM由于签名问题需要每7天续签一次,几乎不具有可玩性。

最近看到有帖子说UTM支持硬件虚拟化了,于是稍微研究了一下,上面的两个问题也都解决了。

0x01 基本原理

解决这两个问题的关键都在一个叫:Trollstore(巨魔)的工具。这个工具最强大的地方在于,可以免越狱安装未签名的应用,其原理是利用了iOS系统的一些安全漏洞,因此,这个工具会iOS版本有要求。例如:Trollstore1只支持14.0 ~ 15.4.1 、15.5 Beta 4版本;Trollstore2支持14 - 16.5(具体支持的系统版本可以看官网介绍)。因此,只要不是太新的系统,都是可以支持的。

现在的问题变成了如何将这个工具安装到设备中,下面以iPad Pro 第三代(系统版本:16.2)为例进行介绍。

基本流程是按照官方文档进行操作。

0x02 准备工作

  • Tips(提示)应用安装到设备中
  • 最新版本的Sideloadly
  • 最新版本的iTunes(Windows端)
  • 最新版本的Misaka

Sideloadly是用来通过侧载方式安装Misaka;而Misaka用来溢出并注入Tips应用,最后打开提示应用,界面就变成了安装Trollstore的界面,点击安装就可以了。

推荐还是使用Mac系统来操作,Windows上可能会有些问题。

0x03 安装Trollstore应用

侧载是指不通过AppStore来安装应用的方式,一般是使用企业证书或开发者证书对ipa文件进行签名,然后进行安装。

使用Sideloadly安装Misaka

在电脑端下载并安装Sideloadly,并将最新版本的Misakaipa文件下载到本地。

sideloadly安装ipa示例

拖入Misaka的ipa文件,输入苹果帐号,然后点击Start,第一次会提示输入帐号密码,完成后Misaka就安装到设备上了。图标如下:

侧载类应用除了sideloadly,还有前面提到的AltStore,以及爱思助手之类的。它们都有一个共同的缺点,就是每7天需要续签一次,基本只能用作开发调试场景。

使用Misaka注入提示应用

Misaka是一款免越狱就可以对iOS设备进行定制的应用,同时也提供了安装Trollstore的能力。

下面是官方文档推荐的注入方法:

在实际操作过程中遇到了以下两个问题:

  • 在上面的第三步操作后提示Done,但是打开提示应用Crash
  • 多操作几次后容易出现Error, please restart your device and try again [A2]报错,网上找到一个方案是安装3.4.1版本的Misaka

这个步骤是整个安装过程中最花费时间的,重试了很多次,重启了很多次设备,最终采用的是以下方法搞定的:

  1. 这里下载最新版本的PersistenceHelper_Embedded,并拷贝到设备中
  2. 点击Misaka底部的FileManager页面,打开到路径/var/containers/Bundle/Application/com.apple.tips/Tips.app
  3. 找到Tips文件,点击它,然后点击File Overwrite选项,导入PersistenceHelper_Embedded文件覆盖
  4. 重启设备

打开提示应用,安装Trollstore

打开提示应用,点击Install Trollstore进行安装,安装完成后,桌面上就会看到Trollstore的图标:

如果遇到打开提示应用Crash或是设备自动重启等问题,请卸载提示应用再重新安装,并再执行一次上面的步骤。

0x04 安装UTM应用

这里展示了UTM的多个版本:

  • UTM: 标准版,使用JIT方式,性能一般
  • UTM HV: 开启Hypervisor的版本,支持硬件虚拟化,性能较高(需要是M1 iPad)
  • UTM SE: 性能较差

由于手上的这款是M1芯片,因此选择了UTM HV版本。

  1. UTM HV版本的ipa文件拷贝到设备中
  2. 打开Trollstore,选择右上角+号,选择Install IPA File,然后选择刚才拷贝的ipa文件
  3. 在弹出的窗口中点击Install,很快就会安装完成

0x05 安装Ubuntu 22.04 arm64桌面版

现在Linux系统的arm生态已经很健全了,基本上常见的应用都有提供对应的arm版本。这里选择了Ubuntu系统,除了生态考虑,还有性能因素,毕竟iPad才8G内存,如果系统本身占用了太多资源的话,留给应用的资源就很有限了。

  1. 镜像ISO文件下载到设备中
  2. 打开UTM,点击创建一个新虚拟机,选择虚拟化(这种模式会开启硬件虚拟机)

  1. 然后选择Linux,添加刚才拷贝进来的iso镜像文件,后面是一些CPU、内存等硬件相关的参数配置
  2. 保存后启动虚拟机,开始进行安装,Ubuntu也支持Live方式使用,可以先体验一下
  3. 安装完成后进入系统,可以做一些个性化界面优化(访问虚拟机需要外接键盘鼠标才能操作)

至此,一个便携式Linux系统已经安装完成,系统操作还是非常流畅的,可以安装上vscode、git、docker等常用工具,轻量级开发也基本没啥问题。

连接上外接显示器,系统操作起来会更加舒服。

0x06 总结

iPad上通过免越狱实现硬件虚拟化,极大提升了虚拟机系统操作的流畅性,真正将桌面版系统运行起来。在此基础上,iPad才能真正变成一个开发工具。

0x07 参考链接

分享