Shadowrocket: Daily rebuilt ad-blocking and proxy rules
Provides comprehensive iOS ad-blocking and proxy rules for Shadowrocket with daily automated rebuilds and multiple configuration options; suited for advanced users seeking simplified configuration and automatic updates.
GitHub Johnshall/Shadowrocket-ADBlock-Rules-Forever Updated 2025-12-10 Branch main Stars 21.5K Forks 1.4K
Shadowrocket iOS rules Ad blocking Auto-update

💡 Deep Analysis

5
When a site breaks or is misclassified, how should you troubleshoot and quickly restore service?

Core Analysis

Core Question: When a website breaks or is misclassified, how to efficiently troubleshoot and restore service?

Technical Analysis

  • Logs Are Central: Shadowrocket logs show the requested domain, matched rule, and action (direct/proxy). The README explicitly advises using logs to locate misclassifications.
  • Rollback & Validation: The project includes lightweight/no-ads variants that serve as quick rollback options to determine whether rule updates caused the issue.
  • HTTPS Decryption Effects: Misconfigured HTTPS decryption commonly causes redirects or load failures. Temporary disabling or re-installing the certificate per README can resolve such issues.
  1. Temporary Rollback: Switch to the “no-ads/lightweight” variant or restart SR to confirm if rules are the cause.
  2. Check Logs: Enable SR logs, reproduce the issue, and note the matched rule lines and domains.
  3. Local Temp Fix: Add the problematic domain to a local whitelist or force-proxy rule in SR to restore service (e.g., add to strategy group proxy).
  4. Validate HTTPS: If certificate or redirect errors appear, disable HTTPS decryption temporarily or reinstall the certificate per README.
  5. Upstream Fix: Add the domain to the repository’s manual_* files and open a PR or raise an Issue for longer-term correction.

Important: The README lists domains (e.g., for Apple Podcasts) that must be proxied; follow those examples to restore functionality quickly.

Summary: The fastest recovery is: rollback → use SR logs to locate → apply local temporary fix → validate HTTPS → submit upstream fix. Keeping logs and the ability to revert rules is essential.

89.0%
As a non-technical user, how can I safely and minimally start using these rules and keep them updated automatically?

Core Analysis

Core Question: How can non-technical users safely and with minimal effort enable and auto-update these rules?

Technical Analysis

  • Easy Entry: The README provides a “lazy config (with strategy groups)” that can be installed via QR code or copying the URL into SR, offering a near one-click setup.
  • Auto-update Flow: Use iOS Shortcuts automation to run the update shortcut daily at 08:05 or later to avoid build timing issues.
  • Certificates & Privacy: HTTPS decryption is optional. It can unblock some content or improve ad filtering, but involves installing a root certificate and carries security risks—only follow README steps if you understand the implications.

Practical Steps (Step-by-step)

  1. Initial Install: Use Safari to scan the QR or paste the config URL into SR’s Config page, download and reconnect SR.
  2. Verify Connectivity: Test common sites (Google, social, video). If broken, switch to the lightweight/no-ads variant.
  3. Enable Auto-update: Create a personal automation in Shortcuts set for 08:05+ to run the “Shadowrocket Rules Auto Update” shortcut and disable the “Ask Before Running” option.
  4. Handle HTTPS Decryption Carefully: Keep it off by default; only install the certificate on trusted devices and follow the README exactly.

Notes

  • Keep SR logs enabled for troubleshooting.
  • Don’t enable HTTPS decryption unless you know the risks.
  • The rules require working proxy nodes—they are not a proxy service.

Important: Start with the lazy config and auto-update; escalate to fine-grained settings only after verifying behavior or seeking assistance.

Summary: The safest minimal-effort path for non-technical users is: install lazy config → avoid HTTPS decryption → enable Shortcuts auto-update → escalate to finer control if necessary.

88.0%
How can high-coverage ad filtering and accurate routing be achieved without sacrificing performance?

Core Analysis

Key Question: How to achieve broad ad-blocking and accurate routing in Shadowrocket without sacrificing runtime performance?

Technical Analysis

  • Shadowrocket Advantage: SR builds a suffix search tree on load and uses a match cache, so per-request matching complexity is near O(1); raw rule count alone doesn’t linearly increase per-request match time.
  • Engineering Strategies:
  • Modular Variants: Offer “ads-only”, “no-ads”, and combined routing+ads variants so users pick the right trade-off.
  • Deduplication & Merging: Deduplicate merged lists before conversion to reduce redundancy.
  • Strategy-Group Layering: Put volatile or high-false-positive rules into switchable strategy groups and maintain white-lists for critical domains.
  • LAN & Apple/CDN Optimizations: Default LAN and Apple/CDN hosts to direct connect or special handling to reduce misclassification impact.

