pymobiledevice3 4.22.0__py3-none-any.whl → 4.23.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.

@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '4.22.0'
21
- __version_tuple__ = version_tuple = (4, 22, 0)
20
+ __version__ = version = '4.23.0'
21
+ __version_tuple__ = version_tuple = (4, 23, 0)
@@ -45,10 +45,11 @@ def uninstall(service_provider: LockdownClient, bundle_id):
45
45
 
46
46
 
47
47
  @apps.command('install', cls=Command)
48
+ @click.option('--developer', is_flag=True, help='Install developer package')
48
49
  @click.argument('package', type=click.Path(exists=True))
49
- def install(service_provider: LockdownServiceProvider, package: str) -> None:
50
+ def install(service_provider: LockdownServiceProvider, package: str, developer: bool) -> None:
50
51
  """ install given .ipa/.app/.ipcc """
51
- InstallationProxyService(lockdown=service_provider).install_from_local(package)
52
+ InstallationProxyService(lockdown=service_provider).install_from_local(package, developer=developer)
52
53
 
53
54
 
54
55
  @apps.command('afc', cls=Command)
@@ -60,12 +60,12 @@ def parse_plist(payload: bytes) -> dict:
60
60
  :param payload: The plist-formatted byte string to parse.
61
61
  :return: The parsed dictionary.
62
62
  :raises PyMobileDevice3Exception: If the payload is invalid.
