第一部分:软件准备。 1.apktool————对apk执行分解(反编译)和合成(编译)的工具 2.dex————对classes.dex分解(dump)和合成(build)的工具 3.APKsign————apk签名工具 4.notepad++或者Em edit————文本编辑工具 5.java环境变量配置————apk签名需要 前三个工具打包为a.d.cn文件如下可下载: 第二部分:去广告原理。 先简单了解下软件的广告原理(可参考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的广告代码为: <com.admob.android.ads.AdView android:id=”@+id/ad” android:layout_width=”fill_parent” android:layout_height=”wrap_content” /> Google Ads的广告代码为: <com.google.ads.GoogleAdView android:id=”@+id/adview” android:layout_width=”wrap_content” android:layout_height=”wrap_content” /> 广告下载源 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文件夹内(可改名,改得简单易于操作)。 2.反编译 运行run.bat文件,cmd窗口中输入命令 apktool_d_*.apk 如图(解释:d为dump缩写,反编译的意思。) 如下图为反编译成功。 然后将在apktool文件夹中生成一个文件夹,名称为apk的名称,这个文件夹里的文件就是组成apk的文件。 本帖隐藏的内容需要回复才可以浏览3.修改
打开
notepad++,按
ctrl+F,调出搜索对话框,如图:
记得要搜索目录,选第三个选项卡。 我们需要搜索的关键词一般主要有以下几个: admob.com admob google.com http:// 如下图:notepad++下面会显示搜索出来的文件位置,点击跳转到相应的文件,一般为*.smali文件。 然后我们将http:// 开头的字符串改成0.0.0.0或者127.1.1.1等无效的ip。使广告源无法访问。改完记得保存文件。 如果搜索的是非IP地址,那么将字符串该乱即可,例如google.com改成a.com等,个人经验而谈。 4.编译 保存文件后将进行编译。在CMD命令提示符后输入命令 apktool_b_文件夹名_*.apk (解释:b为build缩写,编译的意思。) 如上图过程为编译成功,此时将在apktool文件夹中生成一个 *.apk文件,这个就是编译后得到的文件。 5.签名 运行APKsign目录下的APKsign.exe,得到窗口: 选择好APK所在目录,签名后文件爱你保存的目录,点击制作签名。稍片刻会有个签名成功的确认按钮,点击确认结束。 得到签名后的apk文件。接下来安装测试即可。 —————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— 至于前面提到的Res\layout内的xml中的代码处理:简单介绍下: Admob的广告代码为: <com.admob.android.ads.AdView android:id=”@+id/ad” android:layout_width=”fill_parent” android:layout_height=”wrap_content” /> Google Ads的广告代码为: <com.google.ads.GoogleAdView android:id=”@+id/adview” android:layout_width=”wrap_content” android:layout_height=”wrap_content” /> 通过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文件。 放入a.d.cn/dex/文件夹中,如图 然后运行dump.bat对classes.dex文件反编译,得到out文件夹,如下图 然后进行上述教程中的“ 3.修改”部分。但是搜索的目录要改成这个out文件夹。 修改完毕后保存文件,运行build.bat,稍等片刻会生成out.dex文件,如下图 然后将out.dex重命名为classes.dex,用解压缩软件替换到APK中,进行签名即可。 |
apk软件去广告 傻瓜教程
最新推荐文章于 2024-07-29 16:36:10 发布