编注:本文为少数派 12 月主题征稿活动中「可惜!那些好用但停更了的 App」主题入选投稿之一,我们将在日后开展更多不同领域和话题的征稿活动,敬请留意。
▍前言
作为一个将 Arch Linux 作为主力系统使用多年的人,虽然我曾经说过它没有多数人刻板印象中的那么不稳定,但我也不敢百分百保证我的 Arch Linux 系统每次更新都不会滚挂。不过好在我遇到的大部分严重到无法开机的所谓「滚挂」的情况其实都是 GRUB 更新时出问题导致系统引导损坏,要进行修复,只需制作一个 Arch Linux 安装 U 盘,用这个启动盘启动电脑并修复 GRUB 即可。但问题是有时候我并没有随身携带 U 盘,那么这时候 DriveDroid 就会派上用场了。
▍关于 DriveDroid
DriveDroid 的功能十分简单也十分小众,就是把 Android 手机变成 USB 启动盘,太过于小众以至于停更多年我仍然没有找到合适的替代品。关于 DriveDroid 是何时停更的已经很难考证了,因为我写这篇文章的时候已经在 Play 商店找不到它了,它还有一个付费版本,但也已经无法付费,甚至它官网上的下载链接都失效了。
我在 APKMirror 上面找到的下载链接最后更新于 2018 年 11 月,所以 DriveDroid 已经停更了至少 7 年了。尽管 DriveDroid 版本已经非常老旧,但在我安装了最新版 Android 16 的 Nothing Phone (3a) 上似乎还能正常工作,不过据说在某些型号的的手机上 DriveDroid 已经不能正常用了,如果发现 DriveDroid 在你的手机上不能使用,可以尝试安装 DriveDroid-fix-Magisk-module 这个 Magisk 模块,能够修复 DriveDroid 不能在新版 Android 设备上正常工作的问题。
▍首次打开
DriveDroid 需要 ROOT 权限才能正常工作,并且因为不同型号和系统的设备对于 USB 传输的处理方式不同,所以在第一次打开 DriveDroid 时需要运行一个设置向导来检测 APP 是否能正常工作。
首先需要授予 ROOT 授权,并设置一个文件夹用来存储系统镜像,记住这个文件夹路径,后面会用到。
接着需要使用数据线连接手机和电脑,点击 NEXT 后选择 USB System,用来适配不同的设备,我这里只有一个 Standard Android 可选,如果有多个可选,尽量选择第一个,如果不能用,就依次往后尝试。
再次点击 NEXT 后 DriveDroid 会尝试启动,此时需要在电脑上检查是否出现了一个新的 USB 设备或是 CD-ROM 设备,如果出现了,就说明 DriveDroid 能够正常工作,在 Windows 上,USB 设备可能不会在文件管理器中出现,但是系统会有新设备插入的提示音,这种应该也算是正常工作。如果正常工作就选择「Android shows up in OS」并点击 NEXT,如果没有新设备出现,就回到上一个页面尝试不同的 USB System,如果都不行,那就可能是设备不兼容,可以尝试安装前文提到的 Magisk 模块。
之后不要断开数据线连接,重启电脑进入 BIOS,会发现有一个新的启动项可用,确认关闭了安全启动,并选择这个启动项启动电脑,如果电脑能够成功启动并显示「DriveDroid booted succesfully」,就说明一切配置完成了。
▍功能限制
在配置完成后的 Summary 界面,可以看到一行「The device cannot act as CD-ROM device」,说明当前设备不能模拟 CD-ROM 设备,只能够模拟 U 盘。这对于大部分 Linux 发行版的 ISO 文件来说不成问题,因为这些 ISO 文件既可以直接作为 CD 盘使用,也可以模拟成 U 盘使用,但是一部分系统 ISO(比如 Windows)只能作为 CD 盘使用,就不能使用 DriveDroid 启动。
对于这个问题有两个解决方案:一个是为手机安装定制的内核或 ROM 使手机获得模拟 CD-ROM 的能力,这个方案比较复杂且不一定适用于所有手机;另一个是将不支持的 ISO 文件转换为支持的格式,这会在后文中提到。
▍直接启动 ISO 文件
对于可以直接模拟成 U 盘的 Linux 系统 ISO,启动方式很简单,只需下载想要的 ISO 并在 DriveDroid 启动就可以了,DriveDroid 内置了一些 Linux 系统 ISO 的下载链接,只需点击主页面的加号选择「Download image」即可,不过因为 DriveDroid 已经停更很久了,所以它内置的下载链接年代也都很久远,并不推荐使用,付费版本可以自定义下载仓库,但是目前 DriveDroid 已经无法付费了。目前更推荐手动下载 ISO 文件。
以 Arch Linux 为例,我可以从国内镜像站下载最新版本的 ISO 文件,将文件放入之前配置好的用来存储系统镜像的文件夹。在 DriveDroid 主界面下拉刷新,会发现除了之前运行设置向导时创建的测试镜像,也出现了刚刚下载的 Arch Linux 镜像。
点击 Arch Linux 镜像,会弹出三个选项,分别是只读 USB、可读写的 USB 以及 CD-ROM,因为我的设备不支持模拟 CD-ROM,且系统镜像不需要读写,所以我选择只读 USB,当 Arch Linux 镜像旁边出现了一个带锁的 USB 图标,就说明 DriveDroid 正在把 Arch Linux 模拟为只读 USB 启动盘。
使用数据线连接手机和电脑,重启电脑,选择新出现的启动项启动电脑,如果手机的接口是 USB 2.0 协议的,启动可能会稍慢些,耐心等待一小会,就可以进入 Arch Linux 的安装环境了。
▍转换 ISO 文件
对于 Windows ISO 这样不支持的文件,除了为手机安装定制的内核或 ROM,另一个方法是转换 ISO 文件,其实思路很简单,创建一个空白的 img 文件并用 DriveDroid 模拟成可读写的 USB 设备,连接到电脑后在电脑上用写盘软件把系统镜像写入进去,和正常制作启动 U 盘差不多。为了方便起见下面的演示我依然用的 Arch Linux 的 ISO 文件,对于 Windows ISO 步骤是一样的,只是要注意按需更改文件大小。
首先在 DriveDroid 主界面点击右下角加号,选择「Create blank image」。
为镜像文件命名,因为只有付费版 DriveDroid 才能重新调整 img 文件大小,所以这里的文件大小需要一步到位,要不小于镜像文件的大小,但也不要太大占用多余的存储空间,因为 Arch Linux ISO 文件大小约为 1.4G,为了保险,我将空白文件大小设为了 2G,文件系统选择 None 不指定,因为后面写盘软件会对其格式化,配置完毕点击右上角完成。
在主界面点击刚刚创建的空白 img 文件,选择模拟成可读写 USB,当旁边出现一个不带锁的 USB 图标,就说明 DriveDroid 正在把空白 img 文件模拟为可读写 U 盘。
使用数据线连接手机和电脑,在电脑上使用写盘软件(我这里用的是 Raspberry Pi Imager)把系统 ISO 镜像写入到模拟的 USB 设备上。
之后就可以按照上一节的步骤将创建的 img 镜像模拟为 USB 启动盘了。
使用同样的方法,理论上也可以将空白 img 文件写入成 Ventoy 启动盘来启动任意系统镜像,或是将其格式化成 U 盘用来存储资料,我没有试过,不过这样的话仍需要将其连接到电脑上才能进行读写,在手机上不能直接读写,感觉意义不大。
▍总结
DriveDroid 是一个功能十分小众的应用,也许平时用不到,但如果遇到特殊情况是真的能够救急的,在手机中常备这个软件还是挺有必要的。