pymobiledevice3 5.0.4__py3-none-any.whl → 7.0.6__py3-none-any.whl

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.
Files changed (79) hide show
  1. misc/understanding_idevice_protocol_layers.md +10 -5
  2. pymobiledevice3/__main__.py +171 -46
  3. pymobiledevice3/_version.py +2 -2
  4. pymobiledevice3/bonjour.py +22 -21
  5. pymobiledevice3/cli/activation.py +24 -22
  6. pymobiledevice3/cli/afc.py +49 -41
  7. pymobiledevice3/cli/amfi.py +13 -18
  8. pymobiledevice3/cli/apps.py +71 -65
  9. pymobiledevice3/cli/backup.py +134 -93
  10. pymobiledevice3/cli/bonjour.py +31 -29
  11. pymobiledevice3/cli/cli_common.py +175 -232
  12. pymobiledevice3/cli/companion_proxy.py +12 -12
  13. pymobiledevice3/cli/crash.py +95 -52
  14. pymobiledevice3/cli/developer/__init__.py +62 -0
  15. pymobiledevice3/cli/developer/accessibility/__init__.py +65 -0
  16. pymobiledevice3/cli/developer/accessibility/settings.py +43 -0
  17. pymobiledevice3/cli/developer/arbitration.py +50 -0
  18. pymobiledevice3/cli/developer/condition.py +33 -0
  19. pymobiledevice3/cli/developer/core_device.py +294 -0
  20. pymobiledevice3/cli/developer/debugserver.py +244 -0
  21. pymobiledevice3/cli/developer/dvt/__init__.py +438 -0
  22. pymobiledevice3/cli/developer/dvt/core_profile_session.py +295 -0
  23. pymobiledevice3/cli/developer/dvt/simulate_location.py +56 -0
  24. pymobiledevice3/cli/developer/dvt/sysmon/__init__.py +69 -0
  25. pymobiledevice3/cli/developer/dvt/sysmon/process.py +188 -0
  26. pymobiledevice3/cli/developer/fetch_symbols.py +108 -0
  27. pymobiledevice3/cli/developer/simulate_location.py +51 -0
  28. pymobiledevice3/cli/diagnostics/__init__.py +75 -0
  29. pymobiledevice3/cli/diagnostics/battery.py +47 -0
  30. pymobiledevice3/cli/idam.py +42 -0
  31. pymobiledevice3/cli/lockdown.py +70 -75
  32. pymobiledevice3/cli/mounter.py +99 -57
  33. pymobiledevice3/cli/notification.py +38 -26
  34. pymobiledevice3/cli/pcap.py +36 -20
  35. pymobiledevice3/cli/power_assertion.py +15 -16
  36. pymobiledevice3/cli/processes.py +11 -17
  37. pymobiledevice3/cli/profile.py +120 -75
  38. pymobiledevice3/cli/provision.py +27 -26
  39. pymobiledevice3/cli/remote.py +109 -100
  40. pymobiledevice3/cli/restore.py +134 -129
  41. pymobiledevice3/cli/springboard.py +50 -50
  42. pymobiledevice3/cli/syslog.py +145 -65
  43. pymobiledevice3/cli/usbmux.py +66 -27
  44. pymobiledevice3/cli/version.py +2 -5
  45. pymobiledevice3/cli/webinspector.py +232 -156
  46. pymobiledevice3/exceptions.py +6 -2
  47. pymobiledevice3/lockdown.py +5 -1
  48. pymobiledevice3/lockdown_service_provider.py +5 -0
  49. pymobiledevice3/remote/remote_service_discovery.py +18 -10
  50. pymobiledevice3/restore/device.py +28 -4
  51. pymobiledevice3/restore/restore.py +2 -2
  52. pymobiledevice3/service_connection.py +15 -12
  53. pymobiledevice3/services/afc.py +731 -220
  54. pymobiledevice3/services/device_link.py +45 -31
  55. pymobiledevice3/services/idam.py +20 -0
  56. pymobiledevice3/services/lockdown_service.py +12 -9
  57. pymobiledevice3/services/mobile_config.py +1 -0
  58. pymobiledevice3/services/mobilebackup2.py +6 -3
  59. pymobiledevice3/services/os_trace.py +97 -55
  60. pymobiledevice3/services/remote_fetch_symbols.py +13 -8
  61. pymobiledevice3/services/screenshot.py +2 -2
  62. pymobiledevice3/services/web_protocol/alert.py +8 -8
  63. pymobiledevice3/services/web_protocol/automation_session.py +87 -79
  64. pymobiledevice3/services/web_protocol/cdp_screencast.py +2 -1
  65. pymobiledevice3/services/web_protocol/driver.py +71 -70
  66. pymobiledevice3/services/web_protocol/element.py +58 -56
  67. pymobiledevice3/services/web_protocol/selenium_api.py +47 -47
  68. pymobiledevice3/services/web_protocol/session_protocol.py +3 -2
  69. pymobiledevice3/services/web_protocol/switch_to.py +23 -19
  70. pymobiledevice3/services/webinspector.py +42 -67
  71. {pymobiledevice3-5.0.4.dist-info → pymobiledevice3-7.0.6.dist-info}/METADATA +5 -3
  72. {pymobiledevice3-5.0.4.dist-info → pymobiledevice3-7.0.6.dist-info}/RECORD +76 -61
  73. pymobiledevice3/cli/completions.py +0 -50
  74. pymobiledevice3/cli/developer.py +0 -1539
  75. pymobiledevice3/cli/diagnostics.py +0 -110
  76. {pymobiledevice3-5.0.4.dist-info → pymobiledevice3-7.0.6.dist-info}/WHEEL +0 -0
  77. {pymobiledevice3-5.0.4.dist-info → pymobiledevice3-7.0.6.dist-info}/entry_points.txt +0 -0
  78. {pymobiledevice3-5.0.4.dist-info → pymobiledevice3-7.0.6.dist-info}/licenses/LICENSE +0 -0
  79. {pymobiledevice3-5.0.4.dist-info → pymobiledevice3-7.0.6.dist-info}/top_level.txt +0 -0
