Skip to content

chore(deps): bump pymobiledevice3 from 2.46.1 to 9.36.0 - #20

Closed
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pip/pymobiledevice3-9.36.0
Closed

chore(deps): bump pymobiledevice3 from 2.46.1 to 9.36.0#20
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pip/pymobiledevice3-9.36.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jul 15, 2026

Copy link
Copy Markdown
Contributor

Bumps pymobiledevice3 from 2.46.1 to 9.36.0.

Release notes

Sourced from pymobiledevice3's releases.

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

  • 6078f0e4 backup2: report APFS purgeable-aware free space on macOS (#1770) (@​doronz88)
  • 19327902 restore: Handle FileNotFoundError for usbmuxd (#1768) (@​jvdsn)

Full Changelog: doronz88/pymobiledevice3@v9.35.1...v9.36.0

v9.35.1

Highlights

🐛 serve-vnc: no more mosaic/smear and fps collapse when a client is attached during motion

Under on-screen motion with a VNC client connected, serve-vnc would smear (blocky mosaic) and drop to a crawl. The cause was host-side, not the device or decoder: each full-frame RFB Raw update is width*height*4 (~14 MB at 1264×2752), and writing it through the asyncio StreamWriter ran the copy+flush on the event loop, starving the RTP socket's recv. The kernel receive buffer then overflowed and dropped incoming media packets, breaking HEVC references and collapsing the frame rate (measured: RTP ingress fell from ~60 fps to <15 fps the instant a client attached during motion).

The framebuffer is now sent from a thread-pool executor over a dup() of the client socket, so the send releases the GIL and the event loop keeps draining RTP. No flags or protocol changes — existing serve-vnc usage just stops smearing:

pymobiledevice3 developer core-device display serve-vnc

What's Changed

  • cd246920 serve-vnc: send framebuffer off the event loop to stop RTP receive starvation (#1767) (@​doronz88)

Full Changelog: doronz88/pymobiledevice3@v9.35.0...v9.35.1

v9.35.0

Highlights

✨ No-root userspace tunnel migrated to pure-asyncio pmd-pytcp (0.1.0)

The root-free userspace tunnel now runs on pmd-pytcp 0.1.0, whose TCP/IP stack executes entirely on the event loop with an awaited socket API. The tunnel no longer bridges any threads into asyncio: the per-relay rx-pump daemon threads, the fire-and-forget teardown threads, the UserspaceUdp reader thread, every asyncio.to_thread(...) wrapper, and the threading._register_atexit shutdown workaround are all gone — every packet and byte now moves through plain await.

Beyond the readability win, this removes the tunnel-teardown thread pile-up / event-loop hang class of bugs (#1756) structurally: a cancelled relay cancels its pumps at their await points, so no worker survives teardown parked. display serve-web / device-initiated UDP streams and every host-initiated developer service are unaffected in behavior.

... (truncated)

Commits
  • 6078f0e backup2: report APFS purgeable-aware free space on macOS (#1770)
  • c1af0be Merge pull request #1768 from jvdsn/patch-1
  • 1932790 restore: Handle FileNotFoundError for usbmuxd
  • 47b98d1 Merge pull request #1767 from doronz88/fix/serve-vnc-rfb-send-starves-rtp
  • cd24692 serve-vnc: send framebuffer off the event loop to stop RTP receive starvation
  • 4919bf6 Merge pull request #1766 from doronz88/feature/pytcp-asyncio-migration
  • 4985fed docs: drop stale _register_clean_exit reference in userspace_tunnel docstring
  • bbc408c refactor(userspace-tunnel): consume the pure-asyncio pmd-pytcp 0.1.0 directly
  • 9317a43 Merge pull request #1765 from doronz88/worktree-pytcp-cap
  • c72791a chore(deps): cap pmd-pytcp below 0.1.0 for API compatibility
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [pymobiledevice3](https://github.com/doronz88/pymobiledevice3) from 2.46.1 to 9.36.0.
- [Release notes](https://github.com/doronz88/pymobiledevice3/releases)
- [Commits](doronz88/pymobiledevice3@v2.46.1...v9.36.0)

---
updated-dependencies:
- dependency-name: pymobiledevice3
  dependency-version: 9.36.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python Pull requests that update python code labels Jul 15, 2026
@dependabot @github

dependabot Bot commented on behalf of github Jul 20, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by #21.

@dependabot dependabot Bot closed this Jul 20, 2026
@dependabot
dependabot Bot deleted the dependabot/pip/pymobiledevice3-9.36.0 branch July 20, 2026 14:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python Pull requests that update python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants