3.83/5 (24 votes).
Evil Scheme takes advantage of iOS URL schemes to allow users to change default apps in which links open.
Default apps can be set in the Evil Scheme preference pane within the Settings app. To add a default app, select the highlighted
Add newrow. Choose a preset, or dismiss the view to build your own. To apply your changes, return to the primary Evil Scheme menu and press the
Savebutton in the top right corner; no need to respring! Try opening a link that would typically open a stock app, and /viola/, your selected app should open!
Creating Custom Presets
Is there no provided preset for an app you would like to use? No problem: provided that app has a URL scheme, you can add a preset for it! Building a preset can be done in three steps:
1. Translate bundle identifiers
Find the bundle identifier of the your new app, and its stock counterpart.BundleIDsXIIis a great user-friendly tool for this. Paste the strings in their respective fields on the
Add Newscreen. You can target as many apps as you would like.
2. Capture URLs with a regular expression
Apps that open other apps use URLs to communicate with each other and encode information. In case you would like to have multiple actions for different URLs, you should make your regular expression as specific as possible, while still capturing all URLs you want to modify. If you only need one kind of action, you can use
any character, any number of times") as your regular expression.
Regular expressions can be re-ordered by priority and action corresponding to the first match will be used. If no matches are found, redirection will be aborted.
3. Build a new URL blueprint
I've engineered Evil Scheme to give users the tools to make any modification to a URL they need to by creating a framework called Evil Kit. All you need to know is it lets you create a blueprint for a new URL using various "fragments" or "portions" representing different pieces of the original URL, static pieces of text, or regular expression templates which are brought together in sequence. For example, the blueprint for a spotlight search that should open as a DuckDuckGo search in Firefox Focus looks like this:
Constant string: "firefox-focus://open-url?url="
Percent encoded constant string: "https://ddg.gg/?q="
Percent encoded original query value
Build your outline by selecting
Add new fragment, selecting the fragment type you want, and filling in its various options. If the context in which you use a given fragment means it will be interpreted as a query value or it it contains special characters that would interfere with the URL, you may need to enable a positive level of
Percent encodingfor that fragment. If you are taking a URL portion /from/ a query and using it elsewhere, you may need to use a negative level of
Percent encodingiterations. For a deeper dive into Evil Kit portions, check out their well documentedheaders.
This tweak was originally made by Lorenzo Pane. I am now the maintainer of this package. for any bugs or features you want me to add check out the source code repo: https://github.com/0xkuj/EvilScheme
iOS 13, iOS 14, iOS 15, iOS 16