Drivedroid 中文文档 下载 App

USB Gadget 与 Mass Storage 协议 —— 手机为什么能当 U 盘

USB Gadget 子系统

Android 手机的底层是 Linux 内核。Linux 内核有一个叫 USB Gadget 的子系统,专门让设备充当 USB 外设时模拟各种设备功能。手机接到电脑上时,电脑以为接了一块 U 盘、一个网络适配器、一个音频设备——这些全是 Gadget 在起作用。

常见的 Gadget 功能:

DriveDroid 正是利用了 Mass Storage 和 CD-ROM 这两种 Gadget 功能。

Mass Storage 协议

USB Mass Storage 协议定义了电脑如何通过 USB 接口读写外设上的块设备。当 DriveDroid 驱动内核切换到 Mass Storage Gadget 模式后:

  1. 手机把某个文件或分区暴露为一个块设备
  2. 内核通过 USB Mass Storage 协议把这个块设备呈现给 PC
  3. PC 上看到的就是一个真实的 USB 存储设备——跟插了一块 U 盘没区别

为什么能引导启动

PC 的 BIOS/UEFI 在启动时会枚举所有可启动设备,包括 USB 接口上的 Mass Storage 设备。只要 DriveDroid 模拟出来的 USB 设备里有合法的引导扇区(MBR 或 EFI System Partition),PC 就能从上面读引导程序,进而启动里面的操作系统。

这跟你插一块真正的启动 U 盘没有本质区别——区别只在于那块"U 盘"其实是手机里的一个镜像文件,由内核实时转换。

内核能力是前提

Gadget 功能是内核里编好的代码。有的手机内核把 Mass Storage 和 CD-ROM 功能都编进去了,有的只编了 Mass Storage,有的甚至两个都没有。这就是为什么 DriveDroid 安装后,有的手机能显示 CD-ROM 选项、有的不能——不是 app 功能差异,是手机内核能力差异。

自定义 ROM(LineageOS、Pixel Experience 等)通常会把两种 Gadget 都带上,所以刷了自定义 ROM 的手机用 DriveDroid 成功率更高。