pymobiledevice3 4.25.0__tar.gz → 4.26.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pymobiledevice3 might be problematic. Click here for more details.

Files changed (226) hide show
  1. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/PKG-INFO +1 -1
  2. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/_version.py +3 -3
  3. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/bonjour.py +4 -2
  4. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/cli/bonjour.py +4 -9
  5. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/cli/cli_common.py +29 -2
  6. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/irecv_devices.py +26 -0
  7. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/lockdown.py +3 -2
  8. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3.egg-info/PKG-INFO +1 -1
  9. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/.gitattributes +0 -0
  10. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/.github/FUNDING.yml +0 -0
  11. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  12. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  13. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  14. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/.github/pull_request_template.md +0 -0
  15. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/.github/workflows/codeql.yml +0 -0
  16. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/.github/workflows/generate-executable.py +0 -0
  17. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/.github/workflows/markdown-lint.yml +0 -0
  18. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/.github/workflows/python-app.yml +0 -0
  19. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/.github/workflows/python-publish.yml +0 -0
  20. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/.gitignore +0 -0
  21. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/.pre-commit-config.yaml +0 -0
  22. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/CODE_OF_CONDUCT.md +0 -0
  23. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/CONTRIBUTING.md +0 -0
  24. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/LICENSE +0 -0
  25. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/README.md +0 -0
  26. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/example.gif +0 -0
  27. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/markdownlint-config.json +0 -0
  28. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/misc/DTServices-14.2.txt +0 -0
  29. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/misc/DTServices-14.5.txt +0 -0
  30. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/misc/RemoteXPC.md +0 -0
  31. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/misc/plist_sniffer.py +0 -0
  32. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/misc/pyinstaller.md +0 -0
  33. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/misc/remotexpc_sniffer.py +0 -0
  34. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/misc/understanding_idevice_protocol_layers.md +0 -0
  35. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/misc/usbmux_sniff.sh +0 -0
  36. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/__init__.py +0 -0
  37. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/__main__.py +0 -0
  38. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/ca.py +0 -0
  39. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/cli/__init__.py +0 -0
  40. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/cli/activation.py +0 -0
  41. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/cli/afc.py +0 -0
  42. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/cli/amfi.py +0 -0
  43. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/cli/apps.py +0 -0
  44. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/cli/backup.py +0 -0
  45. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/cli/companion_proxy.py +0 -0
  46. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/cli/completions.py +0 -0
  47. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/cli/crash.py +0 -0
  48. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/cli/developer.py +0 -0
  49. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/cli/diagnostics.py +0 -0
  50. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/cli/lockdown.py +0 -0
  51. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/cli/mounter.py +0 -0
  52. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/cli/notification.py +0 -0
  53. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/cli/pcap.py +0 -0
  54. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/cli/power_assertion.py +0 -0
  55. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/cli/processes.py +0 -0
  56. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/cli/profile.py +0 -0
  57. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/cli/provision.py +0 -0
  58. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/cli/remote.py +0 -0
  59. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/cli/restore.py +0 -0
  60. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/cli/springboard.py +0 -0
  61. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/cli/syslog.py +0 -0
  62. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/cli/usbmux.py +0 -0
  63. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/cli/version.py +0 -0
  64. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/cli/webinspector.py +0 -0
  65. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/common.py +0 -0
  66. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/exceptions.py +0 -0
  67. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/irecv.py +0 -0
  68. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/lockdown_service_provider.py +0 -0
  69. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/osu/__init__.py +0 -0
  70. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/osu/os_utils.py +0 -0
  71. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/osu/posix_util.py +0 -0
  72. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/osu/win_util.py +0 -0
  73. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/pair_records.py +0 -0
  74. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/remote/__init__.py +0 -0
  75. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/remote/common.py +0 -0
  76. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/remote/core_device/__init__.py +0 -0
  77. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/remote/core_device/app_service.py +0 -0
  78. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/remote/core_device/core_device_service.py +0 -0
  79. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/remote/core_device/device_info.py +0 -0
  80. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/remote/core_device/diagnostics_service.py +0 -0
  81. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/remote/core_device/file_service.py +0 -0
  82. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/remote/module_imports.py +0 -0
  83. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/remote/remote_service.py +0 -0
  84. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/remote/remote_service_discovery.py +0 -0
  85. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/remote/remotexpc.py +0 -0
  86. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/remote/tunnel_service.py +0 -0
  87. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/remote/utils.py +0 -0
  88. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/remote/xpc_message.py +0 -0
  89. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/resources/__init__.py +0 -0
  90. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/resources/dsc_uuid_map.json +0 -0
  91. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/resources/dsc_uuid_map.py +0 -0
  92. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/resources/firmware_notifications.py +0 -0
  93. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/resources/notifications.txt +0 -0
  94. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/resources/webinspector/element_attribute.js +0 -0
  95. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/resources/webinspector/element_clear.js +0 -0
  96. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/resources/webinspector/enter_fullscreen.js +0 -0
  97. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/resources/webinspector/find_nodes.js +0 -0
  98. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/resources/webinspector/focus.js +0 -0
  99. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/resources/webinspector/get_attribute.js +0 -0
  100. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/resources/webinspector/is_displayed.js +0 -0
  101. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/resources/webinspector/is_editable.js +0 -0
  102. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/resources/webinspector/is_enabled.js +0 -0
  103. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/restore/__init__.py +0 -0
  104. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/restore/asr.py +0 -0
  105. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/restore/base_restore.py +0 -0
  106. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/restore/consts.py +0 -0
  107. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/restore/device.py +0 -0
  108. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/restore/fdr.py +0 -0
  109. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/restore/ftab.py +0 -0
  110. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/restore/img4.py +0 -0
  111. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/restore/recovery.py +0 -0
  112. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/restore/restore.py +0 -0
  113. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/restore/restore_options.py +0 -0
  114. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/restore/restored_client.py +0 -0
  115. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/restore/tss.py +0 -0
  116. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/service_connection.py +0 -0
  117. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/__init__.py +0 -0
  118. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/accessibilityaudit.py +0 -0
  119. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/afc.py +0 -0
  120. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/amfi.py +0 -0
  121. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/companion.py +0 -0
  122. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/crash_reports.py +0 -0
  123. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/debugserver_applist.py +0 -0
  124. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/device_arbitration.py +0 -0
  125. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/device_link.py +0 -0
  126. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/diagnostics.py +0 -0
  127. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/dtfetchsymbols.py +0 -0
  128. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/dvt/__init__.py +0 -0
  129. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/dvt/dvt_secure_socket_proxy.py +0 -0
  130. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/dvt/dvt_testmanaged_proxy.py +0 -0
  131. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/dvt/instruments/__init__.py +0 -0
  132. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/dvt/instruments/activity_trace_tap.py +0 -0
  133. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/dvt/instruments/application_listing.py +0 -0
  134. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/dvt/instruments/condition_inducer.py +0 -0
  135. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/dvt/instruments/core_profile_session_tap.py +0 -0
  136. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/dvt/instruments/device_info.py +0 -0
  137. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/dvt/instruments/energy_monitor.py +0 -0
  138. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/dvt/instruments/graphics.py +0 -0
  139. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/dvt/instruments/location_simulation.py +0 -0
  140. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/dvt/instruments/location_simulation_base.py +0 -0
  141. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/dvt/instruments/network_monitor.py +0 -0
  142. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/dvt/instruments/notifications.py +0 -0
  143. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/dvt/instruments/process_control.py +0 -0
  144. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/dvt/instruments/screenshot.py +0 -0
  145. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/dvt/instruments/sysmontap.py +0 -0
  146. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/dvt/testmanaged/xcuitest.py +0 -0
  147. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/file_relay.py +0 -0
  148. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/heartbeat.py +0 -0
  149. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/house_arrest.py +0 -0
  150. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/installation_proxy.py +0 -0
  151. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/lockdown_service.py +0 -0
  152. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/misagent.py +0 -0
  153. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/mobile_activation.py +0 -0
  154. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/mobile_config.py +0 -0
  155. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/mobile_image_mounter.py +0 -0
  156. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/mobilebackup2.py +0 -0
  157. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/notification_proxy.py +0 -0
  158. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/os_trace.py +0 -0
  159. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/pcapd.py +0 -0
  160. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/power_assertion.py +0 -0
  161. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/preboard.py +0 -0
  162. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/remote_fetch_symbols.py +0 -0
  163. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/remote_server.py +0 -0
  164. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/restore_service.py +0 -0
  165. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/screenshot.py +0 -0
  166. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/simulate_location.py +0 -0
  167. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/springboard.py +0 -0
  168. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/syslog.py +0 -0
  169. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/web_protocol/__init__.py +0 -0
  170. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/web_protocol/alert.py +0 -0
  171. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/web_protocol/automation_session.py +0 -0
  172. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/web_protocol/cdp_screencast.py +0 -0
  173. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/web_protocol/cdp_server.py +0 -0
  174. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/web_protocol/cdp_target.py +0 -0
  175. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/web_protocol/driver.py +0 -0
  176. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/web_protocol/element.py +0 -0
  177. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/web_protocol/inspector_session.py +0 -0
  178. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/web_protocol/selenium_api.py +0 -0
  179. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/web_protocol/session_protocol.py +0 -0
  180. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/web_protocol/switch_to.py +0 -0
  181. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/services/webinspector.py +0 -0
  182. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/tcp_forwarder.py +0 -0
  183. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/tunneld/__init__.py +0 -0
  184. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/tunneld/api.py +0 -0
  185. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/tunneld/server.py +0 -0
  186. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/usbmux.py +0 -0
  187. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3/utils.py +0 -0
  188. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3.egg-info/SOURCES.txt +0 -0
  189. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3.egg-info/dependency_links.txt +0 -0
  190. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3.egg-info/entry_points.txt +0 -0
  191. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3.egg-info/requires.txt +0 -0
  192. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pymobiledevice3.egg-info/top_level.txt +0 -0
  193. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pyproject.toml +0 -0
  194. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/pytest.ini +0 -0
  195. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/requirements.txt +0 -0
  196. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/setup.cfg +0 -0
  197. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/tests/__init__.py +0 -0
  198. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/tests/cli/__init__.py +0 -0
  199. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/tests/cli/test_cli.py +0 -0
  200. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/tests/conftest.py +0 -0
  201. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/tests/services/__init__.py +0 -0
  202. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/tests/services/instruments/__init__.py +0 -0
  203. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/tests/services/instruments/test_core_profile_session.py +0 -0
  204. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/tests/services/instruments/test_dvt_secure_socket_proxy.py +0 -0
  205. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/tests/services/instruments/test_fetch_symbols.py +0 -0
  206. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/tests/services/instruments/test_location.py +0 -0
  207. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/tests/services/instruments/test_screenshot.py +0 -0
  208. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/tests/services/test_accessibility.py +0 -0
  209. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/tests/services/test_afc.py +0 -0
  210. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/tests/services/test_apps.py +0 -0
  211. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/tests/services/test_backup2.py +0 -0
  212. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/tests/services/test_bonjour.py +0 -0
  213. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/tests/services/test_crash_reports.py +0 -0
  214. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/tests/services/test_list_devices.py +0 -0
  215. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/tests/services/test_lockdown.py +0 -0
  216. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/tests/services/test_pcapd.py +0 -0
  217. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/tests/services/test_springboard_services_relay.py +0 -0
  218. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/tests/services/test_start_tunnel.py +0 -0
  219. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/tests/services/test_syslog_relay.py +0 -0
  220. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/tests/services/test_tcp_forwarder.py +0 -0
  221. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/tests/services/test_web_protocol/__init__.py +0 -0
  222. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/tests/services/test_web_protocol/common.py +0 -0
  223. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/tests/services/test_web_protocol/conftest.py +0 -0
  224. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/tests/services/test_web_protocol/test_driver.py +0 -0
  225. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/tests/services/test_web_protocol/test_element.py +0 -0
  226. {pymobiledevice3-4.25.0 → pymobiledevice3-4.26.0}/tests/services/test_webinspector.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pymobiledevice3
