What's Changed
* d9daf1b774899da7a5f2516ff73f0af296f9cff9 remotexpc: fix message-id tracking
* 55a544be20bdbadbb4ba4b133e3ddbef04eb390e remotexpc: prevent `next_message_id` incremenet on `send_request()`
* f70ece35ad4db2989a509a4ec75c6974884e3b85 xpc_message: fix `XpcFlags`
* 2a629012cff3cb6679816892a888bf3c36fa6a4d xpc_message: fix array serialization
* 77bd7aa6b1a54f5aa4e9519ff17c6bc6e37a1b27 remotexpc: fix stream handling
* 974d653cee12f5f6a9c4c7a87a6c9aada594a859 add support for remote lockdown using `LockdownServiceProvider`
* 13a2487f66282ccd72d75d230f78f30b94eee842 xpc_message: add `XpcDate` decoding
* f8f7f5cbb52fe3aa7f0d54cd4d1adad1ee6c307b xpc_message: add `XpcFileTransfer` decoding
* cc43968592ac3a4efef339fc2db83982cd0b3a50 xpc_message: add `XpcDouble` encoding
* 17adf55ec4f97cda65d77527e2b0ff2ef4d8e73f remotexpc: add `iter_file_chunks()` and `receive_file()`
* 53a10ea3e028b8f39ff77c890139d04d894c6103 remote: add `CoreDevice` services
* 7e147089e487697105ff23182355d2385d469a31 services: add `RestoreService`
* e1206d2a4c831d500273fbe1d90f29ebec3a095d cli: refactor argument `lockdown`->`service_provider`
* c48391ced2b4d7c46a5afed78692c8af3c324dcc cli_common: refactor `Command` to support `RSDCommand`
* 306185c15484f7c0da03a13c6da409da54cd5737 cli: update `developer` subcommand with the new `CoreDevice` utils
* b864fd4d5f4a567f7360c328d843759b0f015fef cli: update `remote` cli
* 7ddf5c3de77fe8d8205c261680619d0b256030da python-app: improve `flake8` checks
* e169af19865add6a9789b26561a80c214cf2afb9 xpc_message: add more primitives serialization
* 5c713b499a0a4240b41fd660555c2cd2998adcea app_service: fix `user` value for `spawnexecutable`
* 7795aefe8ee186013f0283650c77f2d16a49feab move doc and test utils into `misc` subdirectory
* 1f7439f3aa33ef032e001ef459e3c693bcef22df README: add iOS 17.0 disclaimer
* 8ed40bb90ad7cc32c23e7820399e275f28e20508 misc: add `RemoteXPC.md`
**Full Changelog**: https://github.com/doronz88/pymobiledevice3/compare/v2.0.4...v2.1.0