[Tasker Tips & Tricks] mkhcb:
Thread is a work in progress. Started the draft on my phone. Please wait a bit before flooding with complaints

Oftentimes I find myself wanting to use Google shopping or Slickdeals. However, AdAway host file often block these links. Although I can whitelist a select # of links, it virtually breaks adblocking everywhere, since many apps and website use the same ad services.

So I created this task that allows me to quickly enable/disable AdAway from quick settings. This is independent from the AdAway app and you don't need to have the AdAway app. It does however, use AdAway online repro to produce the same result.

What is needed:

Root (if you use systemless root, like MagiskSU, ensure that you enable systemless host in the settings)

Tasker

QuickTask

(free app in the play store)

Step 1, create the quick task button: Open QuickTask and create a button called AdAway (self explanatory)

Step 2, create the Tasker task and profile:

Import the XML from the code below or from the attached XML file below

Code:

<TaskerData sr="" dvi="1" tv="5.0u3m">
<Profile sr="prof9" ve="2">
<cdate>1496602694841</cdate>
<edate>1503239398635</edate>
<id>9</id>
<mid0>11</mid0>
<nme>AdAway QS</nme>
<Event sr="con0" ve="2">
<code>1565789502</code>
<pri>0</pri>
<Bundle sr="arg0">
<Vals sr="val">
<com.balda.quicktask.extra.EVENTS>0</com.balda.quicktask.extra.EVENTS>
<com.balda.quicktask.extra.EVENTS-type>java.lang.Integer</com.balda.quicktask.extra.EVENTS-type>
<com.balda.quicktask.extra.INT_VERSION_CODE>30</com.balda.quicktask.extra.INT_VERSION_CODE>
<com.balda.quicktask.extra.INT_VERSION_CODE-type>java.lang.Integer</com.balda.quicktask.extra.INT_VERSION_CODE-type>
<com.balda.quicktask.extra.OPERATION>0</com.balda.quicktask.extra.OPERATION>
<com.balda.quicktask.extra.OPERATION-type>java.lang.Integer</com.balda.quicktask.extra.OPERATION-type>
<com.balda.quicktask.extra.TILES><StringArrayList sr=""><_arrlst_com.balda.quicktask.extra.TILES0>AdAway</_arrlst_com.balda.quicktask.extra.TILES0></StringArrayList></com.balda.quicktask.extra.TILES>
<com.balda.quicktask.extra.TILES-type>java.util.ArrayList</com.balda.quicktask.extra.TILES-type>
<com.twofortyfouram.locale.intent.extra.BLURB>AdAway</com.twofortyfouram.locale.intent.extra.BLURB>
<com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type>
<net.dinglisch.android.tasker.RELEVANT_VARIABLES><StringArray sr=""><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0>%qtname
Tile name
Name of tile pressed</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1>%qtevent
Tile name
Event: tap or double tap</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2>%qtstatus
Current tile status
It can be: Enabled, Disabled</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2></StringArray></net.dinglisch.android.tasker.RELEVANT_VARIABLES>
<net.dinglisch.android.tasker.RELEVANT_VARIABLES-type>[Ljava.lang.String;</net.dinglisch.android.tasker.RELEVANT_VARIABLES-type>
<net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled>
<net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type>
</Vals>
</Bundle>
<Str sr="arg1" ve="3">com.balda.quicktask</Str>
<Str sr="arg2" ve="3">com.balda.quicktask.ui.QueryTileActivity</Str>
</Event>
</Profile>
<Task sr="task11">
<cdate>1496603118566</cdate>
<edate>1503239398635</edate>
<id>11</id>
<nme>AdAway</nme>
<Action sr="act0" ve="7">
<code>37</code>
<ConditionList sr="if">
<Condition sr="c0" ve="3">
<lhs>%qtstatus</lhs>
<op>2</op>
<rhs>Disabled</rhs>
</Condition>
</ConditionList>
</Action>
<Action sr="act1" ve="7">
<code>548</code>
<Str sr="arg0" ve="3">Enabling AdAway</Str>
<Int sr="arg1" val="0"/>
</Action>
<Action sr="act10" ve="7">
<code>123</code>
<Str sr="arg0" ve="3">echo "127.0.0.1 localhost
::1 localhost" >> /etc/hosts</Str>
<Int sr="arg1" val="0"/>
<Int sr="arg2" val="1"/>
<Str sr="arg3" ve="3"/>
<Str sr="arg4" ve="3"/>
<Str sr="arg5" ve="3"/>
</Action>
<Action sr="act11" ve="7">
<code>548</code>
<Str sr="arg0" ve="3">AdAway Disabled</Str>
<Int sr="arg1" val="0"/>
</Action>
<Action sr="act12" ve="7">
<code>38</code>
</Action>
<Action sr="act2" ve="7">
<code>508779925</code>
<Bundle sr="arg0">
<Vals sr="val">
<com.balda.quicktask.extra.IMAGE>check_bookmark</com.balda.quicktask.extra.IMAGE>
<com.balda.quicktask.extra.IMAGE-type>java.lang.String</com.balda.quicktask.extra.IMAGE-type>
<com.balda.quicktask.extra.INT_VERSION_CODE>31</com.balda.quicktask.extra.INT_VERSION_CODE>
<com.balda.quicktask.extra.INT_VERSION_CODE-type>java.lang.Integer</com.balda.quicktask.extra.INT_VERSION_CODE-type>
<com.balda.quicktask.extra.OPERATION>3</com.balda.quicktask.extra.OPERATION>
<com.balda.quicktask.extra.OPERATION-type>java.lang.Integer</com.balda.quicktask.extra.OPERATION-type>
<com.balda.quicktask.extra.STATE>0</com.balda.quicktask.extra.STATE>
<com.balda.quicktask.extra.STATE-type>java.lang.Integer</com.balda.quicktask.extra.STATE-type>
<com.balda.quicktask.extra.TILE>AdAway</com.balda.quicktask.extra.TILE>
<com.balda.quicktask.extra.TILE-type>java.lang.String</com.balda.quicktask.extra.TILE-type>
<com.twofortyfouram.locale.intent.extra.BLURB>Change image AdAway</com.twofortyfouram.locale.intent.extra.BLURB>
<com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type>
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>com.balda.quicktask.extra.IMAGE</net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>java.lang.String</net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>
<net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled>
<net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type>
</Vals>
</Bundle>
<Str sr="arg1" ve="3">com.balda.quicktask</Str>
<Str sr="arg2" ve="3">com.balda.quicktask.ui.FireTileImageActivity</Str>
<Int sr="arg3" val="0"/>
</Action>
<Action sr="act3" ve="7">
<code>123</code>
<Str sr="arg0" ve="3">wget -O /sdcard/tasker/adblock/adaway.txt http://adaway.org/hosts.txt;

wget -O /sdcard/tasker/adblock/mvps.txt http://winhelp2002.mvps.org/hosts.txt;

wget -O /sdcard/tasker/adblock/hphosts.txt http://hosts-file.net/.%5Cad_servers.txt;

wget -O /sdcard/tasker/adblock/yoyos.txt http://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&mimetype=plaintext;</Str>
<Int sr="arg1" val="0"/>
<Int sr="arg2" val="1"/>
<Str sr="arg3" ve="3"/>
<Str sr="arg4" ve="3"/>
<Str sr="arg5" ve="3"/>
</Action>
<Action sr="act4" ve="7">
<code>123</code>
<Str sr="arg0" ve="3">sort -u /sdcard/tasker/adblock/*.txt > /etc/hosts</Str>
<Int sr="arg1" val="0"/>
<Int sr="arg2" val="1"/>
<Str sr="arg3" ve="3"/>
<Str sr="arg4" ve="3"/>
<Str sr="arg5" ve="3"/>
</Action>
<Action sr="act5" ve="7">
<code>548</code>
<Str sr="arg0" ve="3">AdAway Enabled</Str>
<Int sr="arg1" val="0"/>
</Action>
<Action sr="act6" ve="7">
<code>43</code>
<ConditionList sr="if">
<Condition sr="c0" ve="3">
<lhs>%qtstatus</lhs>
<op>2</op>
<rhs>Enabled</rhs>
</Condition>
</ConditionList>
</Action>
<Action sr="act7" ve="7">
<code>548</code>
<Str sr="arg0" ve="3">Disabling AdAway</Str>
<Int sr="arg1" val="0"/>
</Action>
<Action sr="act8" ve="7">
<code>508779925</code>
<Bundle sr="arg0">
<Vals sr="val">
<com.balda.quicktask.extra.IMAGE>check_bookmark_black</com.balda.quicktask.extra.IMAGE>
<com.balda.quicktask.extra.IMAGE-type>java.lang.String</com.balda.quicktask.extra.IMAGE-type>
<com.balda.quicktask.extra.INT_VERSION_CODE>31</com.balda.quicktask.extra.INT_VERSION_CODE>
<com.balda.quicktask.extra.INT_VERSION_CODE-type>java.lang.Integer</com.balda.quicktask.extra.INT_VERSION_CODE-type>
<com.balda.quicktask.extra.OPERATION>3</com.balda.quicktask.extra.OPERATION>
<com.balda.quicktask.extra.OPERATION-type>java.lang.Integer</com.balda.quicktask.extra.OPERATION-type>
<com.balda.quicktask.extra.STATE>1</com.balda.quicktask.extra.STATE>
<com.balda.quicktask.extra.STATE-type>java.lang.Integer</com.balda.quicktask.extra.STATE-type>
<com.balda.quicktask.extra.TILE>AdAway</com.balda.quicktask.extra.TILE>
<com.balda.quicktask.extra.TILE-type>java.lang.String</com.balda.quicktask.extra.TILE-type>
<com.twofortyfouram.locale.intent.extra.BLURB>Change image AdAway</com.twofortyfouram.locale.intent.extra.BLURB>
<com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type>
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>com.balda.quicktask.extra.IMAGE</net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>java.lang.String</net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>
<net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled>
<net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type>
</Vals>
</Bundle>
<Str sr="arg1" ve="3">com.balda.quicktask</Str>
<Str sr="arg2" ve="3">com.balda.quicktask.ui.FireTileImageActivity</Str>
<Int sr="arg3" val="0"/>
</Action>
<Action sr="act9" ve="7">
<code>123</code>
<Str sr="arg0" ve="3">truncate -s0 /etc/hosts</Str>
<Int sr="arg1" val="0"/>
<Int sr="arg2" val="1"/>
<Str sr="arg3" ve="3"/>
<Str sr="arg4" ve="3"/>
<Str sr="arg5" ve="3"/>
</Action>
</Task>
</TaskerData>

Step 3, enjoy