{"id":13496476,"url":"https://github.com/doronz88/pymobiledevice3","last_synced_at":"2026-05-17T08:04:15.333Z","repository":{"id":37402235,"uuid":"357904774","full_name":"doronz88/pymobiledevice3","owner":"doronz88","description":"Pure python3 implementation for working with iDevices (iPhone, etc...).","archived":false,"fork":false,"pushed_at":"2026-03-29T16:45:42.000Z","size":88847,"stargazers_count":2218,"open_issues_count":92,"forks_count":329,"subscribers_count":35,"default_branch":"master","last_synced_at":"2026-03-29T18:59:24.821Z","etag":null,"topics":["afc","instruments","ios","libimobiledevice","lockdown-services","lockdownd","protocol","python","python3","usbmux"],"latest_commit_sha":null,"homepage":"https://discord.gg/52mZGC3JXJ","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/doronz88.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null},"funding":{"github":"doronz88","patreon":null,"open_collective":null,"ko_fi":"doronz","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":null,"thanks_dev":null,"custom":null}},"created_at":"2021-04-14T12:53:51.000Z","updated_at":"2026-03-29T16:45:46.000Z","dependencies_parsed_at":"2024-01-14T21:39:21.411Z","dependency_job_id":"546da431-6f7c-44fc-a4d5-db0871164c2a","html_url":"https://github.com/doronz88/pymobiledevice3","commit_stats":{"total_commits":955,"total_committers":25,"mean_commits":38.2,"dds":0.3675392670157068,"last_synced_commit":"12176cd52049e2eddf5dcda6c7b2f032c51ae273"},"previous_names":[],"tags_count":589,"template":false,"template_full_name":null,"purl":"pkg:github/doronz88/pymobiledevice3","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doronz88%2Fpymobiledevice3","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doronz88%2Fpymobiledevice3/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doronz88%2Fpymobiledevice3/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doronz88%2Fpymobiledevice3/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/doronz88","download_url":"https://codeload.github.com/doronz88/pymobiledevice3/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doronz88%2Fpymobiledevice3/sbom","scorecard":{"id":352775,"data":{"date":"2025-08-11","repo":{"name":"github.com/doronz88/pymobiledevice3","commit":"ae65a4388d635f5b1a03220eb77852eea0315e5d"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.2,"checks":[{"name":"Maintained","score":10,"reason":"30 commit(s) and 10 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":2,"reason":"Found 4/14 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'actions' permission set to 'read': .github/workflows/codeql.yml:35","Info: jobLevel 'contents' permission set to 'read': .github/workflows/codeql.yml:36","Warn: no topLevel permission defined: .github/workflows/codeql.yml:1","Warn: no topLevel permission defined: .github/workflows/markdown-lint.yml:1","Warn: no topLevel permission defined: .github/workflows/python-app.yml:1","Warn: no topLevel permission defined: .github/workflows/python-publish.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: GNU General Public License v3.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:48: update your workflow using https://app.stepsecurity.io/secureworkflow/doronz88/pymobiledevice3/codeql.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/doronz88/pymobiledevice3/codeql.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:66: update your workflow using https://app.stepsecurity.io/secureworkflow/doronz88/pymobiledevice3/codeql.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/doronz88/pymobiledevice3/codeql.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/markdown-lint.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/doronz88/pymobiledevice3/markdown-lint.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/markdown-lint.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/doronz88/pymobiledevice3/markdown-lint.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-app.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/doronz88/pymobiledevice3/python-app.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-app.yml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/doronz88/pymobiledevice3/python-app.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-publish.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/doronz88/pymobiledevice3/python-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-publish.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/doronz88/pymobiledevice3/python-publish.yml/master?enable=pin","Warn: npmCommand not pinned by hash: .github/workflows/markdown-lint.yml:25","Warn: pipCommand not pinned by hash: .github/workflows/python-app.yml:36","Warn: pipCommand not pinned by hash: .github/workflows/python-app.yml:37","Warn: pipCommand not pinned by hash: .github/workflows/python-app.yml:43","Warn: pipCommand not pinned by hash: .github/workflows/python-publish.yml:21","Warn: pipCommand not pinned by hash: .github/workflows/python-publish.yml:22","Info:   0 out of  10 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 npmCommand dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":9,"reason":"SAST tool detected but not run on all commits","details":["Info: SAST configuration detected: CodeQL","Warn: 28 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"79 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-3ww4-gg4f-jr7f","Warn: Project is vulnerable to: PYSEC-2024-225 / GHSA-6vqw-3v5j-54x4","Warn: Project is vulnerable to: GHSA-9v9h-cgj8-h64p","Warn: Project is vulnerable to: PYSEC-2023-112 / GHSA-cf7p-gm2m-833m","Warn: Project is vulnerable to: GHSA-h4gh-qq45-vh27","Warn: Project is vulnerable to: PYSEC-2023-254 / GHSA-jfhm-5ghh-2f97","Warn: Project is vulnerable to: GHSA-jm77-qphf-c4w8","Warn: Project is vulnerable to: GHSA-v8gr-m533-ghj9","Warn: Project is vulnerable to: PYSEC-2024-38","Warn: Project is vulnerable to: GHSA-29gw-9793-fvw7","Warn: Project is vulnerable to: PYSEC-2015-24 / GHSA-4vwq-x64q-j4cj","Warn: Project is vulnerable to: PYSEC-2017-46 / GHSA-66gw-5xpf-gfp5","Warn: Project is vulnerable to: PYSEC-2015-25 / GHSA-92mr-v722-f48m","Warn: Project is vulnerable to: PYSEC-2022-12 / GHSA-pq7m-3gw7-gq5x","Warn: Project is vulnerable to: PYSEC-2017-47","Warn: Project is vulnerable to: GHSA-3c5c-7235-994j","Warn: Project is vulnerable to: GHSA-3f63-hfp8-52jq","Warn: Project is vulnerable to: PYSEC-2021-41 / GHSA-3wvg-mj6g-m9cv","Warn: Project is vulnerable to: PYSEC-2020-77 / GHSA-3xv8-3j54-hgrp","Warn: Project is vulnerable to: PYSEC-2020-80 / GHSA-43fq-w8qq-v88h","Warn: Project is vulnerable to: GHSA-44wm-f244-xhp3","Warn: Project is vulnerable to: GHSA-4fx9-vc88-q2xc","Warn: Project is vulnerable to: PYSEC-2021-35 / GHSA-57h3-9rgr-c24m","Warn: Project is vulnerable to: PYSEC-2020-172 / GHSA-5gm3-px64-rw72","Warn: Project is vulnerable to: PYSEC-2021-331 / GHSA-7534-mm45-c74v","Warn: Project is vulnerable to: PYSEC-2021-92 / GHSA-7r7m-5h27-29hp","Warn: Project is vulnerable to: PYSEC-2020-78 / GHSA-8843-m7mw-mxqm","Warn: Project is vulnerable to: PYSEC-2023-227 / GHSA-8ghj-p4vj-mr35","Warn: Project is vulnerable to: PYSEC-2014-87 / GHSA-8m9x-pxwq-j236","Warn: Project is vulnerable to: PYSEC-2022-10 / GHSA-8vj2-vxx3-667w","Warn: Project is vulnerable to: PYSEC-2021-36 / GHSA-8xjq-8fcg-g5hw","Warn: Project is vulnerable to: PYSEC-2016-6 / GHSA-8xjv-v9xq-m5h9","Warn: Project is vulnerable to: PYSEC-2021-42 / GHSA-95q3-8gr9-gm8w","Warn: Project is vulnerable to: PYSEC-2022-168 / GHSA-9j59-75qj-795w","Warn: Project is vulnerable to: PYSEC-2014-10 / GHSA-cfmr-38g9-f2h7","Warn: Project is vulnerable to: PYSEC-2020-76 / GHSA-cqhg-xjhh-p8hf","Warn: Project is vulnerable to: PYSEC-2021-40 / GHSA-f4w8-cv6p-x6r5","Warn: Project is vulnerable to: PYSEC-2021-69 / GHSA-f5g8-5qq7-938w","Warn: Project is vulnerable to: PYSEC-2021-139 / GHSA-g6rj-rv7j-xwp4","Warn: Project is vulnerable to: PYSEC-2015-16 / GHSA-h5rf-vgqx-wjv2","Warn: Project is vulnerable to: PYSEC-2016-5 / GHSA-hggx-3h72-49ww","Warn: Project is vulnerable to: PYSEC-2020-84 / GHSA-hj69-c76v-86wr","Warn: Project is vulnerable to: PYSEC-2016-7 / GHSA-hvr8-466p-75rh","Warn: Project is vulnerable to: PYSEC-2015-15 / GHSA-j6f7-g425-4gmx","Warn: Project is vulnerable to: GHSA-j7hp-h8jx-5ppr","Warn: Project is vulnerable to: PYSEC-2019-110 / GHSA-j7mj-748x-7p78","Warn: Project is vulnerable to: GHSA-jgpv-4h4c-xhw3","Warn: Project is vulnerable to: PYSEC-2022-42979 / GHSA-m2vv-5vj5-2hm7","Warn: Project is vulnerable to: PYSEC-2021-37 / GHSA-mvg9-xffr-p774","Warn: Project is vulnerable to: PYSEC-2020-83 / GHSA-p49h-hjvm-jg3h","Warn: Project is vulnerable to: PYSEC-2022-8 / GHSA-pw3c-h7wp-cvhx","Warn: Project is vulnerable to: PYSEC-2021-93 / GHSA-q5hq-fp76-qmrc","Warn: Project is vulnerable to: PYSEC-2020-82 / GHSA-r7rm-8j6h-r933","Warn: Project is vulnerable to: PYSEC-2014-23 / GHSA-r854-96gq-rfg3","Warn: Project is vulnerable to: PYSEC-2016-8 / GHSA-rwr3-c2q8-gm56","Warn: Project is vulnerable to: PYSEC-2020-81 / GHSA-vcqg-3p29-xw73","Warn: Project is vulnerable to: PYSEC-2020-79 / GHSA-vj42-xq3r-hr3r","Warn: Project is vulnerable to: PYSEC-2021-70 / GHSA-vqcj-wrf2-7v73","Warn: Project is vulnerable to: PYSEC-2016-9 / GHSA-w4vg-rf63-f3j3","Warn: Project is vulnerable to: PYSEC-2014-22 / GHSA-x895-2wrm-hvp7","Warn: Project is vulnerable to: PYSEC-2022-9 / GHSA-xrcv-f9gm-v42c","Warn: Project is vulnerable to: PYSEC-2021-137","Warn: Project is vulnerable to: PYSEC-2021-138","Warn: Project is vulnerable to: PYSEC-2021-317","Warn: Project is vulnerable to: PYSEC-2021-38","Warn: Project is vulnerable to: PYSEC-2021-39","Warn: Project is vulnerable to: PYSEC-2021-94","Warn: Project is vulnerable to: PYSEC-2023-175","Warn: Project is vulnerable to: PYSEC-2019-41 / GHSA-qfc5-mcwq-26q8","Warn: Project is vulnerable to: PYSEC-2023-117 / GHSA-mrwq-x4v8-fh7p","Warn: Project is vulnerable to: PYSEC-2014-14 / GHSA-652x-xj99-gmcc","Warn: Project is vulnerable to: GHSA-9hjg-9r4m-mvj7","Warn: Project is vulnerable to: GHSA-9wx4-h78v-vm56","Warn: Project is vulnerable to: PYSEC-2014-13 / GHSA-cfj3-7x9c-4p3h","Warn: Project is vulnerable to: PYSEC-2018-28 / GHSA-x84v-xcm2-53pg","Warn: Project is vulnerable to: GHSA-2c2j-9gv5-cj73","Warn: Project is vulnerable to: PYSEC-2023-48 / GHSA-74m5-2c7w-9w3x","Warn: Project is vulnerable to: GHSA-f96h-pmfr-66vw","Warn: Project is vulnerable to: PYSEC-2017-74"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-18T08:44:42.962Z","repository_id":37402235,"created_at":"2025-08-18T08:44:42.962Z","updated_at":"2025-08-18T08:44:42.962Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31290982,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["afc","instruments","ios","libimobiledevice","lockdown-services","lockdownd","protocol","python","python3","usbmux"],"created_at":"2024-07-31T19:01:48.550Z","updated_at":"2026-04-01T18:57:01.959Z","avatar_url":"https://github.com/doronz88.png","language":"Python","funding_links":["https://github.com/sponsors/doronz88","https://ko-fi.com/doronz"],"categories":["Python"],"sub_categories":[],"readme":"# PyMobileDevice3\n\n\u003c!-- markdownlint-disable MD013 --\u003e\n[![Python application](https://github.com/doronz88/pymobiledevice3/workflows/Python%20application/badge.svg)](https://github.com/doronz88/pymobiledevice3/actions/workflows/python-app.yml \"Python application action\")\n[![Pypi version](https://img.shields.io/pypi/v/pymobiledevice3.svg)](https://pypi.org/project/pymobiledevice3/ \"PyPi package\")\n[![Downloads](https://static.pepy.tech/personalized-badge/pymobiledevice3?period=total\u0026units=none\u0026left_color=grey\u0026right_color=blue\u0026left_text=Downloads)](https://pepy.tech/project/pymobiledevice3)\n[![Discord](https://img.shields.io/discord/1133265168051208214?logo=Discord\u0026label=Discord)](https://discord.gg/52mZGC3JXJ)\n[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/doronz88/pymobiledevice3)\n\u003c!-- markdownlint-enable MD013 --\u003e\n\n## Overview\n\n`pymobiledevice3` is a pure Python 3 implementation for interacting with iOS devices (iPhone, iPad, ...).\nIt includes both a CLI and a Python API and is supported on:\n\n- Windows\n- Linux\n- macOS\n\nMain features:\n\n- Device discovery over bonjour\n- TCP port forwarding\n- Syslog and oslog streaming\n- Profile and application management\n- AFC file access\n- Crash report collection\n- Network sniffing (PCAP)\n- Firmware update\n- Recovery/DFU workflows\n- Notification listen/post (`notify_post()`)\n- Querying and setting SpringBoard options\n- WebInspector automation\n- DDI/DVT developer tooling\n- Backup and restore\n\n## Quick Start\n\nInstall from PyPI:\n\n```shell\npython3 -m pip install -U pymobiledevice3\n```\n\nOr install from source:\n\n```shell\ngit clone git@github.com:doronz88/pymobiledevice3.git\ncd pymobiledevice3\npython3 -m pip install -U -e .\n```\n\nVerify connectivity and run first commands:\n\n```shell\npymobiledevice3 usbmux list\npymobiledevice3 syslog live\npymobiledevice3 apps list\n```\n\n## Platform Notes\n\n- Windows:\n  - Install iTunes from Microsoft Store:\n    \u003chttps://apps.microsoft.com/detail/9pb2mz1zmb1s?hl=en-US\u0026gl=US\u003e\n  - For WSL2, enable mirrored networking mode:\n    \u003chttps://learn.microsoft.com/en-us/windows/wsl/networking#mirrored-mode-networking\u003e\n\n    ```none\n    [wsl2]\n    networkingMode=mirrored\n    ```\n\n- Linux:\n  - Install `usbmuxd`: \u003chttps://github.com/libimobiledevice/usbmuxd\u003e\n\n- OpenSSL:\n  - OpenSSL is explicitly required for older iOS versions (`\u003c 13`).\n\n- Recovery/DFU support\n  - Requires `libusb`.\n\n### Support Matrix (Developer Services)\n\n`iOS \u003e= 17` developer services require tunnel-based transport.\n\n| Host OS | iOS 17.0-17.3.1 | iOS 17.4+ |\n| --- | --- | --- |\n| macOS | Supported | Supported |\n| Windows | Supported (requires additional drivers) | Supported |\n| Linux | Limited | Supported (lockdown tunnel) |\n\nSee the detailed guide: [iOS 17+ tunnels](docs/guides/ios17-tunnels.md)\n\n## Common CLI Tasks\n\nSee full recipes: [CLI recipes](docs/guides/cli-recipes.md)\n\n```shell\n# List connected devices\npymobiledevice3 usbmux list\n\n# Watch syslog\npymobiledevice3 syslog live\n\n# Pull crash reports\npymobiledevice3 crash pull /path/to/crashes\n\n# Mount DDI\npymobiledevice3 mounter auto-mount\n\n# DVT screenshot (requires developer setup)\npymobiledevice3 developer dvt screenshot /path/to/screen.png\n```\n\nInstall shell completions:\n\n```shell\npymobiledevice3 install-completions\n```\n\n## Python API and Protocol Internals\n\n- Protocol overview:\n  [Understanding iDevice protocol layers](misc/understanding_idevice_protocol_layers.md)\n- DTX API quick start:\n  [DTX README](pymobiledevice3/dtx/README.md)\n- DTX internals:\n  [DTX DEVELOPMENT](pymobiledevice3/dtx/DEVELOPMENT.md)\n- RemoteXPC internals:\n  [RemoteXPC](misc/RemoteXPC.md)\n- Building custom CLI commands with `service_provider`:\n  [Guide](docs/guides/writing-commands-with-service-provider.md)\n\n## Documentation Map\n\nSee [Documentation index](docs/README.md) for task-focused guides.\n\n## Contributing\n\nSee [CONTRIBUTING](CONTRIBUTING.md) and [Code of Conduct](CODE_OF_CONDUCT.md).\nAgent-specific contributor guidance is in [AGENTS](AGENTS.md).\n\n## License and Credits\n\nThis work is licensed under GPL 3.0 and credited to several major contributors:\n\n- Hector Martin \"marcan\" \u003chector@marcansoft.com\u003e\n- Mathieu Renard\n- [doronz](https://github.com/doronz88) \u003cdoron88@gmail.com\u003e\n- [matan1008](https://github.com/matan1008) \u003cmatan1008@gmail.com\u003e\n- [Guy Salton](https://github.com/guysalt)\n- [netanelc305](https://github.com/netanelc305) \u003cnetanelc305@protonmail.com\u003e\n- Inbar Agmon \u003cinbar2812@gmail.com\u003e ([Project's logo](https://repository-images.githubusercontent.com/357904774/6d6fb035-5953-425d-9afd-cc1087df0cfb))\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoronz88%2Fpymobiledevice3","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdoronz88%2Fpymobiledevice3","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoronz88%2Fpymobiledevice3/lists"}