3
- Version: 4.25.0
3
+ Version: 4.26.0
4
4
  Summary: Pure python3 implementation for working with iDevices (iPhone, etc...)
5
5
  Author-email: doronz88 <doron88@gmail.com>, matan <matan1008@gmail.com>
6
6
  Maintainer-email: doronz88 <doron88@gmail.com>, matan <matan1008@gmail.com>
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '4.25.0'
32
- __version_tuple__ = version_tuple = (4, 25, 0)
31
+ __version__ = version = '4.26.0'
32
+ __version_tuple__ = version_tuple = (4, 26, 0)
33
33
 
34
- __commit_id__ = commit_id = 'g8cfde44ec'
34
+ __commit_id__ = commit_id = 'g3d245807a'
@@ -131,8 +131,10 @@ async def browse_remoted(timeout: float = DEFAULT_BONJOUR_TIMEOUT) -> list[Bonjo
131
131
  return await browse_ipv6(REMOTED_SERVICE_NAMES, timeout=timeout)
132
132
 
133
133
 
134
- async def browse_mobdev2(timeout: float = DEFAULT_BONJOUR_TIMEOUT) -> list[BonjourAnswer]:
135
- return await browse(MOBDEV2_SERVICE_NAMES, get_ipv4_addresses() + OSUTILS.get_ipv6_ips(), timeout=timeout)
134
+ async def browse_mobdev2(timeout: float = DEFAULT_BONJOUR_TIMEOUT, ips: Optional[list[str]] = None) -> list[BonjourAnswer]:
135
+ if ips is None:
136
+ ips = get_ipv4_addresses() + OSUTILS.get_ipv6_ips()
137
+ return await browse(MOBDEV2_SERVICE_NAMES, ips, timeout=timeout)
136
138
 
137
139
 
138
140
  async def browse_remotepairing(timeout: float = DEFAULT_BONJOUR_TIMEOUT) -> list[BonjourAnswer]:
@@ -1,6 +1,5 @@
1
1
  import asyncio
2
- import plistlib
3
- from pathlib import Path
2
+ from typing import Optional
4
3
 
5
4
  import click
6
5
 
@@ -21,13 +20,9 @@ def bonjour_cli() -> None:
21
20
  pass
22
21
 
23
22
 
24
- async def cli_mobdev2_task(timeout: float, pair_records: str) -> None:
25
- records = []
26
- if pair_records is not None:
27
- for record in Path(pair_records).glob('*.plist'):
28
- records.append(plistlib.loads(record.read_bytes()))
23
+ async def cli_mobdev2_task(timeout: float, pair_records: Optional[str]) -> None:
29
24
  output = []
30
- async for ip, lockdown in get_mobdev2_lockdowns(timeout=timeout):
25
+ async for ip, lockdown in get_mobdev2_lockdowns(timeout=timeout, pair_records=pair_records):
31
26
  short_info = lockdown.short_info
32
27
  short_info['ip'] = ip
33
28
  output.append(short_info)
@@ -38,7 +33,7 @@ async def cli_mobdev2_task(timeout: float, pair_records: str) -> None:
38
33
  @click.option('--timeout', default=DEFAULT_BONJOUR_TIMEOUT, type=click.INT)
39
34
  @click.option('--pair-records', type=click.Path(dir_okay=True, file_okay=False, exists=True),
40
35
  help='pair records to attempt validation with')
41
- def cli_mobdev2(timeout: float, pair_records: str) -> None:
36
+ def cli_mobdev2(timeout: float, pair_records: Optional[str]) -> None:
42
37
  """ browse for mobdev2 devices over bonjour """
43
38
  asyncio.run(cli_mobdev2_task(timeout, pair_records))
44
39
 
@@ -17,7 +17,7 @@ from inquirer3.themes import GreenPassion
17
17
  from pygments import formatters, highlight, lexers
18
18
 
19
19
  from pymobiledevice3.exceptions import AccessDeniedError, DeviceNotFoundError, NoDeviceConnectedError
20
- from pymobiledevice3.lockdown import LockdownClient, create_using_usbmux
20
+ from pymobiledevice3.lockdown import LockdownClient, TcpLockdownClient, create_using_usbmux, get_mobdev2_lockdowns
21
21
  from pymobiledevice3.osu.os_utils import get_os_utils
22
22
  from pymobiledevice3.remote.remote_service_discovery import RemoteServiceDiscoveryService
23
23
  from pymobiledevice3.tunneld.api import TUNNELD_DEFAULT_ADDRESS, async_get_tunneld_devices
@@ -189,7 +189,11 @@ class LockdownCommand(BaseServiceProviderCommand):
189
189
  def __init__(self, *args, **kwargs):
190
190
  super().__init__(*args, **kwargs)
191
191
  self.usbmux_address = None
192
+ self.mobdev2_option = None
192
193
  self.params[:0] = [
194
+ click.Option(('mobdev2', '--mobdev2'), callback=self.mobdev2, expose_value=False, default=None,
195
+ help='Use bonjour browse for mobdev2 devices. Expected value IP address of the interface to '
196
+ 'use. Leave empty to browse through all interfaces'),
193
197
  click.Option(('usbmux', '--usbmux'), callback=self.usbmux, expose_value=False,
194
198
  envvar=USBMUX_ENV_VAR, help=USBMUX_OPTION_HELP),
195
199
  click.Option(('lockdown_service_provider', '--udid'), envvar=UDID_ENV_VAR, callback=self.udid,
@@ -197,12 +201,22 @@ class LockdownCommand(BaseServiceProviderCommand):
197
201
  f' option as well'),
198
202
  ]
199
203
 
204
+ async def get_mobdev2_devices(self, udid: Optional[str] = None, ips: Optional[list[str]] = None) \
205
+ -> list[TcpLockdownClient]:
206
+ result = []
207
+ async for ip, lockdown in get_mobdev2_lockdowns(udid=udid, ips=ips):
208
+ result.append(lockdown)
209
+ return result
210
+
211
+ def mobdev2(self, ctx, param: str, value: Optional[str] = None) -> None:
212
+ self.mobdev2_option = value
213
+
200
214
  def usbmux(self, ctx, param: str, value: Optional[str] = None) -> None:
201
215
  if value is None:
202
216
  return
203
217
  self.usbmux_address = value
204
218
 
205
- def udid(self, ctx, param: str, value: str) -> Optional[LockdownClient]:
219
+ def udid(self, ctx, param: str, value: Optional[str]) -> Optional[LockdownClient]:
206
220
  if is_invoked_for_completion():
207
221
  # prevent lockdown connection establishment when in autocomplete mode
208
222
  return
@@ -210,6 +224,19 @@ class LockdownCommand(BaseServiceProviderCommand):
210
224
  if self.service_provider is not None:
211
225
  return self.service_provider
212
226
 
227
+ if self.mobdev2_option is not None:
228
+ devices = asyncio.run(self.get_mobdev2_devices(
229
+ udid=value if value else None, ips=[self.mobdev2_option] if self.mobdev2_option else None))
230
+ if not devices:
231
+ raise NoDeviceConnectedError()
232
+
233
+ if len(devices) == 1:
234
+ self.service_provider = devices[0]
235
+ return self.service_provider
236
+
237
+ self.service_provider = prompt_device_list(devices)
238
+ return self.service_provider
239
+
213
240
  if value is not None:
214
241
  return create_using_usbmux(serial=value)
215
242
 
@@ -126,6 +126,14 @@ IRECV_DEVICES = (
126
126
  display_name='iPhone 16 Pro'),
127
127
  IRecvDevice(product_type='iPhone17,2', hardware_model='d94ap', board_id=0x0E, chip_id=0x8140,
128
128
  display_name='iPhone 16 Pro Max'),
129
+ IRecvDevice(product_type='iPhone18,4', hardware_model='d23ap', board_id=0x0A, chip_id=0x8150,
130
+ display_name='iPhone Air'),
131
+ IRecvDevice(product_type='iPhone18,1', hardware_model='v53ap', board_id=0x0C, chip_id=0x8150,
132
+ display_name='iPhone 17 Pro'),
133
+ IRecvDevice(product_type='iPhone18,2', hardware_model='v54ap', board_id=0x0E, chip_id=0x8150,
134
+ display_name='iPhone 17 Pro Max'),
135
+ IRecvDevice(product_type='iPhone18,3', hardware_model='v57ap', board_id=0x08, chip_id=0x8150,
136
+ display_name='iPhone 17'),
129
137
  # iPod
130
138
  IRecvDevice(product_type='iPod1,1', hardware_model='n45ap', board_id=0x02, chip_id=0x8900,
131
139
  display_name='iPod Touch (1st gen)'),
@@ -412,6 +420,24 @@ IRECV_DEVICES = (
412
420
  display_name='Apple Watch Series 10 (42mm Cellular)'),
413
421
  IRecvDevice(product_type='Watch7,11', hardware_model='n218bap', board_id=0x16, chip_id=0x8310,
414
422
  display_name='Apple Watch Series 10 (46mm Cellular)'),
423
+ IRecvDevice(product_type='Watch7,12', hardware_model='n230ap', board_id=0x22, chip_id=0x8310,
424
+ display_name='Apple Watch Ultra 3'),
425
+ IRecvDevice(product_type='Watch7,13', hardware_model='n243sap', board_id=0x28, chip_id=0x8310,
426
+ display_name='Apple Watch SE 3 (40mm)'),
427
+ IRecvDevice(product_type='Watch7,14', hardware_model='n243bap', board_id=0x2A, chip_id=0x8310,
428
+ display_name='Apple Watch SE 3 (44mm)'),
429
+ IRecvDevice(product_type='Watch7,15', hardware_model='n244sap', board_id=0x2C, chip_id=0x8310,
430
+ display_name='Apple Watch SE 3 (40mm Cellular)'),
431
+ IRecvDevice(product_type='Watch7,16', hardware_model='n244bap', board_id=0x2E, chip_id=0x8310,
432
+ display_name='Apple Watch SE 3 (44mm Cellular)'),
433
+ IRecvDevice(product_type='Watch7,17', hardware_model='n227sap', board_id=0x18, chip_id=0x8310,
434
+ display_name='Apple Watch Series 11 (42mm)'),
435
+ IRecvDevice(product_type='Watch7,18', hardware_model='n227bap', board_id=0x1A, chip_id=0x8310,
436
+ display_name='Apple Watch Series 11 (46mm)'),
437
+ IRecvDevice(product_type='Watch7,19', hardware_model='n228sap', board_id=0x1C, chip_id=0x8310,
438
+ display_name='Apple Watch Series 11 (42mm Cellular)'),
439
+ IRecvDevice(product_type='Watch7,20', hardware_model='n228bap', board_id=0x1E, chip_id=0x8310,
440
+ display_name='Apple Watch Series 11 (46mm Cellular)'),
415
441
  # Apple Silicon Macs
416
442
  IRecvDevice(product_type='ADP3,2', hardware_model='j273aap', board_id=0x42, chip_id=0x8027,
417
443
  display_name='Developer Transition Kit (2020)'),
@@ -682,6 +682,7 @@ class TcpLockdownClient(LockdownClient):
682
682
  port)
