a rewrite of pyzule that doesn't (completely) suck !!
you can open an issue to request a feature :D !! also see my recommended flags
- generate and use shareable .cyan files to configure IPAs!
- inject deb, dylib, framework, bundle, and appex files/folders
- automatically fix dependencies on CydiaSubstrate (cyan uses ElleKit!), Cephei*, and Orion
- copy any unknown file/folder types to app root
- change app name, version, bundle id, and minimum os version
- remove UISupportedDevices
- remove watch app
- change the app icon
- fakesign the output ipa/tipa/app
- add custom entitlements to the main executable
- thin all binaries to arm64, it can LARGELY reduce app size sometimes!
- remove all app extensions (or just encrypted ones!)
cyan supports linux, macOS, WSL, and jailbroken iOS! all either x86_64 or arm64/aarch64 !!
first, make sure you have ar and tar installed
also obviously install python, version 3.9 or greater is required
the zip
and unzip
commands are optional dependencies, they may fix issues when extracting certain IPAs with chinese characters, etc
linux/WSL/macOS instructions
- install pipx
- install OR update cyan:
pipx install --force https://github.com/asdfzxcvbn/pyzule-rw/archive/main.zip
- if you want to inject dylibs ON AARCH64 LINUX:
pipx inject cyan lief
- if you want to change app icons (iOS NOT supported):
pipx inject cyan Pillow
jailbroken iOS instructions / automated environment (github workflow, etc)
- install OR update cyan:
pip install --force-reinstall https://github.com/asdfzxcvbn/pyzule-rw/archive/main.zip
cyan comes bundled with the cgen
command, which lets you generate .cyan
files to pass to -z
/--cyan
!
- Al4ise for the original Azule
- lief-project for LIEF
- tyilo for insert_dylib (macOS/iOS)
- LeanVel for insert_dylib (linux)