pymobiledevice3
pymobiledevice3 copied to clipboard
error while taken backup on ios > 17.0
Test environment macbook pro intel chip running 14.1.2 (23B92) iphone Xs max running ios 17.2.1 Describe the bug when i try to take a backup i get the following error
"pymobiledevice3.__main__[32694] ERROR Failed to start service. Possible reasons are:
- If you were trying to access a developer service (developer subcommand):
- Make sure the DeveloperDiskImage/PersonalizedImage is mounted via:
> python3 -m pymobiledevice3 mounter auto-mount
- If your device iOS version >= 17.0:
- Make sure you passed the --rsd option to the subcommand
https://github.com/doronz88/pymobiledevice3#working-with-developer-tools-ios--170
- Apple removed this service
- A bug. Please file a bug report:
https://github.com/doronz88/pymobiledevice3/issues/new?assignees=&labels=&projects=&template=bug_report.md&title="
the command i used: pymobiledevice3 backup2 backup /Users/ --rsd fdd8:75c7:c9ed::1 52501
To Reproduce Steps to reproduce the behavior:
- open terminal
- run sudo python3 -m pymobiledevice3 remote start-tunnel
- note down the rsd
- run pymobiledevice3 backup2 backup /Users/ --rsd fdd8:75c7:c9ed::1 52501
- error other functions seem to be working fine i have also thought that i might to do the python3 -m pymobiledevice3 mounter auto-mount so i did and is working fine Expected behavior a backup of the iphone been taken
Logs If applicable, add logs including backtraces for the given error that help explain your problem.
Additional context
For community
⬇️ Please click the 👍 reaction instead of leaving a +1 or 👍 comment
Just released v2.35.0 which should allow backup over RSD
Also, please note that using the backup doesn't require a tunnel and will work much faster without.
Thank you for the response just upgrade to the new version and tried it again, got a new error
Traceback (most recent call last): File "/usr/local/bin/pymobiledevice3", line 8, in <module> sys.exit(main()) ^^^^^^ File "/usr/local/lib/python3.11/site-packages/pymobiledevice3/__main__.py", line 101, in main cli() File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1157, in __call__ return self.main(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1078, in main rv = self.invoke(ctx) ^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1688, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1688, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1434, in invoke return ctx.invoke(self.callback, **ctx.params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/click/core.py", line 783, in invoke return __callback(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pymobiledevice3/cli/cli_common.py", line 134, in wrap_callback_calling callback(service_provider=service_provider, **kwargs) File "/usr/local/lib/python3.11/site-packages/pymobiledevice3/cli/backup.py", line 41, in backup backup_client = Mobilebackup2Service(service_provider) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pymobiledevice3/services/mobilebackup2.py", line 39, in __init__ super().__init__(lockdown, self.RSD_SERVICE_NAME, include_escrow_bag=True) File "/usr/local/lib/python3.11/site-packages/pymobiledevice3/services/lockdown_service.py", line 20, in __init__ service = start_service(service_name, include_escrow_bag=include_escrow_bag) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pymobiledevice3/remote/remote_service_discovery.py", line 74, in start_lockdown_service checkin['EscrowBag'] = base64.b64decode(pairing_record['remote_unlock_host_key']) ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^ KeyError: 'remote_unlock_host_key'
As for using it without a tunnel i am getting another error there
Traceback (most recent call last): File "/usr/local/bin/pymobiledevice3", line 8, in <module> sys.exit(main()) ^^^^^^ File "/usr/local/lib/python3.11/site-packages/pymobiledevice3/__main__.py", line 101, in main cli() File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1157, in __call__ return self.main(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1078, in main rv = self.invoke(ctx) ^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1688, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1688, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1434, in invoke return ctx.invoke(self.callback, **ctx.params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/click/core.py", line 783, in invoke return __callback(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pymobiledevice3/cli/cli_common.py", line 134, in wrap_callback_calling callback(service_provider=service_provider, **kwargs) File "/usr/local/lib/python3.11/site-packages/pymobiledevice3/cli/backup.py", line 47, in backup backup_client.backup(full=full, backup_directory=backup_directory, progress_callback=update_bar) File "/usr/local/lib/python3.11/site-packages/pymobiledevice3/services/mobilebackup2.py", line 91, in backup dl.dl_loop(progress_callback) File "/usr/local/lib/python3.11/site-packages/pymobiledevice3/services/device_link.py", line 61, in dl_loop raise PyMobileDevice3Exception(f'Device link error: {message[1]}') pymobiledevice3.exceptions.PyMobileDevice3Exception: Device link error: {'ErrorCode': 205, 'ErrorDescription': 'Error reading backup properties (MBErrorDomain/205). Underlying error: Error deserializing properties: Cannot parse a NULL or zero-length data (MBErrorDomain/11).', 'MessageName': 'Response'}
For the first problem, you'll have to first remove your old pair record:
# delete it
pymobiledevice3 remote delete-pair
As for the second, the backup process works in DIFF. meaning, you'll have to create a full backup first for it to work.
pymobiledevice3 backup2 backup --full /path/to/backup/directory