https://github.com/codeskyblue/tidevice3
wrapper for pymobiledevice3 to make it more easy to use.
https://github.com/codeskyblue/tidevice3
Last synced: about 2 months ago
JSON representation
wrapper for pymobiledevice3 to make it more easy to use.
- Host: GitHub
- URL: https://github.com/codeskyblue/tidevice3
- Owner: codeskyblue
- License: mit
- Created: 2024-01-05T03:41:32.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-03-22T09:04:05.000Z (about 1 year ago)
- Last Synced: 2024-04-16T00:04:53.282Z (about 1 year ago)
- Language: Python
- Size: 73.2 KB
- Stars: 85
- Watchers: 4
- Forks: 20
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# tidevice3
[](https://badge.fury.io/py/tidevice3)
[](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 [Arguments...]# app
$ t3 app# install
# alias for app install
$ t3 install# 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_installfor 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)