From cef2bae42791c083529197a956f4d6d22b1dacc9 Mon Sep 17 00:00:00 2001 From: XingjiaYang Date: Wed, 3 Jun 2026 09:29:14 -0700 Subject: [PATCH 1/5] Change Requirements.txt --- requirements.txt | 124 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 119 insertions(+), 5 deletions(-) diff --git a/requirements.txt b/requirements.txt index 10e9d77..a1decd8 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 +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 From ecac344ce41ee65ab3409d65ad6568b2ba5931f7 Mon Sep 17 00:00:00 2001 From: XingjiaYang Date: Wed, 3 Jun 2026 09:45:12 -0700 Subject: [PATCH 2/5] Update Requirements for windows platform. --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index a1decd8..b30be2a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -109,7 +109,7 @@ typing_extensions==4.15.0 tzdata==2026.2 urllib3==2.7.0 uvicorn==0.47.0 -uvloop==0.22.1 +uvloop==0.22.1; sys_platform != "win32" watchfiles==1.2.0 wcwidth==0.7.0 websockets==16.0 From a38020e0c170fdb7b86a1fea3cb17367964e7f57 Mon Sep 17 00:00:00 2001 From: Xingjia Yang <105903780+XingjiaYang@users.noreply.github.com> Date: Wed, 3 Jun 2026 10:20:34 -0700 Subject: [PATCH 3/5] Specify preferred Python version in README Added a note to use Python 3.12.3 for compatibility. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 72348e4..7c63c41 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,8 @@ pip install -r requirements.txt python3 trollstore.py ``` +**Please use a fixed version of python. Python 3.12.3 is preferred.** + # 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. From 0a5b555bbbdaa037cfdf7212d1db62da3c7627b8 Mon Sep 17 00:00:00 2001 From: Xingjia Yang <105903780+XingjiaYang@users.noreply.github.com> Date: Wed, 3 Jun 2026 10:25:24 -0700 Subject: [PATCH 4/5] Revise README with updated usage instructions Updated usage instructions for running the script and emphasized the use of a fixed Python version. --- README.md | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7c63c41..6e797d7 100644 --- a/README.md +++ b/README.md @@ -4,13 +4,32 @@ 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 ``` -**Please use a fixed version of python. Python 3.12.3 is preferred.** +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. From d29a42ef19eb0640288447e56b673b968bf4850a Mon Sep 17 00:00:00 2001 From: Xingjia Yang <105903780+XingjiaYang@users.noreply.github.com> Date: Wed, 3 Jun 2026 10:29:14 -0700 Subject: [PATCH 5/5] Suppress unnecessary warnings on Windows Added warning filter to suppress unnecessary warnings on Windows. --- trollstore.py | 8 ++++++++ 1 file changed, 8 insertions(+) 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