pymobiledevice3 4.21.8__py3-none-any.whl → 4.22.0__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.
- pymobiledevice3/_version.py +2 -2
- pymobiledevice3/cli/diagnostics.py +8 -2
- pymobiledevice3/cli/mounter.py +2 -2
- pymobiledevice3/cli/webinspector.py +0 -1
- pymobiledevice3/restore/tss.py +8 -3
- pymobiledevice3/services/mobile_image_mounter.py +8 -1
- {pymobiledevice3-4.21.8.dist-info → pymobiledevice3-4.22.0.dist-info}/METADATA +1 -1
- {pymobiledevice3-4.21.8.dist-info → pymobiledevice3-4.22.0.dist-info}/RECORD +12 -12
- {pymobiledevice3-4.21.8.dist-info → pymobiledevice3-4.22.0.dist-info}/WHEEL +0 -0
- {pymobiledevice3-4.21.8.dist-info → pymobiledevice3-4.22.0.dist-info}/entry_points.txt +0 -0
- {pymobiledevice3-4.21.8.dist-info → pymobiledevice3-4.22.0.dist-info}/licenses/LICENSE +0 -0
- {pymobiledevice3-4.21.8.dist-info → pymobiledevice3-4.22.0.dist-info}/top_level.txt +0 -0
pymobiledevice3/_version.py
CHANGED
|
@@ -4,7 +4,7 @@ import time
|
|
|
4
4
|
import click
|
|
5
5
|
|
|
6
6
|
from pymobiledevice3.cli.cli_common import Command, print_json
|
|
7
|
-
from pymobiledevice3.lockdown import LockdownClient
|
|
7
|
+
from pymobiledevice3.lockdown import LockdownClient, retry_create_using_usbmux
|
|
8
8
|
from pymobiledevice3.lockdown_service_provider import LockdownServiceProvider
|
|
9
9
|
from pymobiledevice3.services.diagnostics import DiagnosticsService
|
|
10
10
|
|
|
@@ -23,9 +23,15 @@ def diagnostics() -> None:
|
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
@diagnostics.command('restart', cls=Command)
|
|
26
|
-
|
|
26
|
+
@click.option('-r', '--reconnect', is_flag=True, default=False,
|
|
27
|
+
help='Wait until the device reconnects before finishing the operation.')
|
|
28
|
+
def diagnostics_restart(service_provider: LockdownClient, reconnect):
|
|
27
29
|
""" Restart device """
|
|
28
30
|
DiagnosticsService(lockdown=service_provider).restart()
|
|
31
|
+
if reconnect:
|
|
32
|
+
# Wait for the device to be available again
|
|
33
|
+
with retry_create_using_usbmux(None, serial=service_provider.udid):
|
|
34
|
+
print(f'Device Reconnected ({service_provider.udid}).')
|
|
29
35
|
|
|
30
36
|
|
|
31
37
|
@diagnostics.command('shutdown', cls=Command)
|
pymobiledevice3/cli/mounter.py
CHANGED
|
@@ -135,8 +135,8 @@ async def mounter_auto_mount_task(service_provider: LockdownServiceProvider, xco
|
|
|
135
135
|
@mounter.command('auto-mount', cls=Command)
|
|
136
136
|
@click.option('-x', '--xcode', type=click.Path(exists=True, dir_okay=True, file_okay=False),
|
|
137
137
|
help='Xcode application path used to figure out automatically the DeveloperDiskImage path')
|
|
138
|
-
@click.option('
|
|
139
|
-
|
|
138
|
+
@click.option('--version', help='use a different DeveloperDiskImage version from the one retrieved by lockdown'
|
|
139
|
+
'connection')
|
|
140
140
|
def mounter_auto_mount(service_provider: LockdownServiceProvider, xcode: str, version: str) -> None:
|
|
141
141
|
""" auto-detect correct DeveloperDiskImage and mount it """
|
|
142
142
|
asyncio.run(mounter_auto_mount_task(service_provider, xcode, version), debug=True)
|
|
@@ -105,7 +105,6 @@ def create_webinspector_and_launch_app(lockdown: LockdownClient, timeout: float,
|
|
|
105
105
|
|
|
106
106
|
|
|
107
107
|
@webinspector.command(cls=Command)
|
|
108
|
-
@click.option('-v', '--verbose', is_flag=True)
|
|
109
108
|
@click.option('-t', '--timeout', default=3, show_default=True, type=float)
|
|
110
109
|
@catch_errors
|
|
111
110
|
def opened_tabs(service_provider: LockdownClient, verbose, timeout):
|
pymobiledevice3/restore/tss.py
CHANGED
|
@@ -56,7 +56,7 @@ class TSSResponse(dict):
|
|
|
56
56
|
|
|
57
57
|
class TSSRequest:
|
|
58
58
|
def __init__(self):
|
|
59
|
-
self._request = {
|
|
59
|
+
self._request: dict[str, typing.Any] = {
|
|
60
60
|
'@HostPlatformInfo': 'mac',
|
|
61
61
|
'@VersionInfo': TSS_CLIENT_VERSION_STRING,
|
|
62
62
|
'@UUID': str(uuid4()).upper(),
|
|
@@ -361,16 +361,21 @@ class TSSRequest:
|
|
|
361
361
|
k = 'Ap,SikaFuse'
|
|
362
362
|
self._request[k] = v
|
|
363
363
|
|
|
364
|
-
uid_mode = parameters.get('UID_MODE'
|
|
364
|
+
uid_mode = parameters.get('UID_MODE')
|
|
365
365
|
|
|
366
366
|
if 'NeRDEpoch' in parameters:
|
|
367
367
|
self._request['PermitNeRDPivot'] = b''
|
|
368
368
|
|
|
369
|
-
|
|
369
|
+
if uid_mode is not None:
|
|
370
|
+
self._request['UID_MODE'] = uid_mode
|
|
370
371
|
self._request['@ApImg4Ticket'] = True
|
|
371
372
|
self._request['@BBTicket'] = True
|
|
372
373
|
|
|
373
374
|
if parameters.get('RequiresUIDMode'):
|
|
375
|
+
# The logic here is missing why this value is expected to be 'false'
|
|
376
|
+
self._request['UID_MODE'] = False
|
|
377
|
+
|
|
378
|
+
# Workaround: We have only seen Ap,SikaFuse together with UID_MODE
|
|
374
379
|
self._request['Ap,SikaFuse'] = 0
|
|
375
380
|
|
|
376
381
|
def add_se_tags(self, parameters: dict, overrides=None):
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import hashlib
|
|
2
|
+
import logging
|
|
2
3
|
import plistlib
|
|
3
4
|
from pathlib import Path
|
|
4
5
|
from typing import Optional
|
|
@@ -15,7 +16,9 @@ from pymobiledevice3.lockdown_service_provider import LockdownServiceProvider
|
|
|
15
16
|
from pymobiledevice3.restore.tss import TSSRequest
|
|
16
17
|
from pymobiledevice3.services.lockdown_service import LockdownService
|
|
17
18
|
|
|
18
|
-
|
|
19
|
+
logger = logging.getLogger(__name__)
|
|
20
|
+
|
|
21
|
+
LATEST_DDI_BUILD_ID = '16E5121h'
|
|
19
22
|
|
|
20
23
|
|
|
21
24
|
class MobileImageMounterService(LockdownService):
|
|
@@ -355,6 +358,10 @@ async def auto_mount_personalized(lockdown: LockdownServiceProvider) -> None:
|
|
|
355
358
|
image.write_bytes(personalized_image.image)
|
|
356
359
|
build_manifest.write_bytes(personalized_image.build_manifest)
|
|
357
360
|
trustcache.write_bytes(personalized_image.trustcache)
|
|
361
|
+
downloaded_ddi_build_id = plistlib.loads(personalized_image.build_manifest).get('ProductBuildVersion')
|
|
362
|
+
if downloaded_ddi_build_id != LATEST_DDI_BUILD_ID:
|
|
363
|
+
logger.warning('Downloaded personalized image has unexpected ProductBuildVersion '
|
|
364
|
+
f'{downloaded_ddi_build_id}. Please update pymobiledevice3!')
|
|
358
365
|
|
|
359
366
|
await PersonalizedImageMounter(lockdown=lockdown).mount(image, build_manifest, trustcache)
|
|
360
367
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pymobiledevice3
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.22.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>
|
|
@@ -8,7 +8,7 @@ misc/understanding_idevice_protocol_layers.md,sha256=8tEqRXWOUPoxOJLZVh7C7H9JGCh
|
|
|
8
8
|
misc/usbmux_sniff.sh,sha256=iWtbucOEQ9_UEFXk9x-2VNt48Jg5zrPsnUbZ_LfZxwA,212
|
|
9
9
|
pymobiledevice3/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
10
|
pymobiledevice3/__main__.py,sha256=nwUgfXBMii2MSXLUls2uMTG88uC13s4haPBM4LuGcaU,11530
|
|
11
|
-
pymobiledevice3/_version.py,sha256=
|
|
11
|
+
pymobiledevice3/_version.py,sha256=orvHwmO-r_x_VgHSM3aH7L9XDQWnlhDlDhFDhwlMiOk,513
|
|
12
12
|
pymobiledevice3/bonjour.py,sha256=FXa_x0Zdo6ims7N7F61hnnZEyn1tc2it3mQpHRMY0Kk,5560
|
|
13
13
|
pymobiledevice3/ca.py,sha256=Ho0NaOtATe5hdruUSlVDRpfR9ltEYXjL3MoKwEvEJjw,2296
|
|
14
14
|
pymobiledevice3/common.py,sha256=-PG6oaUkNFlB3jb7E0finMrX8wqhkS-cuTAfmLvZUmc,329
|
|
@@ -34,9 +34,9 @@ pymobiledevice3/cli/companion_proxy.py,sha256=ey0X3moJ49zVJoNCpRMMHmf9fBZfdqimhz
|
|
|
34
34
|
pymobiledevice3/cli/completions.py,sha256=t8oryezQTcWDno_E2Cch7o1f-qURVL9M1Z4o6uLA_kM,1722
|
|
35
35
|
pymobiledevice3/cli/crash.py,sha256=m1vs0_KUy4cxu8vHYjn7olay8oPQGTFZqMCHspnGpVs,3181
|
|
36
36
|
pymobiledevice3/cli/developer.py,sha256=9ZAvy7nqX4vPjx-2peqjuhaeEK5iYHTmWgevcvglbXM,55075
|
|
37
|
-
pymobiledevice3/cli/diagnostics.py,sha256=
|
|
37
|
+
pymobiledevice3/cli/diagnostics.py,sha256=VDWr41ryIZcpuQp47nQSzCiSuIILExqGSrwFizXCIkI,3641
|
|
38
38
|
pymobiledevice3/cli/lockdown.py,sha256=498SgKdIC_YaoEjVtQQvo8bvv8GDeUTY8yWh4isy_qc,6941
|
|
39
|
-
pymobiledevice3/cli/mounter.py,sha256=
|
|
39
|
+
pymobiledevice3/cli/mounter.py,sha256=AnNneNF_kW7XnBMe4V5cvlbLYd_mAP4tuB3PXLQpeiA,7724
|
|
40
40
|
pymobiledevice3/cli/notification.py,sha256=vqn8uPslr7A9HiZ4yrs7YKF2VLS7Nk4G7ab5ELljpVQ,1962
|
|
41
41
|
pymobiledevice3/cli/pcap.py,sha256=KzFxXWFRYWNOEJE1XAuMF2cG8I4k5wFVcMRhSdY4GQg,2188
|
|
42
42
|
pymobiledevice3/cli/power_assertion.py,sha256=aTlesowRyrbd9JXebEZe9SomTkDkZaAXIOyTIitRJ0c,880
|
|
@@ -49,7 +49,7 @@ pymobiledevice3/cli/springboard.py,sha256=pYMqnD0zN_ETIASPqxBohi54F2HMC9jCILW4ep
|
|
|
49
49
|
pymobiledevice3/cli/syslog.py,sha256=JfLhjyVAeRx16VC4BsAu308rABjcIQX8DB7vbVKGiic,7462
|
|
50
50
|
pymobiledevice3/cli/usbmux.py,sha256=f8T6Xt4ym9wfnxFIAyJ1W76YI0h1hqrRfKj4PxCoNRc,2365
|
|
51
51
|
pymobiledevice3/cli/version.py,sha256=OtvxHV8JjLFNaiA1Q5Qll3bsw__hrij-9FUmkDmNS40,346
|
|
52
|
-
pymobiledevice3/cli/webinspector.py,sha256=
|
|
52
|
+
pymobiledevice3/cli/webinspector.py,sha256=BNXio0ATrpbMiLRLfrm9oq0pdGdbpH1QEZOzxy-PSgE,15528
|
|
53
53
|
pymobiledevice3/osu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
54
54
|
pymobiledevice3/osu/os_utils.py,sha256=YwMTUT6o67xa-la8ElxdHQ1hBJM_u2gsoKW5RNxCEEU,3272
|
|
55
55
|
pymobiledevice3/osu/posix_util.py,sha256=YllI2PH2VngvLs273Hi05C2pHfvwx5NNPdtbrlNYxaI,3370
|
|
@@ -95,7 +95,7 @@ pymobiledevice3/restore/recovery.py,sha256=YB2wZST3uhQMO1DwewfHb2VdEb-gH8nW58RbT
|
|
|
95
95
|
pymobiledevice3/restore/restore.py,sha256=GE86M79jd6nnd5GyY4ZLiEyhMKe0GxLTKe_bDcqtpJg,57479
|
|
96
96
|
pymobiledevice3/restore/restore_options.py,sha256=qeh_wRa_bi0Ccl0p0JuX9EChEQBqwJt94EBImWcEJ3E,7255
|
|
97
97
|
pymobiledevice3/restore/restored_client.py,sha256=h_yBZ_e1wfaIzi0f9-R8Ky2x6xFTkvDlpWIV561uxoU,3638
|
|
98
|
-
pymobiledevice3/restore/tss.py,sha256=
|
|
98
|
+
pymobiledevice3/restore/tss.py,sha256=egguhU3aVt8yWba-MFa2aoL999bn61kty8ON0QcTKoE,29853
|
|
99
99
|
pymobiledevice3/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
100
100
|
pymobiledevice3/services/accessibilityaudit.py,sha256=PtQujwFLL3E1OgOSUjkKHvgmk2e8Ij2XZIp8JicAphs,15547
|
|
101
101
|
pymobiledevice3/services/afc.py,sha256=9Ddc0emUrwLPOi0DLy1MZ5w7zqotYNxBB2OU0WyIWsk,36244
|
|
@@ -115,7 +115,7 @@ pymobiledevice3/services/lockdown_service.py,sha256=WP2l3qIdU7XtWDQMfNEPwSJZfS7D
|
|
|
115
115
|
pymobiledevice3/services/misagent.py,sha256=YGLo2LhzyYWyICxKDhy3Ph7SewYk5I1VN3-LjKv_plo,2088
|
|
116
116
|
pymobiledevice3/services/mobile_activation.py,sha256=NTxdiA39-XpN77OJAErVkGsxUZf_b1AOSd08URKu0MA,6139
|
|
117
117
|
pymobiledevice3/services/mobile_config.py,sha256=Ev1AmJ6pzeZKnwMaSKIwWAOWVMqH2QgDbjD49Jc_l20,17419
|
|
118
|
-
pymobiledevice3/services/mobile_image_mounter.py,sha256=
|
|
118
|
+
pymobiledevice3/services/mobile_image_mounter.py,sha256=_XjVGfhv7g9Ils5Q9AGi6i-lgakmDdN4e79UPdCZ4xA,15046
|
|
119
119
|
pymobiledevice3/services/mobilebackup2.py,sha256=1Wo4IpLG5HUfkGJustsv2SoTBBax30PZyKOtEOz5Eac,18217
|
|
120
120
|
pymobiledevice3/services/notification_proxy.py,sha256=VCOG8G0HNn8_tFKUdLs5BFkshQCtI_LNH-w4MuNF2MM,2109
|
|
121
121
|
pymobiledevice3/services/os_trace.py,sha256=Vi_KGWK8hsvk6eMNuv-ae-iEn3UlUk3SF_niC8yBEmU,6465
|
|
@@ -164,9 +164,9 @@ pymobiledevice3/services/web_protocol/switch_to.py,sha256=hDddJUEePbRN-8xlllOeGh
|
|
|
164
164
|
pymobiledevice3/tunneld/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
165
165
|
pymobiledevice3/tunneld/api.py,sha256=EfGKXEWhsMSB__menPmRmL9R6dpazVJDUy7B3pn05MM,2357
|
|
166
166
|
pymobiledevice3/tunneld/server.py,sha256=SvC57AV_R8YQhA0fCwGNUdhfy8TKMFWwL_fp_FmXrBI,22715
|
|
167
|
-
pymobiledevice3-4.
|
|
168
|
-
pymobiledevice3-4.
|
|
169
|
-
pymobiledevice3-4.
|
|
170
|
-
pymobiledevice3-4.
|
|
171
|
-
pymobiledevice3-4.
|
|
172
|
-
pymobiledevice3-4.
|
|
167
|
+
pymobiledevice3-4.22.0.dist-info/licenses/LICENSE,sha256=jOtLnuWt7d5Hsx6XXB2QxzrSe2sWWh3NgMfFRetluQM,35147
|
|
168
|
+
pymobiledevice3-4.22.0.dist-info/METADATA,sha256=mm3AkE_Rn5KkOwr_RhT6qcMLTENzw--0VAycsdfQ0ic,17366
|
|
169
|
+
pymobiledevice3-4.22.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
170
|
+
pymobiledevice3-4.22.0.dist-info/entry_points.txt,sha256=jJMlOanHlVwUxcY__JwvKeWPrvBJr_wJyEq4oHIZNKE,66
|
|
171
|
+
pymobiledevice3-4.22.0.dist-info/top_level.txt,sha256=MjZoRqcWPOh5banG-BbDOnKEfsS3kCxqV9cv-nzyg2Q,21
|
|
172
|
+
pymobiledevice3-4.22.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|