Block ads and speed up reward-ad videos in iOS apps — works as a rootless jailbreak
tweak (.deb, iOS 15.0+) with a per-app Settings panel, or statically injected into
a single .ipa.
There is no content analysis. The tweak neutralises ads by name:
- Display ads (banner / interstitial / native / app-open) from known SDKs
(Google AdMob
GAD*, AppLovinAL*/MA*, ironSourceIS*, MetaFBAd*, Google IMAIMAAd, Vungle, SnapSCSnapAds*, React-Native Google Mobile Ads…) have theirload/render/isReadymethods stubbed, so the host app believes no ad is available. - Reward / video ads are sped up (not blocked) so you still get the reward, but only while a known ad view-controller is on screen — your normal app video is left untouched.
- An optional, separate toggle bypasses common jailbreak-detection checks.
After installing the .deb, open Settings → Ads Speed:
- Master on/off, "Block display ads", "Speed up reward-ad video", "Bypass ads jailbreak detection".
- "Video speed → Multiplier" (default 8).
- Apps: a list of every installed app. The tweak only runs in apps you enable here. Changes apply the next time the app is launched.
By default nothing happens until you enable an app in the list.
Requires Theos (macOS, or Linux/WSL — see BUILD.md).
# rootless .deb (Dopamine, palera1n rootless …), iOS 15.0+
make package
# rootful .deb (palera1n rootful, XinaA15 …), same iOS versions
make package THEOS_PACKAGE_SCHEME=Both share the same source; Theos sets the install paths, architecture and substrate linkage per scheme, and the Settings panel auto-detects the jailbreak root.
For non-jailbroken devices there is no package manager, Settings panel or prefs, so build the jailed variant: always-on, web video speed-up only (no native AVPlayer — it could also speed in-game cutscenes you couldn't turn off — no timer/clock tricks, no ad blocking).
make jailed # outputs packages/adspeed-jailed.dylibInject packages/adspeed-jailed.dylib into the target .ipa. The hooks need a substrate
provider bundled into the app, so use either:
- TrollStore + TrollFools (bundles the substrate automatically), or
- Sideloadly with its “Cydia Substrate” option enabled when injecting the dylib.
A sideload without a substrate option has nothing to resolve the hooks against, so they won't load.
-DADSPEED_FORCE_ONis the other always-on flag: same "ignore prefs / always active" behaviour but with the full feature set (blocking, native, etc.) at their defaults. UseADSPEED_JAILEDfor the safe speed-only build.
Tweak.xm— hooks + per-app gating.adspeedprefs/— the Settings panel (PreferenceBundle).adspeed.plist— injection filter (all UIKit apps; the runtime gate decides).layout/— PreferenceLoader entry.