A jailbreak detection bypass for modern iOS jailbreaks.
While Shadow does work fine on palera1n, please note the following potential issues:
- Re-jailbreaking does not reactivate
libSandy
due to the lack of userspace rebooting. To fix this issue, you will need to reinstall thelibSandy
package after activating the jailbreak. This affects Shadow's ability to load preferences. - On iOS 16.2 (and probably future versions), Substitute appears to have issues hooking C functions. This may be fixed in a future update to the jailbreak if/when it switches to ElleKit. In this case, please use the
fishhook
hooking library. - You may see
shdw: Killed: 9
in your package manager. It is safe to ignore this error message. - For rootless palera1n, please use
dirtypatch
orAutoPatch
and the rootless repo:https://ios.jjolano.me/rootless
Make sure Rootless mode is enabled. There are no guarantees if Shadow will function properly on Xina. You may find that some apps fail to be bypassed, while it works for another jailbreak.
I only offer support in English.
Please do not submit issues if your app is still getting detected, unless the same version of the app is bypassed on a previous version of Shadow.
Before submitting a new issue, please ensure the following details are provided:
- iOS version
- Jailbreak type (Taurine, unc0ver, palera1n, etc...)
- Code substitution platform (libhooker, Substitute, Substrate, ElleKit)
- Options used
- Apps affected
If a certain option is causing apps to crash, please include the name of the option.
Some ideas to try:
- Use a different hooking library.
fishhook
is a safe option. - Disable all tweaks except Shadow. You can use Choicy or libhooker Configurator to do this per-app.
- Use vnodebypass, if supported on your system.
- If semi-(un)tethered, reboot into normal jailed iOS and use the app.
- Use another bypass tweak, ideally an app-specific bypass tweak. Be wary of enabling multiple bypass tweaks in case of conflicts.
- Downgrade the app. Sometimes, newer versions have updated detection methods.
Pull requests are welcome. For translations, please refer to the English translation within the preference bundle resource files.
Add my repo to your package manager and install the Shadow (me.jjolano.shadow
) package. Alternatively, download the latest release directly from GitHub and open the file with your package manager.
You may need additional repositories for dependencies - these are the current dependencies:
libSandy
from opa334's RepoAltList
from opa334‘s RepoHookKit Framework
A recommended (but not required) package is Injection Foundation
from PoomSmart's Repo (https://poomsmart.github.io/repo
). This package ensures that Shadow is injected properly into certain apps.
After installation, settings are available in the Settings app. You may configure global defaults, or add an app-specific configuration. Shadow allows fine-grained control of its bypass strength, so there will be many options available to configure.
Copyright Act, RSC 1985, c C-42, s 41.12.