3.寻找广告页面和代码
要找到广告页面的Activity,将手机连接电脑,在Android Studio或Eclipse的logcat中会输出日志,在日志搜索栏输入“ActivityManager”,这样启动广告页面时,log中就能看到Acitivty的全名,然后在jd-gui中找到这个Activity。
分析代码:
广告主要使用了adStream和adwo这两个view,它们分别在adInit_av() 和 adInit_aw()这两个方法中初始化和添加到页面。如果修改这两个方法,不让它们初始化和添加,那么就达到目的了,同时其他用到这两个view的地方要进行判断,防止引起程序崩溃,幸运的是原代码中已经对它们进行了空判断。
3.解包修改smali汇编代码
找到广告页面和方法后需要修改,直接改jar文件肯定是不行的,需要对原apk文件进行解包,解包后生成的smali文件可以直接用文本编辑器修改。解包使用apktool,将apk文件(如果刚才改成了.zip,就改回.apk)复制到apktool文件夹下,输入命令(xx.apk换成实际名字):
apktool d xx.apk
apktool解包.png
注意:apktool工具版本太老可能会解包失败,这时需要下载一个较新版本的
很快在相同文件夹下就能看到解包后的文件夹,与apk同名
解包.png
进入解包生成的目录中,看到文件夹基本与直接解压类似,不同的是生成了smali文件夹,生成的汇编代码都在里面,目录结构跟包名相同
解包后目录.png