Skip to content

Releases: thehallifax/DFUUtility

DFUUtility 0.12.1 Community

Choose a tag to compare

@thehallifax thehallifax released this 16 Sep 13:07

DFUUtility 0.12.1 Community

DFUUtility 0.12.1 adds focused handling for Apple's
ConfigurationUtilityKit.error Code 401 restore failure.

  • Restore failures caused by an outdated MobileDevice host framework now show
    concise guidance to update macOS and try again.
  • The alert retains safe target and selected-system context without exposing
    identifiers, commands, or local IPSW paths.
  • Complete cfgutil evidence remains available in the protected operation log.
  • Restore execution, targeting, firmware compatibility, and privilege behavior
    are unchanged.

Community artifacts remain ad-hoc signed and are not Developer ID authenticated
or notarized.

DFUUtility 0.12.0 Community

Choose a tag to compare

@thehallifax thehallifax released this 15 Sep 23:41

DFUUtility 0.12.0 Community

DFUUtility 0.12.0 expands the Community release with safer mobile Recovery
Restore workflows, more precise firmware selection, and improved technician
workflows.

Highlights

  • Restore eligible iPhone and iPad devices already in Recovery with exact
    device targeting. Recovery Restore was physically accepted on an
    iPhone15,4 using iOS 27.0 / 24A437.
  • Select firmware by exact ProductType using Apple's current catalogue together
    with validated compatible cached images. Historical compatible cached images
    can remain available in the device chooser, and Restore readiness updates
    immediately after validation.
  • Improve reconnect/session reconciliation so operation state remains attached
    to the correct device, while retaining supervision metadata when reported.
  • Improve sidebar sizing and live-resize behavior, with refreshed deterministic
    application screenshots.
  • Add a public GitHub Release bootstrap installer while keeping distribution
    and source-checkout update paths separate.
  • Extend deterministic coverage with the current 291-test suite, screenshot
    generation, and process-level regression harnesses.

Catalogue presence does not guarantee that Apple will authorize a downgrade,
and firmware signing status is not inferred where Apple does not provide an
authoritative value. These changes do not claim universal iPhone/iPad support,
parallel Restore, or hardware coverage beyond the recorded acceptance matrix.

Community artifacts remain ad-hoc signed and are not Developer ID authenticated
or notarized.

DFUUtility 0.11.0 Community

Choose a tag to compare

@thehallifax thehallifax released this 10 Sep 05:08

DFUUtility 0.11.0 Community

DFUUtility 0.11.0 is a polished Community release for technicians restoring,
reviving, preparing, and inventorying Apple devices.

Highlights

  • Production-accepted binary self-updating for packaged installations through
    GitHub Releases, with explicit download and install actions, transactional
    replacement, destination verification, rollback protection, and verified
    relaunch. Source installations retain their separate, safety-gated Git
    update workflow.
  • Technician-oriented multi-device sessions and sequential Restore, Revive,
    and Restart workflows with explicit selection and per-device firmware.
  • Independent macOS, iOS, and iPadOS Firmware Library browsing, validated
    managed downloads, local IPSW selection, and exact compatibility gates.
  • Guided physical-button DFU assistance for supported iPhone and iPad models,
    plus Mac DFU, Restore, and Revive workflows with same-device verification and
    structured operation progress.
  • Read-only Device Capture with identifiers, serial-number QR codes, asset
    tags, and CSV export, together with Diagnostics and dedicated-host readiness
    guidance.
  • Refreshed end-user documentation and deterministic fictional-data
    screenshots, with clearer separation between DFUUtility's Apache-2.0 license
    and the preserved Asahi Linux macvdmtool license, attribution, and pinned
    upstream revision.

Distribution and compatibility

Community artifacts are ad-hoc signed and are not Developer ID authenticated
or notarized. Physical acceptance applies only to the products and workflows
listed in the project's hardware-acceptance documentation; this release does
not claim universal Apple hardware compatibility.

The complete packaged binary updater lifecycle was production accepted for
0.10.9 → 0.10.10.

