What's Changed
* 5165191b85f0878459d2747a2cb22731de9c28d5 remotexpc_sniffer: include more data for each printed object
* 41b89ea23737977be87372e63ad7d2293c02082a bonjour: close resources correctly
* 8624c6ed20b6099e724ade28ebc355f5d0768a1f MobileImageMounterService: fix typing in constructor
* 0bf015e2806ca90e68f64cbe96445d702a831ce2 heartbeat: fix `start()` when called using RSD
* d483f98d5f50074633ef64d4e1b81dd46159b501 RemoteXPCConnection: add `shell()`
* f12b188553be5cae54f6fedb43f7ebe5da790756 RemoteXPCConnection: handle multiple large streams
* 219c892f979113c61f6c1a50056a3323f1caad08 RemoteServiceDiscoveryService: add common members
* 6f17036b1ecc4cd1adaad86f627567a407a64882 RemoteServiceDiscoveryService: prevent trigger `connect()` on creation
* 5df626de81402426a0a5ce07ba5bd44ee26c8fd3 cli: fix `developer fetch-symbols` for ios17
* 76a3d37574fcbf0a21a8b488b954f181cd327b6a remote: add `common.stop_remoted()` context-manager
* d3afea33650d14e42f5020e1da5ac9d1d40a5db7 core_device_tunnel_service: refactor `CoreDeviceTunnelService`
* 4d5a6e7e40ace820ca2fd11b77871080acf10ab5 cli: add `get_device_list()` to remote subcommands
* 1a71bfcacf182a204f51d76f505d83db2522deb3 cli: use `stop_remoted()` when browsing for devices
* 89a1df6aa616b083e41383bb1e5e8c7ea79effc5 core_device_tunnel_service: fully implement a working tunnel
* ac18f9fc0c36ed313d8a3d958df5d2d1ede687b5 cli: add `remote shell`
* 10b6b56a0451a224f59fbd2012eff6b1d3fe08c8 cli: avoid prompting when only one device on `start-quic-tunnel`
* 9aa863774a7886bcffb8310a523d0fb2c0d0e9d3 requirements: `cryptography>=41.0.1`
**Full Changelog**: https://github.com/doronz88/pymobiledevice3/compare/v2.2.2...v2.3.0