683
683
  self._keep_alive = keep_alive
684
684
  self.hostname = hostname
685
+ self.identifier = hostname
685
686
 
686
687
  def _create_service_connection(self, port: int) -> ServiceConnection:
687
688
  return ServiceConnection.create_using_tcp(self.hostname, port, keep_alive=self._keep_alive)
@@ -842,7 +843,7 @@ def create_using_remote(service: ServiceConnection, identifier: str = None, labe
842
843
 
843
844
  async def get_mobdev2_lockdowns(
844
845
  udid: Optional[str] = None, pair_records: Optional[Path] = None, only_paired: bool = False,
845
- timeout: float = DEFAULT_BONJOUR_TIMEOUT) \
846
+ timeout: float = DEFAULT_BONJOUR_TIMEOUT, ips: Optional[list[str]] = None) \
846
847
  -> AsyncIterable[tuple[str, TcpLockdownClient]]:
847
848
  records = {}
848
849
  if pair_records is None:
@@ -858,7 +859,7 @@ async def get_mobdev2_lockdowns(
858
859
  records[record['WiFiMACAddress']] = record
859
860
 
860
861
  iterated_ips = set()
861
- for answer in await browse_mobdev2(timeout=timeout):
862
+ for answer in await browse_mobdev2(timeout=timeout, ips=ips):
862
863
  if '@' not in answer.name:
863
864
  continue
864
865
  wifi_mac_address = answer.name.split('@', 1)[0]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pymobiledevice3
3
- Version: 4.25.0
3
+ Version: 4.26.0
4
4
  Summary: Pure python3 implementation for working with iDevices (iPhone, etc...)
5
5
  Author-email: doronz88 <doron88@gmail.com>, matan <matan1008@gmail.com>
6
6
  Maintainer-email: doronz88 <doron88@gmail.com>, matan <matan1008@gmail.com>