https://github.com/codeskyblue/tidevice3
wrapper for pymobiledevice3 to make it more easy to use.
https://github.com/codeskyblue/tidevice3
Last synced: 7 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 (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2024-03-22T09:04:05.000Z (over 1 year ago)
- Last Synced: 2024-04-16T00:04:53.282Z (over 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_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)