I reworked my hosts-based adblock script based on these insights:
If I use a combination of different hosts-based domain lists (as above) I get 87% and 65% resp. with those two test tools.
If I convert and add domains from ublock’s lists to that I get 91% and 87% resp., even though this adds “only” a few thousand unique entries.
Therefore the script has grown quite complex:
- it converts uBO’s uAssets as far as possible to be used by /etc/hosts
- it downloads everything from firebog.net’s meta list plus Steven Black’s largest hosts file
- it combines and unique-sorts everything, adds a header and finally overwrites the old /etc/hosts
Ultimately it comes down to get a timely combination of as many sources as possible. I’m already re-inventing the wheel here; various more configurable solutions exist. But then, the whole thing is simple enough.
Keep in mind that uBO does more than domain blocking, and many adblock-specific rules can never be part of hosts-based blocking.
OTOH hosts-based blocking is always system-wide and very light on resources.
Anyhow, get the script with systemd service/timer here:
Notabug.org or
Framagit.org
Adjust to your liking.
Copy the shell script to /usr/local/bin/hostsupdate and the systemd files to /etc/systemd/system.
Start & enable the timer: systemctl start --now hosts.timer && systemctl enable hosts.timer