网上有很多去广告教程,但都要用到电脑对apk进行修改,很麻烦。今天我发个手机端教程,不用修改apk就能去广告。
去除广告的原理大家都知道,只要断网就能解决。遇到一般的软件(不需要联网的),我推荐用Droidwall这款安卓防火墙软件,它的白名单模式很好用。但是如果遇到需要联网的软件呢(比如快手)?阻止联网肯定不行,毕竟我们是要它联网,这时,hosts文件就帮大忙了。
hosts作用与windows xp相同,位于/system/etc目录下,广告免疫这款软件就是通过修改hosts,遮蔽广告源从而达到去广告的目的。而有时广告免疫更新了,手机依然有广告,就只好我们自己修改hosts文件来遮蔽广告了。
首先,去广告hosts的格式为: - 01.127.0.0.1 广告源地址
- 02.例:
- 03.127.0.0.1 www.admob.com
复制代码 准备好工具
1、re管理器(用修改hosts)
2、apk编辑器(用这个寻找广告源)
3、Shark for root(抓取数据包)
以快手动漫为例,先得到它的apk(这个可以从/data/app目录找到),复制到内存卡,用apk编辑器打开apk,再打开classes.dex,点击搜索图标,搜索http://,经过多次搜索,广告源地址出来了,如图:
长按可复制地址。
判断是否广告源要看个人经验,比如网址带有ad字眼之类的一般就是广告源。一个软件的广告源可能有多个,我们要仔细搜索,当然,大名鼎鼎的admob一眼就知道是广告,赶紧把地址添加到hosts试试。如果还有就是还有广告你没发现的,再重复找找看。
还有一些软件比较变态,广告地址没有出现在apk内,我们可以用抓包工具Shark for root抓取数据包从而知道广告源。
下面讲讲抓包技巧。首先清理后台联网程序,打开Shark,直接点start,按房子键后台,打开要去除广告的应用,等待广告显示出来,快速切换到shark,点stop;stop下面有个选项open capture file,点击它,如果截取的数据包太大会打开很久的,所以我们要尽可能截小一点。如图:
好多数据要怎么看?图中大小显示为0的就不用看了,一大串数据大小连续一样的也不用看,数据太大也不用看,主要看除上面3种外的数据,这个要有耐心,如图,楼主找到了
图中的还有下面的- 01.http://googleads.g.doubleclick.net
复制代码 看起来很可疑,要添加进hosts(说明一下里面的文字不能复制,要手工打字,楼主充满怨念)。
有些软件一打开就要更新各种数据(包括广告),造成数据包太大你会找得很辛苦的。
下面说明一下如何处理使截取数据包尽可能小。我们切回应用,随便点击一些选项,广告变了有木有!其实在那一瞬间,应用用我们宝贵的流量更新了广告!!嘿嘿,切回shark,start,切回软件,点击选项让它更新广告,广告一更新就切回shark点stop,怎么,数据很小吧,广告源就在里面。。剩下的你懂的。。
总结一下,遇到广告先用apk编辑器,不行了再用shark,添加完hosts要完全退出软件再测试广告,手机是否重启无所谓,最好重启一下。添加hosts要添加一个就测试一次,防止应用不能正常工作。这种去广告的方法优点在于一劳永逸,软件更新了依旧没有广告。如果你有更好的方法就别掖着藏着,欢迎跟帖讨论。
经过我的累积,我修改的hosts已经能免疫自己手机内全部广告了(这个我很有成就感的,说不定也免疫你手机的全部广告哦)。当然,我们也要支持软件作者,作者有钱了,才能给我们开发出更好的应用。
论坛限制,工具已打包,下载地址:
http://pan.baidu.com/share/link?shareid=61377&uk=237443581
|