DFUUtility 0.10.10 Community

Choose a tag to compare

@thehallifax thehallifax released this 10 Sep 04:34

DFUUtility 0.10.10 Community release candidate

DFUUtility 0.10.10 is a maintenance release serving as the production
acceptance target for the corrected binary self-update lifecycle.

The real 0.10.9 → 0.10.10 production self-update has not yet been performed
or accepted. Community artifacts are ad-hoc signed and are not Developer ID
authenticated or notarized.

DFUUtility 0.10.9 Community

Choose a tag to compare

@thehallifax thehallifax released this 10 Sep 03:56

DFUUtility 0.10.9 Community release candidate

DFUUtility 0.10.9 is a maintenance release for the corrected binary-update
handoff when the update sheet is attached.

  • The update presentation is dismissed and attached AppKit sheets are ended
    before requesting application termination.
  • Termination is dispatched on the next main run-loop turn.
  • Originating-process waiting, transactional replacement, rollback, relaunch
    verification, and result semantics remain unchanged.
  • A non-destructive process-level handoff regression harness covers successful
    termination and installer-spawn failure behavior.

Production self-update acceptance has not yet been performed. Community
artifacts are ad-hoc signed and are not Developer ID authenticated or
notarized.

DFUUtility 0.10.7 Community

Choose a tag to compare

@thehallifax thehallifax released this 10 Sep 03:20

DFUUtility 0.10.7 Community release candidate

DFUUtility 0.10.7 is the corrected bootstrap release for subsequent binary
self-update acceptance.

  • Binary updater handoff now has an explicit AppKit termination reply, so the
    originating application can terminate after launching the installer.
  • The installer continues to wait for the originating process to disappear
    before replacement and relaunch.
  • Transactional replacement, rollback, distinct-process relaunch verification,
    and post-relaunch success safeguards are unchanged.

The real 0.10.7 → 0.10.8 production self-update has not yet been performed or
accepted. Community artifacts are ad-hoc signed and are not Developer ID
authenticated or notarized.

DFUUtility 0.10.5 Community

Choose a tag to compare

@thehallifax thehallifax released this 10 Sep 02:52

DFUUtility 0.10.5 Community release candidate

DFUUtility 0.10.5 is the production acceptance release for the corrected
binary self-update handoff.

  • The installer waits for the originating DFUUtility process to terminate
    before replacement and relaunch.
  • Relaunch verification requires a distinct process for the installed
    destination bundle.
  • Update success is not recorded before relaunch verification completes.
  • Backup transactions now use unique generated UUID paths.
  • Additional non-destructive regression coverage exercises handoff timeout,
    result ordering, process identity, and backup-path safety.

The real 0.10.4 → 0.10.5 production self-update has not yet been performed or
accepted. Community artifacts are ad-hoc signed and are not Developer ID
authenticated or notarized.

DFUUtility 0.10.3 Community

Choose a tag to compare

@thehallifax thehallifax released this 10 Sep 01:59

DFUUtility 0.10.3 Community release candidate

DFUUtility 0.10.3 is a maintenance release for the GitHub Release binary
updater.

  • GitHub Release downloads now accept the documented github.com redirect to
    release-assets.githubusercontent.com while retaining HTTPS-only,
    exact-host redirect validation.
  • SHA-256, size, archive, bundle, version/build, required-resource, and
    structural code-signature verification remain unchanged.
  • Binary-update diagnostics now record useful lifecycle and redirect events
    using hostnames only. Signed redirect query strings and tokens are never
    logged.

The real 0.10.2 → 0.10.3 self-update has not yet been performed or accepted.
Community artifacts remain ad-hoc signed and are not Developer ID
authenticated or notarized.

DFUUtility 0.10.0 Community

Choose a tag to compare

@thehallifax thehallifax released this 09 Sep 23:54

DFUUtility 0.10.0 Community release candidate

DFUUtility 0.10.0 adds a verified binary-update path for normal Community
installations while retaining the existing Git/source updater for developer
checkouts.

