文章目录
需求
安装完毕后,正常打开貌似没什么广告资源要去除的需要,
界面也比较简单,貌似很完美,但是等我们退出的时候,
就会弹出下面的广告界面,如何去广告就是本章的内容。
按照之前的逻辑,我们现在应该获取顶层的activity。
直接在CMD输入“ adb shell dumpsys activity top ”。
动态Activity
Activity分为静态的和动态的区分,
静态的就是很多配置都直接写死到标签内的,
而动态的是可以被继承的。
使用jadx打开该软件,在这个代码中,
稍微往下看看就翻到了一个显眼的东西,一个URL网址。
复制打开一波,哦呼,就是刚刚看到的广告。
去广告思路
打开AK,直接搜索对应的网址,
直接将代码中的url删除,回编译,安装。在退出试试。
没有广告,但是还存在白框。
小思路,换url为自己的广告,似乎又发现一条发财致富的路子,手动滑稽。
回到JDAX中继续看看代码,
这个网址下边存在一个重点,即45行,开启/启动服务。
现在的重点,就是不让程序“ startService”(启动服务)。
其实,当看到这个关键点的时候,也就意味着定位到了突破点。
AK搜索“startService”,发现结果有点多,
结合获取的地址“com.AddDouDouWall2.WebPageDownLoadMainActivity”,
可以定位到具体的地址。
找到了调用的地方,invoke-virtual是调用的意思。
直接注释掉197行,回编译回去试试能不能达到去广告的情况。
经过测试不行。
返回jadx,直接回去查找StartServer所属于的类的“用例”,向上翻。
找到后类名字“WebPageDownLoadMainActivity”,直接右击,选择“查找用例”。
一眼就看到这个“startActivity”。
4946行,假设有网络,就执行4947行的代码。
看看上下代码,大概意思是,假设没网络就关闭程序,但是有网络就加载广告。
所以上边的注释没什么用,先取消刚刚上边的注释。
去AK中找到此类,com.speedsoftware.rootexplorer。
找到,选择“onDestroy”方法,
22780行,这个V0就是代表网络的意思,
假设有网络则跳转到“ :cond_0 ”(即广告)去。
所以我们直接将判断的地方,改为“ if-nez ”,
回编译安装,点击退出,没有跳转到广告节目,直接退。
注意的是:
不要直接注释掉22780行,因为直接注释掉的话,
他都不判断是否存在网络直接跳转到广告界面去。