# tidevice3
[![PyPI version](https://badge.fury.io/py/tidevice3.svg)](https://badge.fury.io/py/tidevice3)
[![codecov](https://codecov.io/gh/codeskyblue/tidevice3/graph/badge.svg?token=twFRe9igek)](https://codecov.io/gh/codeskyblue/tidevice3)
wrapper for pymobiledevice3 to make it more easy to use.
# Install
Mac
```bash
pip install tidevice3
# or install as Isolated environment
brew install pipx
pipx install tidevice3
```
Linux
```bash
# required by pytun-pmd3
sudo apt install python3-dev gcc pipx
pipx install tidevice3
pipx ensurepath
```
# CLI Usage
iOS >= 17 `screenshot,app:ps` connect through Ethernet over USB (NCM device) instead of usbmuxd
So tunneld should start first.
```bash
# start tunneld for iOS>=17
# launch process (pmd3 remote start-tunnel) when new usb device connected
# root required
$ sudo t3 tunneld
```
Basic usage
```bash
$ t3 list
...
# enable developer mode and mount develoepr image
$ t3 developer
# install & uninstall
$ t3 install https://....ipa
$ t3 install ./some.ipa
$ t3 uninstall com.example
# take screenshot
$ t3 screenshot out.png
# reboot
$ t3 reboot
# file operation
$ t3 fsync <ls|rm|pull|push> [Arguments...]
# app
$ t3 app <ps|list|launch|kill|instal|uninstall|foreground>
# install
# alias for app install
$ t3 install <URL or LocalIPA>
# screenrecord
$ t3 screenrecord out.mp4
# relay (like iproxy LOCAL_PORT DEVICE_PORT)
$ t3 relay 8100 8100
$ t3 relay 8100 8100 --source 0.0.0.0 --daemonize
# show help
$ t3 --help
```
# API Usage
The API alone is insufficient for all operations; combining it with the pymobiledevice3 library can accomplish more things.
```python
from tidevice3.api import list_devices, connect_service_provider, screenshot, app_install
for d in list_devices(usb=True):
print("UDID:", d.Identifier)
service_provider = connect_service_provider(d.Identifier)
pil_im = screenshot(service_provider)
pil_im.save("screenshot.png")
# install ipa from URL or local
app_install(service_provider, "https://example.org/some.ipa")
```
# iOS 17 support
- Mac (supported)
- Windows (https://github.com/doronz88/pymobiledevice3/issues/569)
- Linux (https://github.com/doronz88/pymobiledevice3/issues/566)
Mac,Windows,Linux all supported iOS<17
# WDA
其实WDA启动可以不用XCUITest,下面是具体的方法(适用于iOS >= 15)
- iOS企业重签名方法 https://zhuanlan.zhihu.com/p/673521212
- iOS WDA脱离xcode & tidevice运行自动化 https://zhuanlan.zhihu.com/p/673319266
# DEVELOP & CONTRIBUTE
see [DEVELOP.md](DEVELOP.md)
# LICENSE
[MIT](LICENSE)
Raw data
{
"_id": null,
"home_page": "https://github.com/codeskyblue/tidevice3",
"name": "tidevice3",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.8",
"maintainer_email": null,
"keywords": null,
"author": "codeskyblue",
"author_email": "codeskyblue@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/a2/e3/993ae1c9ef4242d1aad91330417be9a13fcf284d47cd914e50c4ea0b8884/tidevice3-0.11.3.tar.gz",
"platform": null,
"description": "# tidevice3\n[![PyPI version](https://badge.fury.io/py/tidevice3.svg)](https://badge.fury.io/py/tidevice3)\n[![codecov](https://codecov.io/gh/codeskyblue/tidevice3/graph/badge.svg?token=twFRe9igek)](https://codecov.io/gh/codeskyblue/tidevice3)\n\nwrapper for pymobiledevice3 to make it more easy to use.\n\n\n# Install\n\nMac\n\n```bash\npip install tidevice3\n\n# or install as Isolated environment\nbrew install pipx\npipx install tidevice3\n```\n\nLinux\n\n```bash\n# required by pytun-pmd3\nsudo apt install python3-dev gcc pipx\npipx install tidevice3\npipx ensurepath\n```\n\n# CLI Usage\n\niOS >= 17 `screenshot,app:ps` connect through Ethernet over USB (NCM device) instead of usbmuxd\nSo tunneld should start first.\n\n```bash\n# start tunneld for iOS>=17\n# launch process (pmd3 remote start-tunnel) when new usb device connected\n# root required\n$ sudo t3 tunneld\n```\n\nBasic usage\n\n```bash\n$ t3 list\n...\n\n# enable developer mode and mount develoepr image\n$ t3 developer\n\n# install & uninstall\n$ t3 install https://....ipa\n$ t3 install ./some.ipa\n$ t3 uninstall com.example\n\n# take screenshot\n$ t3 screenshot out.png\n\n# reboot\n$ t3 reboot\n\n# file operation\n$ t3 fsync <ls|rm|pull|push> [Arguments...]\n\n# app\n$ t3 app <ps|list|launch|kill|instal|uninstall|foreground>\n\n# install\n# alias for app install\n$ t3 install <URL or LocalIPA>\n\n# screenrecord\n$ t3 screenrecord out.mp4\n\n# relay (like iproxy LOCAL_PORT DEVICE_PORT)\n$ t3 relay 8100 8100\n$ t3 relay 8100 8100 --source 0.0.0.0 --daemonize\n\n# show help\n$ t3 --help\n```\n\n# API Usage\nThe API alone is insufficient for all operations; combining it with the pymobiledevice3 library can accomplish more things.\n\n```python\nfrom tidevice3.api import list_devices, connect_service_provider, screenshot, app_install\n\nfor d in list_devices(usb=True):\n print(\"UDID:\", d.Identifier)\n service_provider = connect_service_provider(d.Identifier)\n pil_im = screenshot(service_provider)\n pil_im.save(\"screenshot.png\")\n\n # install ipa from URL or local\n app_install(service_provider, \"https://example.org/some.ipa\")\n```\n\n# iOS 17 support\n- Mac (supported)\n- Windows (https://github.com/doronz88/pymobiledevice3/issues/569)\n- Linux (https://github.com/doronz88/pymobiledevice3/issues/566)\n\nMac,Windows,Linux all supported iOS<17\n\n# WDA\n\u5176\u5b9eWDA\u542f\u52a8\u53ef\u4ee5\u4e0d\u7528XCUITest\uff0c\u4e0b\u9762\u662f\u5177\u4f53\u7684\u65b9\u6cd5\uff08\u9002\u7528\u4e8eiOS >= 15)\n\n- iOS\u4f01\u4e1a\u91cd\u7b7e\u540d\u65b9\u6cd5 https://zhuanlan.zhihu.com/p/673521212\n- iOS WDA\u8131\u79bbxcode & tidevice\u8fd0\u884c\u81ea\u52a8\u5316 https://zhuanlan.zhihu.com/p/673319266\n\n# DEVELOP & CONTRIBUTE\nsee [DEVELOP.md](DEVELOP.md)\n\n# LICENSE\n[MIT](LICENSE)\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "wrapper for pymobiledevice3 for easy use with iphone device",
"version": "0.11.3",
"project_urls": {
"Homepage": "https://github.com/codeskyblue/tidevice3"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "72c03cbbcd3e645ac29d81549c63fb9c3a40cb0f786e19c67a7e2ec0af7c6ca6",
"md5": "10151c58130c4e54b309ae6893d1f383",
"sha256": "fc491c331650427a372fd5e66d7352ac9ec2f2ebf76d53d29fdd2f99f16f07d5"
},
"downloads": -1,
"filename": "tidevice3-0.11.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "10151c58130c4e54b309ae6893d1f383",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.8",
"size": 24562,
"upload_time": "2024-05-11T06:17:09",
"upload_time_iso_8601": "2024-05-11T06:17:09.649804Z",
"url": "https://files.pythonhosted.org/packages/72/c0/3cbbcd3e645ac29d81549c63fb9c3a40cb0f786e19c67a7e2ec0af7c6ca6/tidevice3-0.11.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a2e3993ae1c9ef4242d1aad91330417be9a13fcf284d47cd914e50c4ea0b8884",
"md5": "58564ad64edcad3d22e3a1bbe541ba19",
"sha256": "646575c618aefb0a757614cbdd5b7af1ee9eeebb3ca4ccb274ebab41dce61cca"
},
"downloads": -1,
"filename": "tidevice3-0.11.3.tar.gz",
"has_sig": false,
"md5_digest": "58564ad64edcad3d22e3a1bbe541ba19",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.8",
"size": 17946,
"upload_time": "2024-05-11T06:17:11",
"upload_time_iso_8601": "2024-05-11T06:17:11.040492Z",
"url": "https://files.pythonhosted.org/packages/a2/e3/993ae1c9ef4242d1aad91330417be9a13fcf284d47cd914e50c4ea0b8884/tidevice3-0.11.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-05-11 06:17:11",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "codeskyblue",
"github_project": "tidevice3",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "tidevice3"
}