diff --git a/README.md b/README.md index 72348e4..6e797d7 100644 --- a/README.md +++ b/README.md @@ -4,12 +4,33 @@ TrollRestore is a TrollStore installer for iOS/iPadOS 15.2 - 16.7 RC (20H18) and A guide for installing TrollStore using TrollRestore can be found [here](https://ios.cfw.guide/installing-trollstore-trollrestore). # Usage + To run the script, clone this repository and run the following commands: + ```sh +python3.12 -m venv .venv +source .venv/bin/activate pip install -r requirements.txt python3 trollstore.py ``` +On Windows PowerShell: + +```powershell +py -3.12 -m venv .venv +.\.venv\Scripts\Activate.ps1 +pip install -r requirements.txt +python trollstore.py +``` + +## Specific Attention + +* **Please use a fixed Python version. Python 3.12.3 is preferred.** +* **Do NOT use modern environment/package managers such as `uv` or `conda`.** +* **Please use the standard Python `.venv` workflow with `pip` to avoid dependency and build compatibility issues.** +* **The dependency versions in `requirements.txt` are pinned for reproducible builds.** + + # Post-installation TrollRestore does not restore a proper persistence helper - it simply replaces the main binary of a system app with an embedded TrollHelper. Thus, after installing TrollStore, it is recommended to install a persistence helper (you can use the same app used with TrollRestore as your persistence helper). Due to the nature of the installer (and its use of backups), the only way to restore your chosen app to it's original state is to delete it and re-install the app from the App Store. diff --git a/requirements.txt b/requirements.txt index 10e9d77..b30be2a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,119 @@ -pymobiledevice3 -bpylist2 -rich -requests -click \ No newline at end of file +annotated-doc==0.0.4 +annotated-types==0.7.0 +anyio==4.13.0 +arrow==1.4.0 +asn1==2.8.0 +asttokens==3.0.1 +blessed==1.43.0 +bpylist2==4.1.1 +certifi==2026.5.20 +cffi==2.0.0 +charset-normalizer==3.4.7 +click==8.4.1 +coloredlogs==15.0.1 +construct==2.10.70 +construct-typing==0.7.0 +cryptography==48.0.0 +daemonize==2.5.0 +decorator==5.3.1 +defusedxml==0.7.1 +detect-installer==0.1.0 +developer_disk_image==0.2.0 +dnspython==2.8.0 +editor==1.8.0 +email-validator==2.3.0 +enum-compat==0.0.3 +executing==2.2.1 +fastapi==0.136.1 +fastapi-cli==0.0.24 +fastapi-cloud-cli==0.18.0 +fastar==0.11.0 +gpxpy==1.6.2 +h11==0.16.0 +hexdump==3.3 +httpcore==1.0.9 +httptools==0.7.1 +httpx==0.28.1 +humanfriendly==10.0 +hyperframe==6.1.0 +idna==3.16 +ifaddr==0.2.0 +inquirer3==0.6.1 +ipsw-parser==1.7.0 +ipython==9.13.0 +ipython_pygments_lexers==1.1.1 +itsdangerous==2.2.0 +jedi==0.20.0 +Jinja2==3.1.6 +jinxed==2.0.3 +lzfse==0.4.2 +markdown-it-py==4.2.0 +MarkupSafe==3.0.3 +matplotlib-inline==0.2.2 +mdurl==0.1.2 +nest-asyncio==1.6.0 +opack2==0.0.1 +packaging==26.2 +parameter-decorators==0.0.2 +parso==0.8.7 +pexpect==4.9.0 +pillow==12.2.0 +plumbum==1.10.0 +prompt_toolkit==3.0.52 +psutil==7.2.2 +ptyprocess==0.7.0 +pure_eval==0.2.3 +pycparser==3.0 +pycrashreport==2.0.0 +pycryptodome==3.23.0 +pydantic==2.13.4 +pydantic-extra-types==2.11.1 +pydantic-settings==2.14.1 +pydantic_core==2.46.4 +Pygments==2.20.0 +pygnuutils==0.1.1 +pyimg4==0.8.8 +pykdebugparser==1.2.7 +pylzss==0.3.4 +pymobiledevice3==6.2.0 +python-dateutil==2.9.0.post0 +python-dotenv==1.2.2 +python-multipart==0.0.29 +python-pcapng==2.1.1 +pytun-pmd3==3.0.3 +pyusb==1.3.1 +PyYAML==6.0.3 +qh3==1.8.1 +readchar==4.2.2 +remotezip2==0.0.2 +requests==2.34.2 +rich==15.0.0 +rich-toolkit==0.19.10 +rignore==0.7.6 +runs==1.3.0 +sentry-sdk==2.60.0 +setuptools==82.0.1 +shellingham==1.5.4 +six==1.17.0 +srptools==1.0.1 +sslpsk-pmd3==1.0.3 +stack-data==0.6.3 +starlette==1.0.1 +termcolor==3.3.0 +tqdm==4.67.3 +traitlets==5.15.0 +typer==0.25.1 +typer-injector==0.3.0 +typing-inspection==0.4.2 +typing_extensions==4.15.0 +tzdata==2026.2 +urllib3==2.7.0 +uvicorn==0.47.0 +uvloop==0.22.1; sys_platform != "win32" +watchfiles==1.2.0 +wcwidth==0.7.0 +websockets==16.0 +wheel==0.47.0 +wsproto==1.3.2 +xmod==1.10.0 +xonsh==0.23.7 diff --git a/trollstore.py b/trollstore.py index d45ec60..cb6f03d 100644 --- a/trollstore.py +++ b/trollstore.py @@ -1,3 +1,11 @@ +# This Part is for avoiding uncessary warnings in windows. +import warnings +warnings.filterwarnings( + "ignore", + message=r".*unknown terminal capability.*", + category=UserWarning, +) + import platform import sys import traceback