April 28, 2024

Corrupt DMGs – Apple Quietly Broke DMG’s presumably to force compliance.

Using a version of MacOS or OSX before 11.0 – opening a DMG gives a ‘corrupt dmg’ error. No explanation or useful information. We noticed this with Docker.dmg

Here’s an answer

Did some research into this. I think I see what happened here.

Apple end of life’d macOS 10.14 last year – https://endoflife.date/macos

At Docker, we officially dropped support for all versions of macOS below 11. https://docs.docker.com/desktop/install/mac-install/

As part of that change, we switched to ULMO-format DMGs, which are smaller for most users, but are not supported below macOS 10.15 – https://keith.github.io/xcode-man-pages/hdiutil.1.html#format~2

I’m highly annoyed that you’re not getting a better error-message here … presumably hdiutil could do a better job detecting when the DMG is in a format your system doesn’t support. But this is not really something we’re able to fix; macOS controls all the tooling AFAIK.

Marking this as wont-fix / unfortunate, sorry. you’ll either have to upgrade macOS or use an old version of Desktop.

Translation – apple modified the DMG format, in a breaking way. The new format is unrecognized by other operating systems, and will not open or give an hint to the actual problem.

A rough list of DMG history

https://github.com/libyal/libmodi/blob/main/documentation/Mac%20OS%20disk%20image%20types.asciidoc

Whats the big deal?
This is like someone simply quietly breaking zip or mp3.
Apple engineers are aware that this will break on users machines. They are aware that the users will not understand why. They are aware that they will only tell the users they ‘need to upgrade’ to fix it. Apple broke it. They know they broke it. And they will make the users believe they have done something wrong, and feel obligated to update.

Leave a Reply

Your email address will not be published. Required fields are marked *

aejd