github doronz88/pymobiledevice3 v11.37.0

2 hours ago

Highlights

⚡ Faster restores

Restore component uploads (Cryptex1,SystemOS and the other firmware data) now go out as binary plists instead of XML, which base64-encoded every chunk and inflated it by ~40% on the wire. On an iPhone Air (USB 2), the 2.2 GiB SystemOS upload went from 28.1 MiB/s to 32.2 MiB/s on average.

📊 Progress bars with rich

Progress bars are now drawn with rich instead of tqdm. Concurrent bars stack instead of corrupting each other, log lines print above a running bar instead of tearing through it, and finished bars show their elapsed time. Restore and recovery uploads are labelled with the component name, and the backup bars say whether they are a backup or a restore.

🎨 ansilogs replaces coloredlogs

coloredlogs and humanfriendly (plus pyreadline3 on Windows) have had no release since 2021. Logging now goes through ansilogs, a dependency-free replacement with the same one-line-per-record layout and a clearer color style: the level name in its severity color, metadata dimmed.

🐛 --no-color and NO_COLOR cover both logs and output

--no-color now also turns off log colors, and NO_COLOR now also turns off colored JSON and other command output.

🐛 Non-ASCII text in JSON output

JSON output keeps non-ASCII text as is ("John’s iPhone" instead of "John’s iPhone"), and colored JSON no longer ends with a blank line.

📦 Dependencies

  • pykdebugparser 1.6.1: pid arguments print as signed (kill(-1478, SIGTERM) instead of kill(4294965818, 15)) and signals are named.
  • ipsw-parser 1.8.4, which also moved to ansilogs.
  • tqdm and coloredlogs are no longer dependencies.

What's Changed

Full Changelog: v11.36.0...v11.37.0

Don't miss a new pymobiledevice3 release

NewReleases is sending notifications on new releases.