長く愛用してきたキラーアプリが買収されたら広告だらけになってしまった、というきっかけから興味を抱いた 広告ブロック アプリは、近年では コンテンツブロッカー とも称されているようですね。数多く存在するそんなアプリの中から今回は、root権限不要なVPN型の DNS66 と、VPN型・root型どちらでも選べる AdAway の2つのアプリを試してみました。
DNSブロックの2つの異なるアプローチ
今日の広告ブロックでポピュラーなDNSブロックは、広告コンテンツへのトラフィックへのアクセスではなく、それ以前のDNSリクエストをブロックしてしてしまうものです。
実際にはDNSによる名前解決の前に参照されるシステムのhostsファイル(
/system//etc/hosts
や
/data/data/hosts
など)に、ブロックしたいホスト名を列記し、それらを
localhost
(127.0.0.1)に引き当ててしまうことで、外へは何もアクセスしないようにするしくみです。
但し、こうしたシステムのhostsファイルを改変するにはroot権限が必要になるため、広告ブロックと言えばroot奪取、というのが自分の中の理解でした。
非rootにおけるDNSブロックはまず、すべてのトラフィックが通過する疑似的なVPNをシステム内に立ち上げ、予め登録しておいたブラックリストに合致しないDNSリクエストだけが通過を許されるように、ルーティングするもののようです。
DNS66(VPN型・非root)
非root端末で広告ブロックしたい時にまず思い当たるのがこのDNS66。こうしたアプリはその性質上、Google Play Storeには置いてもらえないので、開発者のサイトからインストールに必要なapkファイルを調達するのが通例です。
DNS-based Host Blocker (and lightweight ad blocker) for Android – GitHub – julian-klode/dns66: DNS-based Host Blocker (and lightweight ad blocker) for Android GitHub – julian-klode/dns66: DNS-based Host Blocker (and lightweight ad block… – GitHub |
もしくはこうしたオープンソースアプリを扱う「野良ストア」F-Droidから入手可能です。いずれの方法でも執筆当時最新のv0.6.8をダウンロード可能でした。
Block ads/hosts via DNS DNS66 | F-Droid – Free and Open Source Android App Repository – f-droid.org |
org.jak_linux.dns66_29.apk 3,819,196 byte
ダウンロードしたapkファイルをファイルマネージャアプリでタップしてインストールします。そしてインストール後にアプリが必要とした権限は次の通り。
インストール後のアプリ初回起動時には、何も設定が無いのでまず、右上の縦ゴマアイコンより、「デフォルトの設定を読み込み」ます。そしてアプリはシステムに対してVPN設定を追加しようとするので、これを許可します。
ブロックをデバイス起動時から自動的に有効とすることができたり、ブラックリストやホワイトリスト、カスタムDNSや対象アプリの指定と多くの設定項目を自由に触れますが、もちろん面倒であればリスト類はデフォルトで入っているものでも十分です。
DNS66稼働中はステータスバーにブロック有効中のアイコンと、VPN接続中を示すアイコンが表示され、MX Playerの少し性格の悪い広告もすっきり消すことが出来ました。
このようにDNS66は豊富なカスタマイズ性を有する広告ブロックアプリであるものの、VPN型ブロッカーの宿命として他のVPN接続と同時使用が出来ないという制限からは逃れられないことから、次ページではroot型の広告ブロックアプリの例として、AdAwayを試してみます。
投稿 Android広告ブロックアプリ AdAway と DNS66 は Fun Scripting 2.0 に最初に表示されました。