@@ -1,110 +0,0 @@
1
- import logging
2
- import time
3
-
4
- import click
5
-
6
- from pymobiledevice3.cli.cli_common import Command, print_json
7
- from pymobiledevice3.lockdown import LockdownClient, retry_create_using_usbmux
8
- from pymobiledevice3.lockdown_service_provider import LockdownServiceProvider
9
- from pymobiledevice3.services.diagnostics import DiagnosticsService
10
-
11
- logger = logging.getLogger(__name__)
12
-
13
-
14
- @click.group()
15
- def cli() -> None:
16
- pass
17
-
18
-
19
- @cli.group()
20
- def diagnostics() -> None:
21
- """Reboot/Shutdown device or access other diagnostics services"""
22
- pass
23
-
24
-
25
- @diagnostics.command("restart", cls=Command)
26
- @click.option(
27
- "-r",
28
- "--reconnect",
29
- is_flag=True,
30
- default=False,
31
- help="Wait until the device reconnects before finishing the operation.",
32
- )
33
- def diagnostics_restart(service_provider: LockdownClient, reconnect):
34
- """Restart device"""
35
- DiagnosticsService(lockdown=service_provider).restart()
36
- if reconnect:
37
- # Wait for the device to be available again
38
- with retry_create_using_usbmux(None, serial=service_provider.udid):
39
- print(f"Device Reconnected ({service_provider.udid}).")
40
-
41
-
42
- @diagnostics.command("shutdown", cls=Command)
43
- def diagnostics_shutdown(service_provider: LockdownClient):
44
- """Shutdown device"""
45
- DiagnosticsService(lockdown=service_provider).shutdown()
46
-
47
-
48
- @diagnostics.command("sleep", cls=Command)
49
- def diagnostics_sleep(service_provider: LockdownClient):
50
- """Put device into sleep"""
51
- DiagnosticsService(lockdown=service_provider).sleep()
52
-
53
-
54
- @diagnostics.command("info", cls=Command)
55
- def diagnostics_info(service_provider: LockdownClient):
56
- """Get diagnostics info"""
57
- print_json(DiagnosticsService(lockdown=service_provider).info())
58
-
59
-
60
- @diagnostics.command("ioregistry", cls=Command)
61
- @click.option("--plane")
62
- @click.option("--name")
63
- @click.option("--ioclass")
64
- def diagnostics_ioregistry(service_provider: LockdownClient, plane, name, ioclass):
65
- """Get ioregistry info"""
66
- print_json(DiagnosticsService(lockdown=service_provider).ioregistry(plane=plane, name=name, ioclass=ioclass))
67
-
68
-
69
- @diagnostics.command("mg", cls=Command)
70
- @click.argument("keys", nargs=-1, default=None)
71
- def diagnostics_mg(service_provider: LockdownClient, keys):
72
- """Get MobileGestalt key values from given list. If empty, return all known."""
73
- print_json(DiagnosticsService(lockdown=service_provider).mobilegestalt(keys=keys))
74
-
75
-
76
- @diagnostics.group("battery")
77
- def diagnostics_battery():
78
- """Battery options"""
79
- pass
80
-
81
-
82
- @diagnostics_battery.command("single", cls=Command)
83
- def diagnostics_battery_single(service_provider: LockdownClient):
84
- """get single snapshot of battery data"""
85
- raw_info = DiagnosticsService(lockdown=service_provider).get_battery()
86
- print_json(raw_info)
87
-
88
-
89
- @diagnostics_battery.command("monitor", cls=Command)
90
- def diagnostics_battery_monitor(service_provider: LockdownClient):
91
- """monitor battery usage"""
92
- diagnostics = DiagnosticsService(lockdown=service_provider)
93
- while True:
94
- raw_info = diagnostics.get_battery()
95
- info = {
96
- "InstantAmperage": raw_info.get("InstantAmperage"),
97
- "Temperature": raw_info.get("Temperature"),
98
- "Voltage": raw_info.get("Voltage"),
99
- "IsCharging": raw_info.get("IsCharging"),
100
- "CurrentCapacity": raw_info.get("CurrentCapacity"),
101
- }
102
- logger.info(info)
103
- time.sleep(1)
104
-
105
-
106
- @diagnostics.command("wifi", cls=Command)
107
- def diagnostics_wifi(service_provider: LockdownServiceProvider) -> None:
108
- """Query WiFi info from IORegistry"""
109
- raw_info = DiagnosticsService(lockdown=service_provider).get_wifi()
110
- print_json(raw_info)