:apk软件去广告 傻瓜教程

来源:百度文库 编辑:九乡新闻网 时间:2024/05/03 17:41:42

第一部分:软件准备。

1.apktool————对apk执行分解(反编译)和合成(编译)的工具
2.dex————对classes.dex分解(dump)和合成(build)的工具
3.APKsign————apk签名工具
4.notepad++或者Em edit————文本编辑工具
5.java环境变量配置————apk签名需要

前三个工具打包为a.d.cn文件如下可下载:

本帖隐藏的内容需要回复才可以浏览

a.d.cn.zip (4.08 MB)下载次数: 302
2011-8-17 21:19
notepad 5.9_installer.zip (5.18 MB)下载次数: 218
2011-8-17 21:20

第二部分:去广告原理。

先简单了解下软件的广告原理(可参考apk文件的组成,见帖http://android.d.cn/bbs/thread-38605-1-1.html)
一个软件若要显示广告,需要先导入SDK,并在AndroidManifest.xml中注册。
Res\layout内的xml文件就包含有广告界面的配置代码,修改这些代码改变广告显示的大小就可以去除广告界面。
只是单单不显示广告,软件还会下载广告所需的数据,那么就要修改代码来屏蔽广告下载源。

目前Android的广告供应商有两个,一个是Admob,一个是Google Ads,前者已被后者收购,但两者SDK依然独立。
另外国内还有casee.cn,但十分不常见。


Res\layout内的xml文件广告代码一般格式如下:
Admob的广告代码为:


Google Ads的广告代码为:


广告下载源
Admob的广告下载源:
http://r.admob.com/ad_source.php
http://mm.admob.com
http://api.admob.com
Google Ads的广告下载源:
http://pagead2.googlesyndication.com/pagead/afma_load_ads.js

以上广告源是比较规范的广告源,但是现在市面的软件广告源十分不规范,即使屏蔽了上述广告源,软件还是可能显示广告的。

第三部分:实际操作

1.准备apk
将apk文件放入apktool文件夹内(可改名,改得简单易于操作)。
下载 (84.78 KB)
2011-8-17 21:17

2.反编译
运行run.bat文件,cmd窗口中输入命令 apktool_d_*.apk 如图(解释:d为dump缩写,反编译的意思。)

下载 (51.28 KB)
2011-8-17 21:17
如下图为反编译成功。
下载 (46.56 KB)
2011-8-17 21:17
然后将在apktool文件夹中生成一个文件夹,名称为apk的名称,这个文件夹里的文件就是组成apk的文件。

本帖隐藏的内容需要回复才可以浏览

3.修改
打开notepad++,ctrl+F调出搜索对话框,如图:
下载 (114.27 KB)
2011-8-17 21:17
记得要搜索目录,选第三个选项卡。
我们需要搜索的关键词一般主要有以下几个:
admob.com admob google.com http://
如下图:notepad++下面会显示搜索出来的文件位置,点击跳转到相应的文件,一般为*.smali文件。
下载 (504.54 KB)
2011-8-17 21:18
然后我们将http:// 开头的字符串改成0.0.0.0或者127.1.1.1等无效的ip。使广告源无法访问。改完记得保存文件。

如果搜索的是非IP地址,那么将字符串该乱即可,例如google.com改成a.com等,个人经验而谈。
下载 (86.77 KB)
2011-8-17 21:18

4.编译
保存文件后将进行编译。在CMD命令提示符后输入命令 apktool_b_文件夹名_*.apk (解释:b为build缩写,编译的意思。)
下载 (41.67 KB)
2011-8-17 21:18
如上图过程为编译成功,此时将在apktool文件夹中生成一个*.apk文件,这个就是编译后得到的文件。


5.签名
运行APKsign目录下的APKsign.exe,得到窗口:
下载 (105.14 KB)
2011-8-17 21:18
选择好APK所在目录,签名后文件爱你保存的目录,点击制作签名。稍片刻会有个签名成功的确认按钮,点击确认结束。
得到签名后的apk文件。接下来安装测试即可。
下载 (3.2 KB)
2011-8-17 21:18

——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

至于前面提到的Res\layout内的xml中的代码处理:简单介绍下:

Admob的广告代码为:


Google Ads的广告代码为:



通过notepad++将搜索路径定位到res文件夹(就是反编译后的res文件夹),代码只搜索开头就行了,如:com.admob.android.ads.AdView 和 com.google.ads.GoogleAdView。android:layout_width="fill_parent" 修改为 android:layout_width="0.0dip"
android:layout_height="wrap_content" 修改为 android:layout_height="0.0dip"

此过程就是将广告显示的位置缩小到0像素,即可完成不显示广告,但现在广告源泛滥,可能有时不奏效的,所以还要按照上述操作进行。


———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

本帖隐藏的内容需要回复才可以浏览

关于无法通过apktool反编译,或者编译不成功,或者编译成功安装出错的软件,去广告的办法。(其实去广告完全可按以下操作完成)

直接解压缩软件(rar,7z等)打开apk,提取其中的classes.dex文件。
下载 (77.64 KB)
2011-8-17 21:37

放入a.d.cn/dex/文件夹中,如图
下载 (61.71 KB)
2011-8-17 21:37

然后运行dump.bat对classes.dex文件反编译,得到out文件夹,如下图
下载 (26.02 KB)
2011-8-17 21:37
然后进行上述教程中的“3.修改”部分。但是搜索的目录要改成这个out文件夹。

修改完毕后保存文件,运行build.bat,稍等片刻会生成out.dex文件,如下图

下载 (33.96 KB)
2011-8-17 21:37
然后将out.dex重命名为classes.dex,用解压缩软件替换到APK中,进行签名即可。