pymobiledevice3 4.26.6__tar.gz → 4.27.0__tar.gz
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-4.26.6 → pymobiledevice3-4.27.0}/PKG-INFO +1 -1
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/__main__.py +4 -1
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/_version.py +3 -3
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/cli/developer.py +174 -5
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3.egg-info/PKG-INFO +1 -1
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/.gitattributes +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/.github/FUNDING.yml +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/.github/pull_request_template.md +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/.github/workflows/codeql.yml +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/.github/workflows/generate-executable.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/.github/workflows/markdown-lint.yml +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/.github/workflows/python-app.yml +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/.github/workflows/python-publish.yml +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/.gitignore +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/.pre-commit-config.yaml +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/CODE_OF_CONDUCT.md +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/CONTRIBUTING.md +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/LICENSE +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/README.md +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/example.gif +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/markdownlint-config.json +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/misc/DTServices-14.2.txt +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/misc/DTServices-14.5.txt +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/misc/RemoteXPC.md +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/misc/plist_sniffer.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/misc/pyinstaller.md +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/misc/remotexpc_sniffer.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/misc/understanding_idevice_protocol_layers.md +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/misc/usbmux_sniff.sh +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/__init__.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/bonjour.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/ca.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/cli/__init__.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/cli/activation.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/cli/afc.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/cli/amfi.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/cli/apps.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/cli/backup.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/cli/bonjour.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/cli/cli_common.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/cli/companion_proxy.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/cli/completions.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/cli/crash.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/cli/diagnostics.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/cli/lockdown.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/cli/mounter.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/cli/notification.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/cli/pcap.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/cli/power_assertion.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/cli/processes.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/cli/profile.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/cli/provision.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/cli/remote.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/cli/restore.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/cli/springboard.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/cli/syslog.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/cli/usbmux.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/cli/version.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/cli/webinspector.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/common.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/exceptions.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/irecv.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/irecv_devices.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/lockdown.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/lockdown_service_provider.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/osu/__init__.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/osu/os_utils.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/osu/posix_util.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/osu/win_util.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/pair_records.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/remote/__init__.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/remote/common.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/remote/core_device/__init__.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/remote/core_device/app_service.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/remote/core_device/core_device_service.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/remote/core_device/device_info.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/remote/core_device/diagnostics_service.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/remote/core_device/file_service.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/remote/module_imports.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/remote/remote_service.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/remote/remote_service_discovery.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/remote/remotexpc.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/remote/tunnel_service.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/remote/utils.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/remote/xpc_message.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/resources/__init__.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/resources/dsc_uuid_map.json +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/resources/dsc_uuid_map.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/resources/firmware_notifications.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/resources/notifications.txt +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/resources/webinspector/element_attribute.js +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/resources/webinspector/element_clear.js +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/resources/webinspector/enter_fullscreen.js +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/resources/webinspector/find_nodes.js +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/resources/webinspector/focus.js +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/resources/webinspector/get_attribute.js +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/resources/webinspector/is_displayed.js +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/resources/webinspector/is_editable.js +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/resources/webinspector/is_enabled.js +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/restore/__init__.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/restore/asr.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/restore/base_restore.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/restore/consts.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/restore/device.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/restore/fdr.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/restore/ftab.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/restore/img4.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/restore/recovery.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/restore/restore.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/restore/restore_options.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/restore/restored_client.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/restore/tss.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/service_connection.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/__init__.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/accessibilityaudit.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/afc.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/amfi.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/companion.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/crash_reports.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/debugserver_applist.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/device_arbitration.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/device_link.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/diagnostics.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/dtfetchsymbols.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/dvt/__init__.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/dvt/dvt_secure_socket_proxy.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/dvt/dvt_testmanaged_proxy.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/dvt/instruments/__init__.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/dvt/instruments/activity_trace_tap.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/dvt/instruments/application_listing.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/dvt/instruments/condition_inducer.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/dvt/instruments/core_profile_session_tap.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/dvt/instruments/device_info.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/dvt/instruments/energy_monitor.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/dvt/instruments/graphics.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/dvt/instruments/location_simulation.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/dvt/instruments/location_simulation_base.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/dvt/instruments/network_monitor.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/dvt/instruments/notifications.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/dvt/instruments/process_control.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/dvt/instruments/screenshot.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/dvt/instruments/sysmontap.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/dvt/testmanaged/xcuitest.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/file_relay.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/heartbeat.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/house_arrest.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/installation_proxy.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/lockdown_service.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/misagent.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/mobile_activation.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/mobile_config.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/mobile_image_mounter.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/mobilebackup2.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/notification_proxy.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/os_trace.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/pcapd.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/power_assertion.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/preboard.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/remote_fetch_symbols.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/remote_server.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/restore_service.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/screenshot.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/simulate_location.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/springboard.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/syslog.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/web_protocol/__init__.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/web_protocol/alert.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/web_protocol/automation_session.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/web_protocol/cdp_screencast.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/web_protocol/cdp_server.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/web_protocol/cdp_target.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/web_protocol/driver.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/web_protocol/element.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/web_protocol/inspector_session.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/web_protocol/selenium_api.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/web_protocol/session_protocol.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/web_protocol/switch_to.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/webinspector.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/tcp_forwarder.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/tunneld/__init__.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/tunneld/api.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/tunneld/server.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/usbmux.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/utils.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3.egg-info/SOURCES.txt +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3.egg-info/dependency_links.txt +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3.egg-info/entry_points.txt +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3.egg-info/requires.txt +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3.egg-info/top_level.txt +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pyproject.toml +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pytest.ini +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/requirements.txt +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/setup.cfg +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/tests/__init__.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/tests/cli/__init__.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/tests/cli/test_cli.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/tests/conftest.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/tests/services/__init__.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/tests/services/instruments/__init__.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/tests/services/instruments/test_core_profile_session.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/tests/services/instruments/test_dvt_secure_socket_proxy.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/tests/services/instruments/test_fetch_symbols.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/tests/services/instruments/test_location.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/tests/services/instruments/test_screenshot.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/tests/services/test_accessibility.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/tests/services/test_afc.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/tests/services/test_apps.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/tests/services/test_backup2.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/tests/services/test_bonjour.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/tests/services/test_crash_reports.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/tests/services/test_list_devices.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/tests/services/test_lockdown.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/tests/services/test_pcapd.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/tests/services/test_springboard_services_relay.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/tests/services/test_start_tunnel.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/tests/services/test_syslog_relay.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/tests/services/test_tcp_forwarder.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/tests/services/test_web_protocol/__init__.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/tests/services/test_web_protocol/common.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/tests/services/test_web_protocol/conftest.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/tests/services/test_web_protocol/test_driver.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/tests/services/test_web_protocol/test_element.py +0 -0
- {pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/tests/services/test_webinspector.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pymobiledevice3
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.27.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>
|
|
@@ -6,6 +6,7 @@ import re
|
|
|
6
6
|
import sys
|
|
7
7
|
import textwrap
|
|
8
8
|
import traceback
|
|
9
|
+
import warnings
|
|
9
10
|
from typing import Union
|
|
10
11
|
|
|
11
12
|
import click
|
|
@@ -38,7 +39,9 @@ logger = logging.getLogger(__name__)
|
|
|
38
39
|
|
|
39
40
|
# For issue https://github.com/doronz88/pymobiledevice3/issues/1217, details: https://bugs.python.org/issue37373
|
|
40
41
|
if sys.platform == 'win32':
|
|
41
|
-
|
|
42
|
+
with warnings.catch_warnings():
|
|
43
|
+
warnings.simplefilter('ignore', category=DeprecationWarning)
|
|
44
|
+
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
|
|
42
45
|
|
|
43
46
|
INVALID_SERVICE_MESSAGE = """Failed to start service. Possible reasons are:
|
|
44
47
|
- If you were trying to access a developer service (developer subcommand):
|
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '4.
|
|
32
|
-
__version_tuple__ = version_tuple = (4,
|
|
31
|
+
__version__ = version = '4.27.0'
|
|
32
|
+
__version_tuple__ = version_tuple = (4, 27, 0)
|
|
33
33
|
|
|
34
|
-
__commit_id__ = commit_id = '
|
|
34
|
+
__commit_id__ = commit_id = 'gf0804b1ec'
|
|
@@ -3,9 +3,12 @@ import asyncio
|
|
|
3
3
|
import json
|
|
4
4
|
import logging
|
|
5
5
|
import os
|
|
6
|
+
import plistlib
|
|
6
7
|
import posixpath
|
|
7
8
|
import shlex
|
|
8
9
|
import signal
|
|
10
|
+
import struct
|
|
11
|
+
import subprocess
|
|
9
12
|
import sys
|
|
10
13
|
import time
|
|
11
14
|
from collections import namedtuple
|
|
@@ -17,13 +20,14 @@ from typing import IO, Optional
|
|
|
17
20
|
import click
|
|
18
21
|
from click.exceptions import MissingParameter, UsageError
|
|
19
22
|
from packaging.version import Version
|
|
23
|
+
from plumbum import local
|
|
20
24
|
from pykdebugparser.pykdebugparser import PyKdebugParser
|
|
21
25
|
|
|
22
26
|
import pymobiledevice3
|
|
23
27
|
from pymobiledevice3.cli.cli_common import BASED_INT, Command, RSDCommand, default_json_encoder, print_json, \
|
|
24
28
|
user_requested_colored_output
|
|
25
|
-
from pymobiledevice3.exceptions import
|
|
26
|
-
|
|
29
|
+
from pymobiledevice3.exceptions import DeviceAlreadyInUseError, DvtDirListError, ExtractingStackshotError, \
|
|
30
|
+
RSDRequiredError, UnrecognizedSelectorError
|
|
27
31
|
from pymobiledevice3.lockdown import LockdownClient, create_using_usbmux
|
|
28
32
|
from pymobiledevice3.lockdown_service_provider import LockdownServiceProvider
|
|
29
33
|
from pymobiledevice3.osu.os_utils import get_os_utils
|
|
@@ -52,6 +56,7 @@ from pymobiledevice3.services.dvt.instruments.process_control import ProcessCont
|
|
|
52
56
|
from pymobiledevice3.services.dvt.instruments.screenshot import Screenshot
|
|
53
57
|
from pymobiledevice3.services.dvt.instruments.sysmontap import Sysmontap
|
|
54
58
|
from pymobiledevice3.services.dvt.testmanaged.xcuitest import XCUITestService
|
|
59
|
+
from pymobiledevice3.services.installation_proxy import InstallationProxyService
|
|
55
60
|
from pymobiledevice3.services.remote_fetch_symbols import RemoteFetchSymbolsService
|
|
56
61
|
from pymobiledevice3.services.remote_server import RemoteServer
|
|
57
62
|
from pymobiledevice3.services.screenshot import ScreenshotService
|
|
@@ -126,6 +131,7 @@ def proclist(service_provider: LockdownClient) -> None:
|
|
|
126
131
|
|
|
127
132
|
print_json(processes)
|
|
128
133
|
|
|
134
|
+
|
|
129
135
|
@dvt.command('is-running-pid', cls=Command)
|
|
130
136
|
@click.argument('pid', type=click.INT)
|
|
131
137
|
def is_running_pid(service_provider: LockdownClient, pid: int) -> None:
|
|
@@ -133,6 +139,7 @@ def is_running_pid(service_provider: LockdownClient, pid: int) -> None:
|
|
|
133
139
|
with DvtSecureSocketProxyService(lockdown=service_provider) as dvt:
|
|
134
140
|
print_json(DeviceInfo(dvt).is_running_pid(pid))
|
|
135
141
|
|
|
142
|
+
|
|
136
143
|
@dvt.command('memlimitoff', cls=Command)
|
|
137
144
|
@click.argument('pid', type=click.INT)
|
|
138
145
|
def memlimitoff(service_provider: LockdownServiceProvider, pid: int) -> None:
|
|
@@ -140,6 +147,7 @@ def memlimitoff(service_provider: LockdownServiceProvider, pid: int) -> None:
|
|
|
140
147
|
with DvtSecureSocketProxyService(lockdown=service_provider) as dvt:
|
|
141
148
|
ProcessControl(dvt).disable_memory_limit_for_pid(pid)
|
|
142
149
|
|
|
150
|
+
|
|
143
151
|
@dvt.command('applist', cls=Command)
|
|
144
152
|
def applist(service_provider: LockdownServiceProvider) -> None:
|
|
145
153
|
""" Show application list """
|
|
@@ -412,7 +420,7 @@ def sysmon_system(service_provider: LockdownClient, fields):
|
|
|
412
420
|
'EnabledCPUs': row['EnabledCPUs'],
|
|
413
421
|
}
|
|
414
422
|
}
|
|
415
|
-
else:
|
|
423
|
+
else: # Ignore the first occurrence because first occurrence always gives a incorrect value - 100 or 0
|
|
416
424
|
system_usage_seen = True
|
|
417
425
|
|
|
418
426
|
if system and system_usage:
|
|
@@ -990,6 +998,165 @@ def debugserver_start_server(service_provider: LockdownClient, local_port: Optio
|
|
|
990
998
|
print("local_port is required for iOS < 17.0")
|
|
991
999
|
|
|
992
1000
|
|
|
1001
|
+
@debugserver.command('lldb', cls=RSDCommand)
|
|
1002
|
+
@click.argument('xcodeproj_path', type=click.Path(exists=True, file_okay=False, dir_okay=True))
|
|
1003
|
+
@click.option('--configuration', default='Debug', help='Usually Release/Debug')
|
|
1004
|
+
@click.option('--lldb-command', default='lldb')
|
|
1005
|
+
@click.option('--launch', is_flag=True, default=False, help='Launch the app after connecting to lldb')
|
|
1006
|
+
@click.option('breakpoints', '-b', '--break', multiple=True, help='Add multiple startup breakpoints')
|
|
1007
|
+
@click.option('user_commands', '--command', '-c', multiple=True, help='Additional commands to run at startup')
|
|
1008
|
+
def debugserver_lldb(
|
|
1009
|
+
service_provider: LockdownServiceProvider,
|
|
1010
|
+
xcodeproj_path: str,
|
|
1011
|
+
configuration: str,
|
|
1012
|
+
lldb_command: str,
|
|
1013
|
+
launch: bool,
|
|
1014
|
+
breakpoints: tuple[str],
|
|
1015
|
+
user_commands: tuple[str],
|
|
1016
|
+
) -> None:
|
|
1017
|
+
"""
|
|
1018
|
+
Automate lldb launch for a given xcodeproj.
|
|
1019
|
+
|
|
1020
|
+
\b
|
|
1021
|
+
This will:
|
|
1022
|
+
- Build the given xcodeproj
|
|
1023
|
+
- Install it
|
|
1024
|
+
- Start a debugserver attached to it
|
|
1025
|
+
- Place breakpoints if given any
|
|
1026
|
+
- Launch the application if requested
|
|
1027
|
+
- Execute any additional commands if requested
|
|
1028
|
+
- Switch to lldb shell
|
|
1029
|
+
"""
|
|
1030
|
+
if Version(service_provider.product_version) < Version('17.0'):
|
|
1031
|
+
logger.error('lldb is only supported on iOS >= 17.0')
|
|
1032
|
+
return
|
|
1033
|
+
|
|
1034
|
+
commands = []
|
|
1035
|
+
xcodeproj_path = Path(xcodeproj_path)
|
|
1036
|
+
with local.cwd(xcodeproj_path.parent):
|
|
1037
|
+
logger.info(f'Building {xcodeproj_path} for {configuration} configuration')
|
|
1038
|
+
local['xcodebuild']['-configuration', configuration, 'build']()
|
|
1039
|
+
local_app = list(Path(f'build/{configuration}-iphoneos').glob('*.app'))[0]
|
|
1040
|
+
logger.info(f'Using app: {local_app}')
|
|
1041
|
+
|
|
1042
|
+
info_plist_path = local_app / 'Info.plist'
|
|
1043
|
+
info_plist = plistlib.loads(info_plist_path.read_bytes())
|
|
1044
|
+
bundle_identifier = info_plist['CFBundleIdentifier']
|
|
1045
|
+
logger.info(f'Bundle identifier: {bundle_identifier}')
|
|
1046
|
+
|
|
1047
|
+
commands.append('platform select remote-ios')
|
|
1048
|
+
commands.append(f'target create "{local_app.absolute()}"')
|
|
1049
|
+
|
|
1050
|
+
with InstallationProxyService(create_using_usbmux()) as installation_proxy:
|
|
1051
|
+
logger.info('Installing app')
|
|
1052
|
+
installation_proxy.install_from_local(local_app)
|
|
1053
|
+
remote_path = installation_proxy.get_apps(bundle_identifiers=[bundle_identifier])[bundle_identifier]['Path']
|
|
1054
|
+
logger.info(f'Remote path: {remote_path}')
|
|
1055
|
+
|
|
1056
|
+
commands.append(f'script lldb.target.module[0].SetPlatformFileSpec(lldb.SBFileSpec("{remote_path}"))')
|
|
1057
|
+
|
|
1058
|
+
debugserver_port = service_provider.get_service_port('com.apple.internal.dt.remote.debugproxy')
|
|
1059
|
+
|
|
1060
|
+
# Add connection and launch commands
|
|
1061
|
+
commands.append(f'process connect connect://[{service_provider.service.address[0]}]:{debugserver_port}')
|
|
1062
|
+
|
|
1063
|
+
for breakpoint in breakpoints:
|
|
1064
|
+
commands.append(f'breakpoint set -n "{breakpoint}"')
|
|
1065
|
+
|
|
1066
|
+
if launch:
|
|
1067
|
+
commands.append('process launch')
|
|
1068
|
+
|
|
1069
|
+
# Add user commands
|
|
1070
|
+
commands += user_commands
|
|
1071
|
+
|
|
1072
|
+
logger.info(f'Starting lldb with automated setup and connection')
|
|
1073
|
+
|
|
1074
|
+
# Works only on unix-based systems, so keep these imports here
|
|
1075
|
+
import fcntl
|
|
1076
|
+
import pty
|
|
1077
|
+
import select as select_module
|
|
1078
|
+
import termios
|
|
1079
|
+
import tty
|
|
1080
|
+
|
|
1081
|
+
master, slave = pty.openpty()
|
|
1082
|
+
|
|
1083
|
+
process = None # Initialize process variable for signal handler
|
|
1084
|
+
|
|
1085
|
+
# Copy terminal size from the current terminal to PTY
|
|
1086
|
+
def resize_pty() -> None:
|
|
1087
|
+
"""Update PTY size to match current terminal size"""
|
|
1088
|
+
size = struct.unpack('HHHH',
|
|
1089
|
+
fcntl.ioctl(sys.stdout.fileno(), termios.TIOCGWINSZ, struct.pack('HHHH', 0, 0, 0, 0)))
|
|
1090
|
+
fcntl.ioctl(master, termios.TIOCSWINSZ, struct.pack('HHHH', *size))
|
|
1091
|
+
# Send SIGWINCH to the child process to notify it of the resize
|
|
1092
|
+
if process is not None and process.poll() is None:
|
|
1093
|
+
process.send_signal(signal.SIGWINCH)
|
|
1094
|
+
|
|
1095
|
+
# Initial resize
|
|
1096
|
+
resize_pty()
|
|
1097
|
+
|
|
1098
|
+
# Set up signal handler for window resize
|
|
1099
|
+
def handle_sigwinch(signum, frame):
|
|
1100
|
+
resize_pty()
|
|
1101
|
+
|
|
1102
|
+
old_sigwinch_handler = signal.signal(signal.SIGWINCH, handle_sigwinch)
|
|
1103
|
+
|
|
1104
|
+
# Save original terminal settings
|
|
1105
|
+
old_tty = termios.tcgetattr(sys.stdin)
|
|
1106
|
+
|
|
1107
|
+
try:
|
|
1108
|
+
# Set TERM environment variable to enable colors
|
|
1109
|
+
env = os.environ.copy()
|
|
1110
|
+
env['TERM'] = os.environ.get('TERM', 'xterm-256color')
|
|
1111
|
+
|
|
1112
|
+
process = subprocess.Popen(
|
|
1113
|
+
[lldb_command],
|
|
1114
|
+
stdin=slave,
|
|
1115
|
+
stdout=slave,
|
|
1116
|
+
stderr=slave,
|
|
1117
|
+
env=env
|
|
1118
|
+
)
|
|
1119
|
+
os.close(slave)
|
|
1120
|
+
|
|
1121
|
+
# Put terminal in raw mode for proper interaction
|
|
1122
|
+
tty.setraw(sys.stdin.fileno())
|
|
1123
|
+
# Send all commands through stdin
|
|
1124
|
+
for command in commands:
|
|
1125
|
+
os.write(master, (command + '\n').encode())
|
|
1126
|
+
|
|
1127
|
+
# Now redirect stdin from the terminal to lldb so user can interact
|
|
1128
|
+
while True:
|
|
1129
|
+
rlist, _, _ = select_module.select([sys.stdin, master], [], [])
|
|
1130
|
+
|
|
1131
|
+
if sys.stdin in rlist:
|
|
1132
|
+
# User typed something
|
|
1133
|
+
data = os.read(sys.stdin.fileno(), 1024)
|
|
1134
|
+
if not data:
|
|
1135
|
+
break
|
|
1136
|
+
os.write(master, data)
|
|
1137
|
+
|
|
1138
|
+
if master in rlist:
|
|
1139
|
+
# lldb has output
|
|
1140
|
+
try:
|
|
1141
|
+
data = os.read(master, 1024)
|
|
1142
|
+
if not data:
|
|
1143
|
+
break
|
|
1144
|
+
os.write(sys.stdout.fileno(), data)
|
|
1145
|
+
except OSError:
|
|
1146
|
+
break
|
|
1147
|
+
except (KeyboardInterrupt, OSError):
|
|
1148
|
+
pass
|
|
1149
|
+
finally:
|
|
1150
|
+
# Restore terminal settings
|
|
1151
|
+
termios.tcsetattr(sys.stdin, termios.TCSADRAIN, old_tty)
|
|
1152
|
+
# Restore original SIGWINCH handler
|
|
1153
|
+
signal.signal(signal.SIGWINCH, old_sigwinch_handler)
|
|
1154
|
+
os.close(master)
|
|
1155
|
+
if process is not None:
|
|
1156
|
+
process.terminate()
|
|
1157
|
+
process.wait()
|
|
1158
|
+
|
|
1159
|
+
|
|
993
1160
|
@developer.group('arbitration')
|
|
994
1161
|
def arbitration():
|
|
995
1162
|
""" Mark/Unmark device as "in-use" """
|
|
@@ -1101,7 +1268,8 @@ def core_device_list_directory(
|
|
|
1101
1268
|
|
|
1102
1269
|
|
|
1103
1270
|
async def core_device_read_file_task(
|
|
1104
|
-
service_provider: RemoteServiceDiscoveryService, domain: str, path: str, identifier: str,
|
|
1271
|
+
service_provider: RemoteServiceDiscoveryService, domain: str, path: str, identifier: str,
|
|
1272
|
+
output: Optional[IO]) -> None:
|
|
1105
1273
|
async with FileServiceService(service_provider, APPLE_DOMAIN_DICT[domain], identifier) as file_service:
|
|
1106
1274
|
buf = await file_service.retrieve_file(path)
|
|
1107
1275
|
if output is not None:
|
|
@@ -1116,7 +1284,8 @@ async def core_device_read_file_task(
|
|
|
1116
1284
|
@click.option('--identifier', default='')
|
|
1117
1285
|
@click.option('-o', '--output', type=click.File('wb'))
|
|
1118
1286
|
def core_device_read_file(
|
|
1119
|
-
service_provider: RemoteServiceDiscoveryService, domain: str, path: str, identifier: str,
|
|
1287
|
+
service_provider: RemoteServiceDiscoveryService, domain: str, path: str, identifier: str,
|
|
1288
|
+
output: Optional[IO]) -> None:
|
|
1120
1289
|
""" Read file from given domain-path """
|
|
1121
1290
|
asyncio.run(core_device_read_file_task(service_provider, domain, path, identifier, output))
|
|
1122
1291
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pymobiledevice3
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.27.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>
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/misc/understanding_idevice_protocol_layers.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/lockdown_service_provider.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/remote/core_device/__init__.py
RENAMED
|
File without changes
|
{pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/remote/core_device/app_service.py
RENAMED
|
File without changes
|
|
File without changes
|
{pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/remote/core_device/device_info.py
RENAMED
|
File without changes
|
|
File without changes
|
{pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/remote/core_device/file_service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/remote/remote_service_discovery.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/resources/dsc_uuid_map.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/resources/notifications.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/resources/webinspector/focus.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/restore/restore_options.py
RENAMED
|
File without changes
|
{pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/restore/restored_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/accessibilityaudit.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/debugserver_applist.py
RENAMED
|
File without changes
|
{pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/device_arbitration.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pymobiledevice3-4.26.6 → pymobiledevice3-4.27.0}/pymobiledevice3/services/dtfetchsymbols.py
RENAMED
|
File without changes
|