pymobiledevice3 5.0.0__py3-none-any.whl → 5.0.2__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.
Potentially problematic release.
This version of pymobiledevice3 might be problematic. Click here for more details.
- misc/plist_sniffer.py +15 -15
- misc/remotexpc_sniffer.py +29 -28
- pymobiledevice3/__main__.py +128 -102
- pymobiledevice3/_version.py +2 -2
- pymobiledevice3/bonjour.py +26 -49
- pymobiledevice3/ca.py +32 -24
- pymobiledevice3/cli/activation.py +7 -7
- pymobiledevice3/cli/afc.py +19 -19
- pymobiledevice3/cli/amfi.py +4 -4
- pymobiledevice3/cli/apps.py +51 -39
- pymobiledevice3/cli/backup.py +58 -32
- pymobiledevice3/cli/bonjour.py +25 -18
- pymobiledevice3/cli/cli_common.py +112 -81
- pymobiledevice3/cli/companion_proxy.py +4 -4
- pymobiledevice3/cli/completions.py +10 -10
- pymobiledevice3/cli/crash.py +37 -31
- pymobiledevice3/cli/developer.py +602 -520
- pymobiledevice3/cli/diagnostics.py +38 -33
- pymobiledevice3/cli/lockdown.py +79 -74
- pymobiledevice3/cli/mounter.py +85 -68
- pymobiledevice3/cli/notification.py +10 -10
- pymobiledevice3/cli/pcap.py +19 -14
- pymobiledevice3/cli/power_assertion.py +12 -10
- pymobiledevice3/cli/processes.py +10 -10
- pymobiledevice3/cli/profile.py +88 -77
- pymobiledevice3/cli/provision.py +17 -17
- pymobiledevice3/cli/remote.py +186 -110
- pymobiledevice3/cli/restore.py +43 -40
- pymobiledevice3/cli/springboard.py +30 -28
- pymobiledevice3/cli/syslog.py +85 -58
- pymobiledevice3/cli/usbmux.py +21 -20
- pymobiledevice3/cli/version.py +3 -2
- pymobiledevice3/cli/webinspector.py +157 -79
- pymobiledevice3/common.py +1 -1
- pymobiledevice3/exceptions.py +154 -60
- pymobiledevice3/irecv.py +49 -53
- pymobiledevice3/irecv_devices.py +1489 -492
- pymobiledevice3/lockdown.py +394 -241
- pymobiledevice3/lockdown_service_provider.py +5 -7
- pymobiledevice3/osu/os_utils.py +18 -9
- pymobiledevice3/osu/posix_util.py +28 -15
- pymobiledevice3/osu/win_util.py +14 -8
- pymobiledevice3/pair_records.py +19 -19
- pymobiledevice3/remote/common.py +4 -4
- pymobiledevice3/remote/core_device/app_service.py +94 -67
- pymobiledevice3/remote/core_device/core_device_service.py +17 -14
- pymobiledevice3/remote/core_device/device_info.py +5 -5
- pymobiledevice3/remote/core_device/diagnostics_service.py +10 -8
- pymobiledevice3/remote/core_device/file_service.py +47 -33
- pymobiledevice3/remote/remote_service_discovery.py +53 -35
- pymobiledevice3/remote/remotexpc.py +62 -41
- pymobiledevice3/remote/tunnel_service.py +371 -293
- pymobiledevice3/remote/utils.py +12 -11
- pymobiledevice3/remote/xpc_message.py +145 -125
- pymobiledevice3/resources/dsc_uuid_map.py +19 -19
- pymobiledevice3/resources/firmware_notifications.py +16 -16
- pymobiledevice3/restore/asr.py +27 -27
- pymobiledevice3/restore/base_restore.py +90 -47
- pymobiledevice3/restore/consts.py +87 -66
- pymobiledevice3/restore/device.py +11 -11
- pymobiledevice3/restore/fdr.py +46 -46
- pymobiledevice3/restore/ftab.py +19 -19
- pymobiledevice3/restore/img4.py +130 -133
- pymobiledevice3/restore/mbn.py +35 -54
- pymobiledevice3/restore/recovery.py +125 -135
- pymobiledevice3/restore/restore.py +524 -523
- pymobiledevice3/restore/restore_options.py +122 -115
- pymobiledevice3/restore/restored_client.py +25 -22
- pymobiledevice3/restore/tss.py +378 -270
- pymobiledevice3/service_connection.py +50 -46
- pymobiledevice3/services/accessibilityaudit.py +136 -126
- pymobiledevice3/services/afc.py +350 -291
- pymobiledevice3/services/amfi.py +21 -18
- pymobiledevice3/services/companion.py +23 -19
- pymobiledevice3/services/crash_reports.py +60 -46
- pymobiledevice3/services/debugserver_applist.py +3 -3
- pymobiledevice3/services/device_arbitration.py +8 -8
- pymobiledevice3/services/device_link.py +55 -47
- pymobiledevice3/services/diagnostics.py +971 -968
- pymobiledevice3/services/dtfetchsymbols.py +8 -8
- pymobiledevice3/services/dvt/dvt_secure_socket_proxy.py +4 -4
- pymobiledevice3/services/dvt/dvt_testmanaged_proxy.py +4 -4
- pymobiledevice3/services/dvt/instruments/activity_trace_tap.py +85 -74
- pymobiledevice3/services/dvt/instruments/application_listing.py +2 -3
- pymobiledevice3/services/dvt/instruments/condition_inducer.py +7 -6
- pymobiledevice3/services/dvt/instruments/core_profile_session_tap.py +466 -384
- pymobiledevice3/services/dvt/instruments/device_info.py +11 -11
- pymobiledevice3/services/dvt/instruments/energy_monitor.py +1 -1
- pymobiledevice3/services/dvt/instruments/graphics.py +1 -1
- pymobiledevice3/services/dvt/instruments/location_simulation.py +1 -1
- pymobiledevice3/services/dvt/instruments/location_simulation_base.py +10 -10
- pymobiledevice3/services/dvt/instruments/network_monitor.py +17 -17
- pymobiledevice3/services/dvt/instruments/notifications.py +1 -1
- pymobiledevice3/services/dvt/instruments/process_control.py +25 -10
- pymobiledevice3/services/dvt/instruments/screenshot.py +2 -2
- pymobiledevice3/services/dvt/instruments/sysmontap.py +15 -15
- pymobiledevice3/services/dvt/testmanaged/xcuitest.py +40 -50
- pymobiledevice3/services/file_relay.py +10 -10
- pymobiledevice3/services/heartbeat.py +8 -7
- pymobiledevice3/services/house_arrest.py +12 -15
- pymobiledevice3/services/installation_proxy.py +119 -100
- pymobiledevice3/services/lockdown_service.py +12 -5
- pymobiledevice3/services/misagent.py +22 -19
- pymobiledevice3/services/mobile_activation.py +84 -72
- pymobiledevice3/services/mobile_config.py +330 -301
- pymobiledevice3/services/mobile_image_mounter.py +137 -116
- pymobiledevice3/services/mobilebackup2.py +188 -150
- pymobiledevice3/services/notification_proxy.py +11 -11
- pymobiledevice3/services/os_trace.py +69 -51
- pymobiledevice3/services/pcapd.py +306 -306
- pymobiledevice3/services/power_assertion.py +10 -9
- pymobiledevice3/services/preboard.py +4 -4
- pymobiledevice3/services/remote_fetch_symbols.py +16 -14
- pymobiledevice3/services/remote_server.py +176 -146
- pymobiledevice3/services/restore_service.py +16 -16
- pymobiledevice3/services/screenshot.py +13 -10
- pymobiledevice3/services/simulate_location.py +7 -7
- pymobiledevice3/services/springboard.py +15 -15
- pymobiledevice3/services/syslog.py +5 -5
- pymobiledevice3/services/web_protocol/alert.py +3 -3
- pymobiledevice3/services/web_protocol/automation_session.py +180 -176
- pymobiledevice3/services/web_protocol/cdp_screencast.py +44 -36
- pymobiledevice3/services/web_protocol/cdp_server.py +19 -19
- pymobiledevice3/services/web_protocol/cdp_target.py +411 -373
- pymobiledevice3/services/web_protocol/driver.py +47 -45
- pymobiledevice3/services/web_protocol/element.py +74 -63
- pymobiledevice3/services/web_protocol/inspector_session.py +106 -102
- pymobiledevice3/services/web_protocol/selenium_api.py +2 -2
- pymobiledevice3/services/web_protocol/session_protocol.py +15 -10
- pymobiledevice3/services/web_protocol/switch_to.py +11 -12
- pymobiledevice3/services/webinspector.py +127 -116
- pymobiledevice3/tcp_forwarder.py +35 -22
- pymobiledevice3/tunneld/api.py +20 -15
- pymobiledevice3/tunneld/server.py +212 -133
- pymobiledevice3/usbmux.py +183 -138
- pymobiledevice3/utils.py +14 -11
- {pymobiledevice3-5.0.0.dist-info → pymobiledevice3-5.0.2.dist-info}/METADATA +1 -1
- pymobiledevice3-5.0.2.dist-info/RECORD +173 -0
- pymobiledevice3-5.0.0.dist-info/RECORD +0 -173
- {pymobiledevice3-5.0.0.dist-info → pymobiledevice3-5.0.2.dist-info}/WHEEL +0 -0
- {pymobiledevice3-5.0.0.dist-info → pymobiledevice3-5.0.2.dist-info}/entry_points.txt +0 -0
- {pymobiledevice3-5.0.0.dist-info → pymobiledevice3-5.0.2.dist-info}/licenses/LICENSE +0 -0
- {pymobiledevice3-5.0.0.dist-info → pymobiledevice3-5.0.2.dist-info}/top_level.txt +0 -0
pymobiledevice3/exceptions.py
CHANGED
|
@@ -1,21 +1,74 @@
|
|
|
1
1
|
__all__ = [
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
2
|
+
"AccessDeniedError",
|
|
3
|
+
"AfcException",
|
|
4
|
+
"AfcFileNotFoundError",
|
|
5
|
+
"AlreadyMountedError",
|
|
6
|
+
"AmfiError",
|
|
7
|
+
"ArbitrationError",
|
|
8
|
+
"ArgumentError",
|
|
9
|
+
"BadCommandError",
|
|
10
|
+
"BadDevError",
|
|
11
|
+
"CannotStopSessionError",
|
|
12
|
+
"CloudConfigurationAlreadyPresentError",
|
|
13
|
+
"ConnectionFailedError",
|
|
14
|
+
"ConnectionFailedToUsbmuxdError",
|
|
15
|
+
"ConnectionTerminatedError",
|
|
16
|
+
"CoreDeviceError",
|
|
17
|
+
"DeprecationError",
|
|
18
|
+
"DeveloperModeError",
|
|
19
|
+
"DeveloperModeIsNotEnabledError",
|
|
20
|
+
"DeviceAlreadyInUseError",
|
|
21
|
+
"DeviceHasPasscodeSetError",
|
|
22
|
+
"DeviceNotFoundError",
|
|
23
|
+
"DeviceVersionNotSupportedError",
|
|
24
|
+
"DisableMemoryLimitError",
|
|
25
|
+
"DvtDirListError",
|
|
26
|
+
"DvtException",
|
|
27
|
+
"ExtractingStackshotError",
|
|
28
|
+
"FatalPairingError",
|
|
29
|
+
"FeatureNotSupportedError",
|
|
30
|
+
"GetProhibitedError",
|
|
31
|
+
"IRecvError",
|
|
32
|
+
"IRecvNoDeviceConnectedError",
|
|
33
|
+
"IncorrectModeError",
|
|
34
|
+
"InspectorEvaluateError",
|
|
35
|
+
"InternalError",
|
|
36
|
+
"InvalidConnectionError",
|
|
37
|
+
"InvalidHostIDError",
|
|
38
|
+
"InvalidServiceError",
|
|
39
|
+
"LaunchingApplicationError",
|
|
40
|
+
"LockdownError",
|
|
41
|
+
"MessageNotSupportedError",
|
|
42
|
+
"MissingValueError",
|
|
43
|
+
"MuxException",
|
|
44
|
+
"MuxVersionError",
|
|
45
|
+
"NoDeviceConnectedError",
|
|
46
|
+
"NotEnoughDiskSpaceError",
|
|
47
|
+
"NotMountedError",
|
|
48
|
+
"NotPairedError",
|
|
49
|
+
"NotTrustedError",
|
|
50
|
+
"NotificationTimeoutError",
|
|
51
|
+
"OSNotSupportedError",
|
|
52
|
+
"PairingDialogResponsePendingError",
|
|
53
|
+
"PairingError",
|
|
54
|
+
"PasscodeRequiredError",
|
|
55
|
+
"PasswordRequiredError",
|
|
56
|
+
"ProfileError",
|
|
57
|
+
"PyMobileDevice3Exception",
|
|
58
|
+
"QuicProtocolNotSupportedError",
|
|
59
|
+
"RSDRequiredError",
|
|
60
|
+
"RemoteAutomationNotEnabledError",
|
|
61
|
+
"RemotePairingCompletedError",
|
|
62
|
+
"SetProhibitedError",
|
|
63
|
+
"StartServiceError",
|
|
64
|
+
"SysdiagnoseTimeoutError",
|
|
65
|
+
"TSSError",
|
|
66
|
+
"TunneldConnectionError",
|
|
67
|
+
"UnrecognizedSelectorError",
|
|
68
|
+
"UnsupportedCommandError",
|
|
69
|
+
"UserDeniedPairingError",
|
|
70
|
+
"WebInspectorNotEnabledError",
|
|
71
|
+
"WirError",
|
|
19
72
|
]
|
|
20
73
|
|
|
21
74
|
from typing import Optional
|
|
@@ -120,113 +173,131 @@ class AfcFileNotFoundError(AfcException):
|
|
|
120
173
|
|
|
121
174
|
|
|
122
175
|
class DvtException(PyMobileDevice3Exception):
|
|
123
|
-
"""
|
|
176
|
+
"""Domain exception for DVT operations."""
|
|
177
|
+
|
|
124
178
|
pass
|
|
125
179
|
|
|
126
180
|
|
|
127
181
|
class UnrecognizedSelectorError(DvtException):
|
|
128
|
-
"""
|
|
182
|
+
"""Attempted to call an unrecognized selector from DVT."""
|
|
183
|
+
|
|
129
184
|
pass
|
|
130
185
|
|
|
131
186
|
|
|
132
187
|
class DvtDirListError(DvtException):
|
|
133
|
-
"""
|
|
188
|
+
"""Raise when directory listing fails."""
|
|
189
|
+
|
|
134
190
|
pass
|
|
135
191
|
|
|
136
192
|
|
|
137
193
|
class NotMountedError(PyMobileDevice3Exception):
|
|
138
|
-
"""
|
|
194
|
+
"""Given image for umount wasn't mounted in the first place"""
|
|
195
|
+
|
|
139
196
|
pass
|
|
140
197
|
|
|
141
198
|
|
|
142
199
|
class AlreadyMountedError(PyMobileDevice3Exception):
|
|
143
|
-
"""
|
|
200
|
+
"""Given image for mount has already been mounted in the first place"""
|
|
201
|
+
|
|
144
202
|
pass
|
|
145
203
|
|
|
146
204
|
|
|
147
205
|
class MissingManifestError(PyMobileDevice3Exception):
|
|
148
|
-
"""
|
|
206
|
+
"""No manifest could be found"""
|
|
207
|
+
|
|
149
208
|
pass
|
|
150
209
|
|
|
151
210
|
|
|
152
211
|
class UnsupportedCommandError(PyMobileDevice3Exception):
|
|
153
|
-
"""
|
|
212
|
+
"""Given command isn't supported for this iOS version"""
|
|
213
|
+
|
|
154
214
|
pass
|
|
155
215
|
|
|
156
216
|
|
|
157
217
|
class ExtractingStackshotError(PyMobileDevice3Exception):
|
|
158
|
-
"""
|
|
218
|
+
"""Raise when stackshot is not received in the core profile session."""
|
|
219
|
+
|
|
159
220
|
pass
|
|
160
221
|
|
|
161
222
|
|
|
162
223
|
class ConnectionTerminatedError(PyMobileDevice3Exception):
|
|
163
|
-
"""
|
|
224
|
+
"""Raise when a connection is terminated abruptly."""
|
|
225
|
+
|
|
164
226
|
pass
|
|
165
227
|
|
|
166
228
|
|
|
167
229
|
class StreamClosedError(ConnectionTerminatedError):
|
|
168
|
-
"""
|
|
230
|
+
"""Raise when trying to send a message on a closed stream."""
|
|
231
|
+
|
|
169
232
|
pass
|
|
170
233
|
|
|
171
234
|
|
|
172
235
|
class WebInspectorNotEnabledError(PyMobileDevice3Exception):
|
|
173
|
-
"""
|
|
236
|
+
"""Raise when Web Inspector is not enabled."""
|
|
237
|
+
|
|
174
238
|
pass
|
|
175
239
|
|
|
176
240
|
|
|
177
241
|
class RemoteAutomationNotEnabledError(PyMobileDevice3Exception):
|
|
178
|
-
"""
|
|
242
|
+
"""Raise when Web Inspector remote automation is not enabled."""
|
|
243
|
+
|
|
179
244
|
pass
|
|
180
245
|
|
|
181
246
|
|
|
182
247
|
class WirError(PyMobileDevice3Exception):
|
|
183
|
-
"""
|
|
248
|
+
"""Raise when Webinspector WIR command fails."""
|
|
249
|
+
|
|
184
250
|
pass
|
|
185
251
|
|
|
186
252
|
|
|
187
253
|
class InternalError(PyMobileDevice3Exception):
|
|
188
|
-
"""
|
|
254
|
+
"""Some internal Apple error"""
|
|
255
|
+
|
|
189
256
|
pass
|
|
190
257
|
|
|
191
258
|
|
|
192
259
|
class ArbitrationError(PyMobileDevice3Exception):
|
|
193
|
-
"""
|
|
260
|
+
"""Arbitration failed"""
|
|
261
|
+
|
|
194
262
|
pass
|
|
195
263
|
|
|
196
264
|
|
|
197
265
|
class DeviceAlreadyInUseError(ArbitrationError):
|
|
198
|
-
"""
|
|
266
|
+
"""Device is already checked-in by someone"""
|
|
199
267
|
|
|
200
268
|
@property
|
|
201
269
|
def message(self):
|
|
202
|
-
return self.args[0].get(
|
|
270
|
+
return self.args[0].get("message")
|
|
203
271
|
|
|
204
272
|
@property
|
|
205
273
|
def owner(self):
|
|
206
|
-
return self.args[0].get(
|
|
274
|
+
return self.args[0].get("owner")
|
|
207
275
|
|
|
208
276
|
@property
|
|
209
277
|
def result(self):
|
|
210
|
-
return self.args[0].get(
|
|
278
|
+
return self.args[0].get("result")
|
|
211
279
|
|
|
212
280
|
|
|
213
281
|
class DeveloperModeIsNotEnabledError(PyMobileDevice3Exception):
|
|
214
|
-
"""
|
|
282
|
+
"""Raise when mounting failed because developer mode is not enabled."""
|
|
283
|
+
|
|
215
284
|
pass
|
|
216
285
|
|
|
217
286
|
|
|
218
287
|
class DeveloperDiskImageNotFoundError(PyMobileDevice3Exception):
|
|
219
|
-
"""
|
|
288
|
+
"""Failed to locate the correct DeveloperDiskImage.dmg"""
|
|
289
|
+
|
|
220
290
|
pass
|
|
221
291
|
|
|
222
292
|
|
|
223
293
|
class DeveloperModeError(PyMobileDevice3Exception):
|
|
224
|
-
"""
|
|
294
|
+
"""Raise when amfid failed to enable developer mode."""
|
|
295
|
+
|
|
225
296
|
pass
|
|
226
297
|
|
|
227
298
|
|
|
228
299
|
class LockdownError(PyMobileDevice3Exception):
|
|
229
|
-
"""
|
|
300
|
+
"""lockdown general error"""
|
|
230
301
|
|
|
231
302
|
def __init__(self, message: str, identifier: Optional[str] = None) -> None:
|
|
232
303
|
super().__init__(message)
|
|
@@ -242,7 +313,8 @@ class SetProhibitedError(LockdownError):
|
|
|
242
313
|
|
|
243
314
|
|
|
244
315
|
class PairingDialogResponsePendingError(PairingError):
|
|
245
|
-
"""
|
|
316
|
+
"""User hasn't yet confirmed the device is trusted"""
|
|
317
|
+
|
|
246
318
|
pass
|
|
247
319
|
|
|
248
320
|
|
|
@@ -255,7 +327,8 @@ class InvalidHostIDError(PairingError):
|
|
|
255
327
|
|
|
256
328
|
|
|
257
329
|
class MissingValueError(LockdownError):
|
|
258
|
-
"""
|
|
330
|
+
"""raised when attempting to query non-existent domain/key"""
|
|
331
|
+
|
|
259
332
|
pass
|
|
260
333
|
|
|
261
334
|
|
|
@@ -264,7 +337,8 @@ class InvalidConnectionError(LockdownError):
|
|
|
264
337
|
|
|
265
338
|
|
|
266
339
|
class PasscodeRequiredError(LockdownError):
|
|
267
|
-
"""
|
|
340
|
+
"""passcode must be present for this action"""
|
|
341
|
+
|
|
268
342
|
pass
|
|
269
343
|
|
|
270
344
|
|
|
@@ -305,8 +379,14 @@ class InvalidServiceError(LockdownError):
|
|
|
305
379
|
|
|
306
380
|
|
|
307
381
|
class InspectorEvaluateError(PyMobileDevice3Exception):
|
|
308
|
-
def __init__(
|
|
309
|
-
|
|
382
|
+
def __init__(
|
|
383
|
+
self,
|
|
384
|
+
class_name: str,
|
|
385
|
+
message: str,
|
|
386
|
+
line: Optional[int] = None,
|
|
387
|
+
column: Optional[int] = None,
|
|
388
|
+
stack: Optional[list[str]] = None,
|
|
389
|
+
):
|
|
310
390
|
super().__init__()
|
|
311
391
|
self.class_name = class_name
|
|
312
392
|
self.message = message
|
|
@@ -315,10 +395,8 @@ class InspectorEvaluateError(PyMobileDevice3Exception):
|
|
|
315
395
|
self.stack = stack
|
|
316
396
|
|
|
317
397
|
def __str__(self) -> str:
|
|
318
|
-
stack_trace =
|
|
319
|
-
return
|
|
320
|
-
f'Line: {self.line} Column: {self.column}\n'
|
|
321
|
-
f'Stack: {stack_trace}')
|
|
398
|
+
stack_trace = "\n".join([f"\t - {frame}" for frame in self.stack])
|
|
399
|
+
return f"{self.class_name}: {self.message}.\nLine: {self.line} Column: {self.column}\nStack: {stack_trace}"
|
|
322
400
|
|
|
323
401
|
|
|
324
402
|
class LaunchingApplicationError(PyMobileDevice3Exception):
|
|
@@ -338,7 +416,8 @@ class CoreDeviceError(PyMobileDevice3Exception):
|
|
|
338
416
|
|
|
339
417
|
|
|
340
418
|
class AccessDeniedError(PyMobileDevice3Exception):
|
|
341
|
-
"""
|
|
419
|
+
"""Need extra permissions to execute this command"""
|
|
420
|
+
|
|
342
421
|
pass
|
|
343
422
|
|
|
344
423
|
|
|
@@ -347,22 +426,25 @@ class NoSuchBuildIdentityError(PyMobileDevice3Exception):
|
|
|
347
426
|
|
|
348
427
|
|
|
349
428
|
class MobileActivationException(PyMobileDevice3Exception):
|
|
350
|
-
"""
|
|
429
|
+
"""Mobile activation can not be done"""
|
|
430
|
+
|
|
351
431
|
pass
|
|
352
432
|
|
|
353
433
|
|
|
354
434
|
class NotEnoughDiskSpaceError(PyMobileDevice3Exception):
|
|
355
|
-
"""
|
|
435
|
+
"""Computer does not have enough disk space for the intended operation"""
|
|
436
|
+
|
|
356
437
|
pass
|
|
357
438
|
|
|
358
439
|
|
|
359
440
|
class DeprecationError(PyMobileDevice3Exception):
|
|
360
|
-
"""
|
|
441
|
+
"""The requested action/service/method is deprecated"""
|
|
442
|
+
|
|
361
443
|
pass
|
|
362
444
|
|
|
363
445
|
|
|
364
446
|
class RSDRequiredError(PyMobileDevice3Exception):
|
|
365
|
-
"""
|
|
447
|
+
"""The requested action requires an RSD object"""
|
|
366
448
|
|
|
367
449
|
def __init__(self, identifier: str) -> None:
|
|
368
450
|
self.identifier = identifier
|
|
@@ -370,7 +452,8 @@ class RSDRequiredError(PyMobileDevice3Exception):
|
|
|
370
452
|
|
|
371
453
|
|
|
372
454
|
class SysdiagnoseTimeoutError(PyMobileDevice3Exception, TimeoutError):
|
|
373
|
-
"""
|
|
455
|
+
"""Timeout collecting new sysdiagnose archive"""
|
|
456
|
+
|
|
374
457
|
pass
|
|
375
458
|
|
|
376
459
|
|
|
@@ -381,12 +464,13 @@ class SupportError(PyMobileDevice3Exception):
|
|
|
381
464
|
|
|
382
465
|
|
|
383
466
|
class OSNotSupportedError(SupportError):
|
|
384
|
-
"""
|
|
467
|
+
"""Operating system is not supported."""
|
|
468
|
+
|
|
385
469
|
pass
|
|
386
470
|
|
|
387
471
|
|
|
388
472
|
class FeatureNotSupportedError(SupportError):
|
|
389
|
-
"""
|
|
473
|
+
"""Feature has not been implemented for OS."""
|
|
390
474
|
|
|
391
475
|
def __init__(self, os_name, feature):
|
|
392
476
|
super().__init__(os_name)
|
|
@@ -394,7 +478,8 @@ class FeatureNotSupportedError(SupportError):
|
|
|
394
478
|
|
|
395
479
|
|
|
396
480
|
class QuicProtocolNotSupportedError(PyMobileDevice3Exception):
|
|
397
|
-
"""
|
|
481
|
+
"""QUIC tunnel support was removed on iOS 18.2+"""
|
|
482
|
+
|
|
398
483
|
pass
|
|
399
484
|
|
|
400
485
|
|
|
@@ -405,14 +490,23 @@ class RemotePairingCompletedError(PyMobileDevice3Exception):
|
|
|
405
490
|
remotepairingdeviced closes connection after pairing, so client must re-establish it after pairing is
|
|
406
491
|
completed.
|
|
407
492
|
"""
|
|
493
|
+
|
|
408
494
|
pass
|
|
409
495
|
|
|
410
496
|
|
|
411
497
|
class DisableMemoryLimitError(PyMobileDevice3Exception):
|
|
412
|
-
"""
|
|
498
|
+
"""Disabling memory limit fails."""
|
|
499
|
+
|
|
413
500
|
pass
|
|
414
501
|
|
|
415
502
|
|
|
416
503
|
class ProtocolError(PyMobileDevice3Exception):
|
|
417
|
-
"""
|
|
504
|
+
"""An unexpected protocol message was received"""
|
|
505
|
+
|
|
506
|
+
pass
|
|
507
|
+
|
|
508
|
+
|
|
509
|
+
class TSSError(PyMobileDevice3Exception):
|
|
510
|
+
"""An unexpected message was received from apple ticket server"""
|
|
511
|
+
|
|
418
512
|
pass
|