[G2 and Desire Z Android Development] minotauri:
update: This method is for use with Temp-Root with Visionary app. For permanent root, you can just use the adfree app, which is free in the market. Alternatively, you can still use the manual temp-root method with permanent root if you don't want an extra app. Just run the adblock-startup.sh file once, and then use the wget script whenever you want to do an update of the hosts file!

After trying out a few things to get ad free working on startup, I was able to get it going without actually using the app. I used the basic concept of the app, but basically am performing it in command lines.

For this, I used GScripts to run/edit scripts, and Visionary to do a temp-root.

If you want to skip all of this, and go to a completely automated script, see updates at bottom.

First, create a script, adblock-wget.sh, to download the latest hosts file which blocks certain sites. It pulls the file from a website that contains updated hosts files and stores it in /data/data/:

##adblock-wget.sh##

wget http://209.68.48.119/winhelp2002/hosts.txt -O /data/data/hosts

This can be done in GScripts, and run every couple days to get the latest copy. Make sure you have SU checked in the script.

Second, we need to make another script, adblock-startup.sh which removes the existing hosts file in /system/etc/ and then create a symlink to the hosts file we just obtained on the internet in /data/data/

##adblock-startup.sh##

mount -o remount,rw /dev/block/mmcblk0p25 /system
rm /etc/hosts
ln -s /data/data/hosts /system/etc/hosts
mount -o remount,ro /dev/block/mmcblk0p25 /system

finally, you'll need to add this script to visionary.sh. if you created it in gscripts, one easy method is to long press the script in the menu, and save to SD. it'll be placed in your /sdcard/gscript/ folder.

to place this newly created script in visionary.sh, open up your current visionary.sh file, and place this line in it:

##visionary.sh##

sh /sdcard/gscript/adblock-startup.sh #change to correct directory
busybox killall system_server #this hot reboot is optional

the last line in that script performs a quick reboot, which retains temp-root and hopefully clears the DNS caches if you are still seeing ads pop up.

- - - - -

[UPDATE 11/03/2010]

I added the scripts in a zip file attached.

[update 11/04/2010]

if you dont want to manually update, you can just add the wget function into the installation script shown below. This will download the latest ad block updates at start-up, so you will not need to manually update later.

## adblock.sh ##

wget http://209.68.48.119/winhelp2002/hosts.txt -O /data/data/hosts
mount -o remount,rw /dev/block/mmcblk0p25 /system
rm /etc/hosts
ln -s /data/data/hosts /system/etc/hosts
mount -o remount,ro /dev/block/mmcblk0p25 /system

for this method, just place the same info in visionary.sh:

##visionary.sh##

sh /sdcard/gscript/adblock.sh
busybox killall system_server

replace the location to where you end up putting adblock.sh. :)

working example files are attached.

- - - - -

please note that you can change some of these steps to fit what other items you have running at startup.

if you're able to find a better method to perform this, please let me know! I was unable to run these commands directly within visionary.sh, so i had to make these links.

Thanks!

credits go to "Microsoft MVPs" for maintaining the HOSTS ad blocking file, delta_foxtrot2 who discovered and made the AdFree app :)