DMG 支持的移除背景
DMG 是什么
DMG(Disk Image) 是 Apple 生态下的磁盘镜像格式,类似于 macOS 里的 .dmg 文件。在早期版本的 EtchDroid 里,DMG 是被标记为"支持"甚至"beta 支持"的格式。
为什么被移除了
EtchDroid v1.9 rc1 的发布说明里有这样一行:
"The DMG functionality has been removed; use an older version if you still need it"
开发者在 v1.9 rc3 的 FAQ 页面补充了更详细的解释:
"Writing DMG images is a very uncommon use case and maintaining support for them is a lot of work. I've decided to remove support for them in order to focus on stability and performance."
三个核心理由:
- 用户群体极小:EtchDroid 的典型用户是 Linux 用户,他们不需要在手机上烧录 macOS 的 DMG 镜像
- 维护成本高:DMG 格式在某些边缘场景下会导致崩溃和稳定性问题,修复投入与受益用户数完全不成比例
- 与产品定位不符:EtchDroid 聚焦"笔记本挂了时的 Linux 应急救场",DMG 场景不在这个定位里
哪些版本还支持 DMG
如果你的场景确实需要写 DMG 镜像,GitHub Releases 里提供了明确标记为"Last release with DMG support"的版本——v1.5.1。这是官方推荐的选择,不是某个社区分支。
不过要提醒:v1.5.1 是较老的版本,缺少 Material You UI、写入后校验机制、v2.0+ 的崩溃修复等新特性。只有在你的场景必须写 DMG、且没有其他替代方案时才考虑回退版本。
DMG 格式为什么难搞
DMG 比 ISO/IMG 复杂得多:
- DMG 内部可能使用 UDIF(Apple 的通用磁盘镜像格式)或 CUDIF、DADC 等压缩形式
- DMG 可能包含加密分区
- DMG 写入 USB 设备后在非 macOS 系统上不一定能引导(macOS 引导需要 Apple 的引导加载器和 EFI 分区配合)
- DMG 在某些场景下需要 EtchDroid 通过额外的存储权限来读取 Apple 特定的文件系统元数据——这又会与 Android 的存储权限模型冲突
这些复杂性使得 DMG 支持的维护成本在 v2.0 重构期变得无法承受。