Skip to content

chore(deps): bump pymobiledevice3 from 2.46.1 to 10.0.4 - #24

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

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

Conversation

@dependabot

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

Copy link
Copy Markdown
Contributor

Bumps pymobiledevice3 from 2.46.1 to 10.0.4.

Release notes

Sourced from pymobiledevice3's releases.

v10.0.4

Highlights

🐛 Fix device restore hanging after reset() (regression since v9.40.0)

A device restore/update could hang indefinitely at If the restore hangs here, disconnect & reconnect the device: IRecv._find() would spin forever and never re-acquire the device after a USB reset() ("no device in the desired mode"), even though the device was present — a fresh re-run of the restore would then succeed.

Root cause: the v9.40.0 typing cleanup introduced local captures (device = self.device) in send_buffer(), which calls reset()_reinit() while that local is still live. Setting self._device = None therefore no longer dropped the last reference, so the usb.core.Device was never garbage-collected and its libusb handle stayed claimed — blocking the reset device from re-enumerating and hanging the subsequent _find(). _reinit() now releases the handle explicitly via usb.util.dispose_resources(), independent of refcount/GC.

If you hit this on v9.40.0–v10.0.3, upgrade:

python3 -m pip install -U pymobiledevice3

🧹 Static-typing hardening (no user-facing behavior change)

The package is now considerably more strictly typed, which surfaced and fixed several latent bugs along the way. The DTX and CoreDevice-tunnel wire structs moved to construct's typed DataclassStruct API (byte-identical wire format, verified on both the Python 3.9 and 3.10+ construct-typing lines), all bare dict/list generics were parametrized, and every function parameter is now annotated — with reportMissingTypeArgument and reportMissingParameterType enforced package-wide in CI.

What's Changed

  • 8322b596 irecv: dispose the USB handle in _reinit to fix restore hang after reset (#1799) (@​doronz88)
  • 88aadb44 typing: finish reportMissingParameterType — cycle 3 + enforce globally (#1797) (@​doronz88)
  • 24fb309a typing: param annotations for the rest of web_protocol (cycle 2b) (#1797) (@​doronz88)
  • 183cebd4 typing: param annotations for web_protocol survivors (cycle 2a) (#1797) (@​doronz88)
  • 2cdbc6ea typing: annotate unannotated params (slice 1 of reportMissingParameterType) (#1797) (@​doronz88)
  • 82e5a666 tunnel: type CDTunnelPacket / RPPairingPacket with construct_typed (#1796) (@​doronz88)
  • 887cb4b4 construct: extract the csfield_const version shim into construct_compat (#1795) (@​doronz88)
  • 5d3474b7 dtx: type the DTX wire structs with construct_typed (DataclassStruct) (#1795) (@​doronz88)
  • 6b1ffbaa typing: enforce reportMissingTypeArgument globally (final slice) (#1794) (@​doronz88)
  • c3befab5 typing: parametrize bare dict/list generics (slice 3 of reportMissingTypeArgument) (#1793) (@​doronz88)
  • 26323c1a typing: parametrize bare dict/list generics (slice 2 of reportMissingTypeArgument) (#1792) (@​doronz88)
  • af68af2e typing: parametrize bare dict/list generics (slice 1 of reportMissingTypeArgument) (#1791) (@​doronz88)

Full Changelog: doronz88/pymobiledevice3@v10.0.3...v10.0.4

v10.0.3

Highlights

🐛 Fixed: developer dvt kill silently no-op'd over the userspace tunnel

pymobiledevice3 developer dvt kill <pid> could silently fail to kill the target on iOS 17+ — the process kept running — while developer dvt signal <pid> -s KILL worked. The kill used the fire-and-forget killPid: DTX selector; with no reply awaited, the command's async with tore down the DTX channel (and the tunnel) before the device acted on the message, so it was dropped. This was latent under the privileged tunneld and surfaced once the no-root userspace tunnel became the default in v10.0.0.

kill() now sends SIGKILL via the reply-bearing sendSignal:toPid:, whose round-trip guarantees the device has processed the request before teardown. pkill shares the fix. Verified live on an iOS 27 device.

pymobiledevice3 developer dvt kill 1234

What's Changed

... (truncated)

Commits
  • 6c784c3 Merge pull request #1799 from doronz88/bugfix/irecv-dispose-on-reinit
  • 8322b59 irecv: dispose the USB handle in _reinit to fix restore hang after reset
  • b7a76a4 Merge pull request #1797 from doronz88/feature/param-types-slice-1
  • 88aadb4 typing: finish reportMissingParameterType — cycle 3 + enforce globally
  • 24fb309 typing: param annotations for the rest of web_protocol (cycle 2b)
  • 183cebd typing: param annotations for web_protocol survivors (cycle 2a)
  • 2cdbc6e typing: annotate unannotated params (slice 1 of reportMissingParameterType)
  • 86cc4b3 Merge pull request #1796 from doronz88/feature/construct-typed-tunnel
  • 82e5a66 tunnel: type CDTunnelPacket / RPPairingPacket with construct_typed
  • 4f88cd4 Merge pull request #1795 from doronz88/feature/construct-typed-dtx
  • 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 10.0.4.
- [Release notes](https://github.com/doronz88/pymobiledevice3/releases)
- [Commits](doronz88/pymobiledevice3@v2.46.1...v10.0.4)

---
updated-dependencies:
- dependency-name: pymobiledevice3
  dependency-version: 10.0.4
  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 23, 2026
@dependabot @github

dependabot Bot commented on behalf of github Jul 24, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by #25.

@dependabot dependabot Bot closed this Jul 24, 2026
@dependabot
dependabot Bot deleted the dependabot/pip/pymobiledevice3-10.0.4 branch July 24, 2026 14:05
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