v9.36.0
Highlights
π backup2 no longer refuses backups that fit in APFS purgeable space (macOS)
On macOS, backup2 backup could fail with Not enough disk space even when the backup would fit β while Finder/iTunes backups of the same device to the same disk succeeded. The device gates the backup by asking the host how much space is free (DLMessageGetFreeDiskSpace), and the answer came from shutil.disk_usage().free (statvfs), which on APFS excludes purgeable space: local Time Machine snapshots and evictable iCloud/cache files that macOS reclaims automatically as writes land. When that under-reported number fell below the estimated backup size, the device aborted with NotEnoughDiskSpaceError.
The host now reports the purgeable-aware capacity Apple's own tooling uses (NSURL's NSURLVolumeAvailableCapacityForImportantUsageKey), read via the Objective-C runtime through stdlib ctypes β no new dependency. It reports max(statvfs_free, important_usage), so it can only ever fix the false refusal, never lower the guaranteed number. Non-macOS hosts are unaffected, and any failure degrades gracefully to the original statvfs value.
pymobiledevice3 backup2 backup --full BACKUP_DIRπ restore falls back to recovery mode when usbmuxd is absent
When a device is connected in recovery mode, usbmuxd may not be running and its socket (/var/run/usbmuxd) will not exist, raising a FileNotFoundError. This is now caught and re-raised as ConnectionFailedToUsbmuxdError, letting cli/restore.py fall back to recovery mode as intended.
What's Changed
- 6078f0e backup2: report APFS purgeable-aware free space on macOS (#1770) (@doronz88)
- 1932790 restore: Handle FileNotFoundError for usbmuxd (#1768) (@jvdsn)
Full Changelog: v9.35.1...v9.36.0