EtchDroid 中文文档 下载 App

为什么内部 SD 卡槽永远用不了

不是 EtchDroid 不想做,是 Android 根本不让做

EtchDroid 的 FAQ 里有一句话:

"Other apps might be able to get around this limitation by using root access; EtchDroid does not require root and will never do so."

这直接回答了为什么内部 SD 卡槽不被支持。下面把技术细节说清楚。

Android 对存储访问的两层限制

Android 的存储权限模型分两个阶段,恰好对应了 EtchDroid 为什么做不到:

阶段一:分区挂载限制

从 Android 4.0 开始,可存储介质(内部存储、SD 卡)由系统以分区方式挂载。应用通过标准文件 API(File、DocumentFile)访问的是已挂载的分区,而不是原始块设备(/dev/block/mmcblk1)。这意味着:

但 EtchDroid 需要做的恰好是替换整个磁盘的分区表和文件系统——这只有原始块设备写入权限才能做到。

阶段二:USB Host API 的物理隔离

EtchDroid 唯一能走的路是 USB Host API。但内部 SD 卡槽的控制器不在 USB 总线上,它走的是 SDIO(Secure Digital Input/Output)总线——物理上就不是 USB 设备,USB Host API 根本看不到它。

所以这条路从硬件层就走不通,跟权限无关。

其他刻录工具是怎么做到的

能写内部 SD 卡槽的刻录工具(比如 Rufus for Android 的某些变种),本质上走的是 root 路径——通过 su 拿到 shell 权限,然后用 dd 或直接写 /dev/block/ 节点。

EtchDroid 的产品决策从第一天就和这条路径对立:无 root 是核心承诺,不是可选项。开发者认为 root 权限对普通用户来说太危险,也与 EtchDroid 的"零门槛、零配置"定位冲突。

这算不算一个硬伤

对于"用 Android 手机写 Linux U 盘"这个场景,不算——因为绝大多数 Linux 用户用 U 盘而不是手机内部存储来启动电脑。真正影响的是树莓派场景:用户必须买一根 USB 读卡器。

不过好消息是:USB 读卡器很便宜,而且一条读卡器就能同时满足"写 U 盘装系统"和"写 SD 卡装树莓派"两个需求。把它当作应急工具箱里的一个常备配件就好。