Network rules
Block or allow by address, with options for request type, first or third party, domain and method.
||ads.example.com^$third-party
Arivna Shield
Arivna Shield is the ad and tracker blocker built into Arivna. It is a native engine written in Rust, it reads the same filter language as uBlock Origin, and it checks every request a page makes before the request is sent.
Step by step
All 13 lists are inside the APK, so Shield works offline from the first launch.
The Rust engine turns roughly a quarter of a million lines of rules into a compact matcher and saves it to a binary cache file.
Android WebView asks Arivna about each request. Shield looks at the address, the page, the request type and the method.
Blocked requests get an empty answer. Some get a harmless stand-in script so the page keeps working. The rest load normally.
A small script at page start runs cosmetic rules and scriptlets to hide empty ad boxes and neutralise ad scripts.
Android's WebView calls shouldInterceptRequest for every image, script, frame, stylesheet, font and data request a page makes. Arivna answers that call with Shield's decision. When a request is blocked, nothing is sent to that server: no connection, no cookies, no data about you.
Navigations are checked too. Pop-ups that match a filter are stopped, and tracking parameters (such as campaign tags) are removed from links you open when a $removeparam rule matches.
The engine is written in Rust and compiled separately for each CPU type, then called from the app through JNI. It starts from its cache in tens of milliseconds and adds a few milliseconds per page. It does not run as JavaScript inside the page.
Shield blocks what the lists describe. No list catches every ad, and some sites change their ads often. When something slips through, the element picker and My filters let you fix it yourself, and the daily update brings fixes from the list maintainers.
Illustration with made-up addresses. In the app, the log lists the real requests of the tab you are on.
Filter syntax
Shield reads the uBlock Origin and Adblock Plus filter syntax, so the big public lists work as their authors wrote them.
Block or allow by address, with options for request type, first or third party, domain and method.
||ads.example.com^$third-party
Hide elements on a page with CSS selectors, generic or per site.
example.org##.ad-banner
Hide elements by what they contain, not just their class name.
##div:has-text(Sponsored)
Small scripts, named by the lists, that run at page start to neutralise ad and anti-adblock code.
example.org##+js(set-constant, ...)
Replace a blocked script with a harmless stand-in so the page does not break.
$script,redirect=noop.js
Strip tracking parameters from addresses.
$removeparam=utm_source
Rules that win over exceptions, and rules that switch off another rule.
||example.com^$important
$csp, $replace and $header rules are dropped. They need to rewrite responses, which Arivna does not do.
The lists
Written and maintained by their own communities. Arivna downloads them from their official addresses and uses them under their own licences. Eleven are on by default; the two cookie-notice lists are added in Strict mode.
| List | What it covers | Maintainer | Licence | Mode |
|---|---|---|---|---|
| uBlock filters | Ads and anti-adblock | uBlock Origin | GPLv3 | Standard |
| uBlock filters: Privacy | Trackers | uBlock Origin | GPLv3 | Standard |
| uBlock filters: Badware risks | Scam and risky sites | uBlock Origin | GPLv3 | Standard |
| uBlock filters: Quick fixes | Fast fixes for broken sites | uBlock Origin | GPLv3 | Standard |
| uBlock filters: Unbreak | Exceptions that keep sites working | uBlock Origin | GPLv3 | Standard |
| EasyList | Ads | EasyList | GPLv3 or CC BY-SA 3.0 | Standard |
| EasyPrivacy | Trackers | EasyList | GPLv3 or CC BY-SA 3.0 | Standard |
| Peter Lowe's list | Ad and tracking servers | Peter Lowe | Terms on the list's site | Standard |
| Online Malicious URL Blocklist | Malware addresses from URLhaus | malware-filter | See project | Standard |
| AdGuard Mobile Ads | Ads in mobile sites | AdGuard | GPLv3 | Standard |
| AdGuard URL Tracking | Tracking parameters in links | AdGuard | GPLv3 | Standard |
| uBlock filters: Cookie notices | Cookie banners | uBlock Origin | GPLv3 | Strict |
| EasyList Cookie List | Cookie banners | EasyList | CC BY 3.0 | Strict |
Licences as stated in each list's header or project page. Arivna also compiles a short list of its own built-in rules and your own rules from My filters. uBlock Origin's lists, Arivna's rules and your rules are trusted for uBlock Origin's trusted- scriptlets; other lists are not.
Auto-update
Lists change all the time. Arivna keeps up without downloading the same thing twice.
When you open the app, or come back to it, and the lists are older than 24 hours.
Lists download in parallel. Each request carries the list's last ETag or date, so an unchanged list costs a tiny "not modified" answer.
If nothing changed, the engine stays as it is. If something did, a new engine is built in the background and swapped in.
Settings shows the last update, an Update now button, and the result, for example "Updated just now · 2 of 13 lists changed". If no server can be reached, the existing protection is kept.
Your tools
When a page misbehaves, you can see exactly what Shield did and change it.
Every tab keeps its own log. Each entry shows the address, the request type, whether it was allowed, blocked or redirected, and the exact filter that decided. Filter the log by result, or search by address, type or filter text.

Choose Block element from the menu and tap anything on the page. Edit the CSS selector to hide more or less, then save it as your own rule for that site.
Every rule you created, in one list. Delete one to undo it.
If a site does not work with Shield, turn Shield off for that site from its site info sheet. Your exceptions are listed in settings.
An extra layer for YouTube in the browser: it hides ad slots and skips any ad that still reaches the player.
Strict adds the two cookie-notice lists for stronger filtering. If a site needs it, switch back to Standard.
Measured numbers
Phone figures: vivo I2217, Android 16, release build, October 2026. Desktop figures: single thread, same 12 lists for both engines. The benchmark harness is in the app's source repository.
We ran 83,631 requests (9 request types, 8 page origins) through Arivna Shield and through uBlock Origin's own network engine (@gorhill/ubo-core 0.1.30), with the same lists.
| Both block | 76,492 |
|---|---|
| Both allow | 7,135 |
| Only uBlock Origin blocks | 0 |
| Only Arivna blocks | 4 |
| Agreement | 99.995% |
Three of the four differences are reason=malicious rules that ubo-core 0.1.30 is too old to read; one is a URLhaus rule ubo-core misses when all lists are loaded. $removeparam gave identical results on all 3,291 test addresses. Cosmetic filters and scriptlets were not part of this comparison, because ubo-core has no cosmetic engine.
Desktop, best of five runs, uBlock Origin's engine warmed up.
| Task | Arivna | ubo-core |
|---|---|---|
| Build from lists | 234 ms | 1,151 ms |
| Check one request | 3.2 µs | 2.9 µs |
$removeparam per address | 26.7 µs | 27.4 µs |
| Memory after build | 33 MB | 37 MB |
| Load from cache | 15 ms | 142 ms |
| Cache size | 10.7 MB | 14.3 MB |
uBlock Origin's engine is about 10% faster per request. Arivna is about 5× faster to build and about 9× faster to restore from cache.
What we did not measure. Whole-page load times: they are dominated by the network and WebView and varied by more than half a second between identical runs. Arivna against other browsers on the same phone. Cosmetic filtering against the real uBlock Origin extension.
Shield, the benchmark and the app are open source.