Binary updates

  • Checks published GitHub Release metadata before downloading.
  • Verifies the exact asset, size, SHA-256 digest, safe archive structure,
    bundle identity, version/build, required resources, and structural code
    signature before offering installation.
  • Requires an explicit Download Update, followed by an explicit
    Install Update action. Updates are never installed automatically.
  • Replaces the application transactionally, preserving a same-volume backup
    until the new bundle passes in-place verification.
  • Rolls back on replacement or verification failure and records recovery
    failures for diagnosis.
  • Verifies the expected version/build after relaunch before reporting success.

Developer/source installations continue to use the recorded Git checkout and
its clean-worktree, expected-origin, fast-forward-only safety rules. The
binary and source update paths remain isolated.

Acceptance and testing

scripts/test-binary-installer.sh invokes the packaged DFUBinaryInstaller
against signed synthetic bundles in a temporary directory. It covers success,
verification rollback, forced rollback failure, invalid transactions,
restrictive permissions, and no-op relaunch isolation without touching
/Applications, hardware, firmware, or the real application.

The release also stabilizes async polling/download tests by replacing timing
assumptions with explicit task and event synchronization.

Community trust model

Community artifacts are ad-hoc signed. Structural code-signature verification
and SHA-256 verification establish artifact integrity and expected structure;
they do not authenticate a publisher. Community builds do not have Apple
Developer ID publisher authentication or notarization.

DFUUtility 0.9.0 Community

Choose a tag to compare

@thehallifax thehallifax released this 09 Sep 11:58

DFUUtility 0.9.0 Community

DFUUtility 0.9.0 is an operator-focused Community release for technician DFU benches. Community artifacts are locally built and ad-hoc signed; Apple Configurator remains required for discovery, Restore, and Revive.

Highlights

  • Reworked navigation around Restore & Revive, Device Capture, Firmware Library, Diagnostics, and About workspaces, with responsive sidebar/window behavior.
  • Added read-only Device Capture with automatic/manual capture, stable identifiers where providers expose them, exact-serial QR codes, CSV export, and optional asset tags.
  • Added independent macOS, iOS, and iPadOS Firmware Library browsing and clearer sequential batch Restore, Revive, and Restart presentation.
  • Improved Mac DFU transition verification: evidence-sensitive missing-VDM-reply handling can verify success only after fresh same-ECID DFU rediscovery, without retrying the command.
  • Added actionable updater guidance for missing or invalid Git source checkouts and dedicated-host accessory-readiness guidance without changing macOS security settings.
  • Preserved exact product compatibility, cache validation, explicit destructive-operation selection, and structured Restore/Revive progress.

Physical acceptance

  • MacBook Air M2 (Mac14,2): Normal/DFU discovery, automatic DFU, Restore, Revive, structured progress, and restart/reconnect passed.
  • Newer Apple Silicon MacBook (Mac17,6): discovery, automatic DFU, DFU rediscovery, macOS 26.6.2 / 25G83 Restore, structured progress, and restart to Normal passed. The tested machine required a documented port change; this is not a universal newer-Mac mapping.
  • iPhone 6 (iPhone7,2): end-to-end Restore workflow passed.
  • iPad (7th generation) Wi-Fi (iPad7,11): Normal/Recovery discovery, guided same-ECID DFU, firmware discovery/download/validation, and Recovery-mode Restore passed; detailed progress and restart verification remain pending.
  • Two simultaneous iPad12,1 Recovery targets: exact compatible assignment and explicitly selected sequential Restore passed.
  • Device Capture was physically accepted on an iPhone Normal session with serial, ECID, UDID, and QR display. Provider identifier availability varies by family and state.

These observations apply only to the named products and workflows. They do not claim universal Apple hardware coverage.

Distribution

DFUUtility is distributed under the Apache License 2.0. Bundled upstream Asahi Linux macvdmtool retains its own Apache-2.0 license, copyright, attribution, and recorded upstream revision.