63
- :retries with a filtered payload if plistlib compains about "not well-formed (invalid token)"
63
+ :retries with a filtered payload of only valid XML characters if plistlib compains about "not well-formed (invalid token)"
64
64
  """
65
65
  try:
66
66
  return plistlib.loads(payload)
67
67
  except xml.parsers.expat.ExpatError:
68
- payload = bytes([b for b in payload if b not in (0x00, 0x10)])
68
+ payload = bytes([b for b in payload if b >= 0x20 or b in (0x09, 0x0a, 0x0d)])
69
69
  try:
70
70
  return plistlib.loads(payload)
71
71
  except plistlib.InvalidFileException:
@@ -150,7 +150,7 @@ class InstallationProxyService(LockdownService):
150
150
 
151
151
  @str_to_path('package_path')
152
152
  def install_from_local(self, package_path: Path, cmd: str = 'Install', options: Optional[dict] = None,
153
- handler: Callable = None, *args) -> None:
153
+ handler: Callable = None, developer: bool = False, *args) -> None:
154
154
  """ upload given ipa/ipcc onto device and install it """
155
155
  ipcc_mode = package_path.suffix == '.ipcc'
156
156
 
@@ -167,6 +167,9 @@ class InstallationProxyService(LockdownService):
167
167
  # treat as ipa
168
168
  ipa_contents = package_path.read_bytes()
169
169
 
170
+ if developer:
171
+ options['PackageType'] = 'Developer'
172
+
170
173
  with AfcService(self.lockdown) as afc:
171
174
  if not ipcc_mode:
172
175
  afc.makedirs(TEMP_REMOTE_BASEDIR)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pymobiledevice3
3
- Version: 4.22.0
3
+ Version: 4.23.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>
@@ -75,6 +75,7 @@ Dynamic: license-file
75
75
  [![Pypi version](https://img.shields.io/pypi/v/pymobiledevice3.svg)](https://pypi.org/project/pymobiledevice3/ "PyPi package")
76
76
  [![Downloads](https://static.pepy.tech/personalized-badge/pymobiledevice3?period=total&units=none&left_color=grey&right_color=blue&left_text=Downloads)](https://pepy.tech/project/pymobiledevice3)
77
77
  [![Discord](https://img.shields.io/discord/1133265168051208214?logo=Discord&label=Discord)](https://discord.gg/52mZGC3JXJ)
78
+ [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/doronz88/pymobiledevice3)
78
79
  <!-- markdownlint-enable MD013 -->
79
80
 
80
81
  - [PyMobileDevice3](#pymobiledevice3)
@@ -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=orvHwmO-r_x_VgHSM3aH7L9XDQWnlhDlDhFDhwlMiOk,513
11
+ pymobiledevice3/_version.py,sha256=QhmG7ULvCrT5Zf9yWxCZoSZMUauW86N9-OZj98Ep0XM,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
@@ -18,7 +18,7 @@ pymobiledevice3/irecv_devices.py,sha256=lTImsqVhFg1UdTdW2jn6bJLh15Nzh-z8E0WJk55D
18
18
  pymobiledevice3/lockdown.py,sha256=Skl3S8pCgEIWfU8XrYWxG0-uKN37-eWHg4tFTnYpGUg,38231
19
19
  pymobiledevice3/lockdown_service_provider.py,sha256=l5N72tiuI-2uowk8wu6B7qkjY2UmqQsnhdJqvJy3I8A,1744
20
20
  pymobiledevice3/pair_records.py,sha256=Tr28mlBWPXvOF7vdKBDOuw1rCRwm6RViDTGbikfP77I,6034
21
- pymobiledevice3/service_connection.py,sha256=V7HQogiE0v8o6eivwco_XCOI5SwxIuCEtJDas3Kj32I,14405
21
+ pymobiledevice3/service_connection.py,sha256=yG_DOphuBvOxOfUOBdpsQwYJUmZh_L5Kiuodk-nGSmk,14449
22
22
  pymobiledevice3/tcp_forwarder.py,sha256=I1arSMXuIcMpeP6POk4CDDT5BlrIFBtQ4NfljO4Fqy0,8765
23
23
  pymobiledevice3/usbmux.py,sha256=CvJ_NgH77wcfF7ZAQuLGHTIYkuWvhXPYZNQNR7-Jf8A,16820
24
24
  pymobiledevice3/utils.py,sha256=ybli_l8JIG2usFiToAsVYe0Ymg3q0bcpKqmYUF_wpi8,2179
@@ -26,7 +26,7 @@ pymobiledevice3/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSu
26
26
  pymobiledevice3/cli/activation.py,sha256=kRKKJv62GsZ-a5qQvhZwYedfWBUCNh3mGcnHbvQI8WM,1113
27
27
  pymobiledevice3/cli/afc.py,sha256=z-qnBVUPA4uOnXADkYVyRJxeibRDFF3j5LejHt_6UW4,2129
28
28
  pymobiledevice3/cli/amfi.py,sha256=6hlqKrKOFj0secUnLQ8grDDnnh3fRsO6x_vo40oy22w,963
29
- pymobiledevice3/cli/apps.py,sha256=V_xSv8BwCyEKI2XtgIMAqvjpS71pn3zwKZuSkq1FFgo,3744
29
+ pymobiledevice3/cli/apps.py,sha256=LH75A1gDRGP0nWO4QFcOUDg0EdphkGuYnWJgIQHrIBg,3859
30
30
  pymobiledevice3/cli/backup.py,sha256=SyHojiRRguxdkAPMz_Rp_9-zJNeuOtmpa0imdPN12-4,6691
31
31
  pymobiledevice3/cli/bonjour.py,sha256=ON1W6hugJBBZ_pilnNP5Lepl-IbOuaz4TLSY3qAu57Y,2944
32
32
  pymobiledevice3/cli/cli_common.py,sha256=dkIF59GJWd2bDPicomvzyQiXOS3Ys4VjXBtr7d4BXno,11572
@@ -110,7 +110,7 @@ pymobiledevice3/services/dtfetchsymbols.py,sha256=bFGnyBccj3a7LzMC3PdVtl5X8z3fCK
110
110
  pymobiledevice3/services/file_relay.py,sha256=g0FlD1dXH94IlBLVoeMl91nvlz6woe6DtaTJY7ztARU,1368
111
111
  pymobiledevice3/services/heartbeat.py,sha256=CBqBfsS2duClG2gWzYxr4TwC0MLNdU6ncX_xCkOCht4,1128
112
112
  pymobiledevice3/services/house_arrest.py,sha256=0I1K54_y6FBg75vxEQ4bqm9wAhpoq43o24nyRfaFt1E,1695
113
- pymobiledevice3/services/installation_proxy.py,sha256=IAoLxOg68oA6oW5uGAwUqpT_iiyYFDANJlcJAXlVkM4,11488
113
+ pymobiledevice3/services/installation_proxy.py,sha256=_k8bIRHEs-V1dt_9rJgNSKMAsx-VC8GXE3V_UEMH780,11585
114
114
  pymobiledevice3/services/lockdown_service.py,sha256=WP2l3qIdU7XtWDQMfNEPwSJZfS7D6S8btcdoRjt_3mQ,1482
115
115
  pymobiledevice3/services/misagent.py,sha256=YGLo2LhzyYWyICxKDhy3Ph7SewYk5I1VN3-LjKv_plo,2088
116
116
  pymobiledevice3/services/mobile_activation.py,sha256=NTxdiA39-XpN77OJAErVkGsxUZf_b1AOSd08URKu0MA,6139
@@ -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.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,,
167
+ pymobiledevice3-4.23.0.dist-info/licenses/LICENSE,sha256=jOtLnuWt7d5Hsx6XXB2QxzrSe2sWWh3NgMfFRetluQM,35147
168
+ pymobiledevice3-4.23.0.dist-info/METADATA,sha256=aN4qS1i82Ftvvm_i7cTHPTL_5ukU5qEG9E3O5F1kCkw,17463
169
+ pymobiledevice3-4.23.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
170
+ pymobiledevice3-4.23.0.dist-info/entry_points.txt,sha256=jJMlOanHlVwUxcY__JwvKeWPrvBJr_wJyEq4oHIZNKE,66
171
+ pymobiledevice3-4.23.0.dist-info/top_level.txt,sha256=MjZoRqcWPOh5banG-BbDOnKEfsS3kCxqV9cv-nzyg2Q,21
172
+ pymobiledevice3-4.23.0.dist-info/RECORD,,