github doronz88/pymobiledevice3 v9.36.1

latest releases: v11.5.0, v11.4.2, v11.4.1...
one month ago

Highlights

🐛 power-assertion: stop blocking the event loop

The power-assertion CLI handler is async, but held the assertion open with a synchronous time.sleep(timeout) — blocking the command's asyncio event loop for the entire assertion duration and preventing transport/background tasks and cooperative cancellation from running. It now uses await asyncio.sleep(timeout), keeping the loop responsive while the device assertion stays active.

pymobiledevice3 power-assertion power-assertion PreventUserIdleSystemSleep my-assertion 3600

🐛 serve-vnc/serve-web: strip the DisplayService NAL trailer

Apple's DisplayService appends a constant 14-byte proprietary footer after each HEVC coded-slice NAL. A plain RFC 7798 reassembly fed that footer to the decoder as trailing slice data. The depacketizer now strips it (exact-suffix match, so it's a no-op on streams that don't carry it), giving downstream decoders a clean bitstream.

📚 Motion-tear research findings

The serve-web/serve-vnc motion-tear investigation notes were consolidated into a single MOTION_TEAR_FINDINGS.md under pymobiledevice3/remote/core_device/, documenting what was discovered, how, and the conclusions.

What's Changed

  • de3c3f8 power_assertion: use asyncio.sleep instead of blocking time.sleep (#1774) (@doronz88)
  • a98e05d serve-vnc/serve-web: strip DisplayService NAL trailer; drop tear-research scaffolding (#1771) (@doronz88)
  • 1dccbfc research(core-device): VCPDecompressionSession decode path + anti-tear RE roadmap (#1771) (@doronz88)

Full Changelog: v9.36.0...v9.36.1

Don't miss a new pymobiledevice3 release

NewReleases is sending notifications on new releases.