Practical Recommendations

  1. Pick the Right Variant: If concerned about size, start with the lightweight “ads-only” or “no-ads” variant; move to routing-enabled variants as needed.
  2. Use SR Logs: Use Shadowrocket logs to identify false positives and add temporary white-list entries or submit PRs upstream.
  3. Maintain a Regression Set: Keep a test set of high-traffic domains to ensure critical services aren’t blocked after updates.

Important: While SR’s matching reduces runtime cost, very large and frequently updated rule sets increase build and maintenance complexity. Balance coverage with maintainability.

Summary: By modularizing rules, selecting appropriate variants, deduplicating sources, and leveraging SR’s match structure, you can achieve high ad coverage and accurate routing without performance loss, while accepting limits on dynamic/video ad blocking.

86.0%
If I want to customize rules or self-host the publishing pipeline (Fork + Actions), what should I be aware of to achieve automated updates and private rule management?

Core Analysis

Core Question: Forking and running Actions for a private automated rules pipeline is feasible—but what engineering and compliance aspects must you address?

Technical Analysis

  • Feasibility: The README indicates forking and enabling Actions allows you to run the build pipeline locally; Python scripts aggregate sources and emit Shadowrocket-formatted files.
  • Engineering Considerations:
  • Schedule: Configure Actions timing (e.g., 08:00 daily) considering upstream update patterns and build delay.
  • Validation Suite: Add CI regression checks (expected behavior for common sites) to prevent shipping disruptive updates.
  • Rollback: Retain historical builds and implement automatic rollback when validation or feedback indicates failures.
  • Private Sources & Licensing: Ensure permission to republish any private or third-party lists, and verify update mechanisms.
  • Secrets & Publishing Targets: If publishing to private Pages or third-party storage, securely manage secrets and limit access.

Practical Checklist

  1. Fork and enable Actions (do not copy only the release branch).
  2. Add regression tests in Actions (e.g., 50 domain expectations for direct/proxy behavior).
  3. Use staged deployment: publish to a test channel first, then promote verified builds to production.
  4. Manage secrets & access using GitHub Secrets and minimal collaborator permissions.
  5. Maintain changelogs and test reports to aid debugging and audits.

Important: Self-hosting reduces external reliance but increases maintenance responsibility (CI pipelines, tests, data source upkeep, and licensing).

Summary: Fork + Actions is a flexible way to automate personalized rules, but to be robust you must add validation, rollback, secrets management, and compliance checks into your CI workflow.

85.0%
How does the automated build-and-publish pipeline ensure rule compatibility and freshness? What are the technical trade-offs?

Core Analysis

Core Question: Can daily automated builds ensure both rule freshness and low false positives?

Technical Analysis

  • Pipeline Design: The project aggregates multi-source lists with Python and converts them into Shadowrocket syntax; GitHub Actions handles scheduled builds and GitHub Pages distributes outputs. This ensures reproducibility and daily updates.
  • Advantages:
  • Freshness: Daily rebuilds rapidly incorporate upstream fixes.
  • Automatable & Reusable: Fork-and-run Actions lowers maintenance costs for individuals.
  • Modular Outputs: Multiple variants (black/white/return/ads) make rollback and selective deployment easier.
  • Trade-offs & Risks:
  • Upstream Dependence: If source lists contain overblocks, automation amplifies issues.
  • Insufficient Verification: Without regression tests (e.g., verifying expected matches for top-visited domains), updates can introduce service-breakers.
  • Performance vs Precision: Larger ad lists increase rule size. SR optimizations mitigate runtime cost but raise maintenance complexity.

Practical Recommendations

  1. Add Regression Tests: Include a small domain sample test suite in Actions to validate expected direct/proxy behavior before publishing.
  2. Staged Release: Use a testing channel (or test branch) to validate builds with a subset of users before global publish.
  3. Quick Rollback: Preserve previous builds for fast rollback in case of mass misclassification.

Important: Automation does not eliminate risk. Combine SR logs and user feedback (Issues/PRs) to close the loop and continuously improve.

Summary: Automation ensures freshness and reproducibility, but to control false positives you need validation steps, staged releases, and rollback capability within the CI pipeline.

84.0%

✨ Highlights

  • Daily rebuild at 08:00 Beijing time
  • Multiple Shadowrocket-compatible rule sets
  • No clear open-source license and no contributors
  • Potential legal, privacy, or compliance risks

🔧 Engineering

  • Shadowrocket-focused rule set for iOS, supports ad blocking and multiple proxy strategies
  • Rules autogenerated daily from EasyList, GFWList and other open-source lists

⚠️ Risks

  • Single maintainer with no contributors; long-term maintenance and community support are uncertain
  • License is unspecified; distribution and use of rules may carry legal or compliance risks

👥 For who?

  • iOS power users and network engineers; requires Shadowrocket usage and certificate configuration
  • Individuals or small community maintainers who need automated updates, rule customization, or multiple strategy switching