root なしでAndroidのアプリのNW通信を遮断できる便利なアプリ noRoot Firewallを使っているのですが、広告表示を抑えるためにドメイン名を登録するのは手動でしかできず、大量のドメイン登録は骨が折れます。
そこで、それを自動化できるスクリプト norootfirewallAdsFilterConverter.sh を使ってみました。
このスクリプトを使うには、PC に adb がインストールされている必要があります。また bash や tar pax 等の Unix 系コマンドや sqlite が使える必要があり、今回は Windows + Cygwin を使ってみました。
※ Cygwin のインストール、使い方ははここでは説明しません。
ブロックドメインリストのインポートの仕組みは、PC 上の adb コマンドを使って、スマホ上の noRoot Firewall のデータベースをバックアップし、リストをこのデータベースにメージして、スマホにこのデータベースをリストアするというものです。
このスクリプト、使うのは簡単で、zipファイルをダウンロードし、展開しておきます。また展開先のフォルダには、abe.jar ファイルが必要なので、こちらからダウンロードして配置しておきます。
スマホをUSBデバックモードにし、PCにつなぎます。
Cygwinのコンソールを開き、adb コマンドが使えるようにしておきます。そして、このスクリプトを実行します。するとこのようなメニューが出てきます。
$ ./norootfirewallAdsFilterConverter.sh Select option: ------------------------------------------- Run once for setup 1 Create example primary custom filter file 2 Create example filter url file ------------------------------------------- Run in sequence to update filters, or run only one option 3 Download filter 4 Get backup.ab from device 5 Unpack backup.ab 6 Convert filter 7 Pack backup_new.ab 8 Save backup_new.ab to device 9 Exit ------------------------------------------- Option:
あとは、上から順番に実行していくだけです。
デフォルトでは、スクリプト内で以下のリストをダウンロードするように書かれており、これらのリストがそのまま適用されます。(6を実行時に選択することも可能です)
urls="https://easylist-downloads.adblockplus.org/easylist.txt https://easylist-downloads.adblockplus.org/easylistgermany.txt https://easylist-downloads.adblockplus.org/fanboy-social.txt https://easylist-downloads.adblockplus.org/easyprivacy.txt https://easylist-downloads.adblockplus.org/fanboy-annoyance.txt https://secure.fanboy.co.nz/r/fanboy-complete.txt https://secure.fanboy.co.nz/r/fanboy-ultimate.txt https://raw.githubusercontent.com/Hubird-au/Adversity/master/Adversity.txt https://raw.githubusercontent.com/Hubird-au/Adversity/master/Antisocial.txt"
自分専用のカスタムリストを使用したい場合は、list_primary_custom_in.txt というファイル名でリストを作成しておけばOKです。
noRoot Firewall は、ワイルドカードが使えるので、ファイルには、
*.xxxxxx.jp *.hogehoge.jp
のように書けます。
変更後は、6,7,8 を再実行すれば、カスタムリストを反映できます。
PS
デフォルトフィルタを全部適用すると、かなり動作が重たくなってしまうので、厳選した方がよいかも