Xposed研究--网易云阅读去开机广告

本人语文很差,语言组织能力不好,想到哪里写到哪里吧...

最近在用网易云阅读看小说,发现每次打开都有广告,烦人,去之!!

准备工具:

1.安装了xposed的手机(废话!)

2.网易云阅读app(我用的5.4.1.87版本)

3.jadx(反编译用)

4.AndroidStudio(编写xposed插件)

开始:

首先研究下app的广告规律,打开app,先是闪屏页,然后进入主页(或广告页-主页),那么进入广告页的逻辑在闪屏页内.

打开app,运行到主页,执行adb命令:adb shell dumpsys activity top  查看主页是MainGridActivity


Xposed研究--网易云阅读去开机广告_第1张图片

jadx打开app,打开manifest

找到包名:com.netease.pris

启动页是:com.netease.pris.activity.PRISActivityFlasScreen

我们的目的就是从PRISActivityFlasScreen直接进入到MainGridActivity,跳过广告页

打开PRISActivityFlasScreen

Xposed研究--网易云阅读去开机广告_第2张图片

有一个延时操作,应该是闪屏页待300毫秒,之后进行下个页面跳转,发现最后的else里像是我们的目标

不着急,先看下这些判断里都做了什么

PrisStartActivity.a(this.a, true, false);如下:

Xposed研究--网易云阅读去开机广告_第3张图片

跳转的是PrisStartActivity,不对

再看MainGridActivity.b(this.a);如下:

Xposed研究--网易云阅读去开机广告_第4张图片

跳转到MainGridActivity,就是这个了

好,目标明确,让c.r()和c.m(e)直接返回false,直接进入else就好了

不慌,看看这两个方法是干啥的

Xposed研究--网易云阅读去开机广告_第5张图片


Xposed研究--网易云阅读去开机广告_第6张图片

c.r()应该是判断是否首次登录,c.m(e)应该是判断是否最新版本,进行更新啥的...不管了,直接返回false

xposed代码如下:

Xposed研究--网易云阅读去开机广告_第7张图片

好,xposed框架内,选中,重启,打开app,发现没用,还是有广告...[笑哭]

仔细看看else里的MainGridActivity.b(this.a);吧

Xposed研究--网易云阅读去开机广告_第8张图片

发现它带了个参数进去need_start_cover,是否开启覆盖(难道是广告?),不让他带这个参数了试试,怎么做呢?

一个方法是:拦截这个方法,自己构建一个intent去启动.

再一个方法是...看看上面有个不带这个参数的a方法...那就拦截b方法,直接反射去执行a方法,代码如下:

Xposed研究--网易云阅读去开机广告_第9张图片

安装-重启-打开app,没有广告了,直接进入主页了...任务完成,美滋滋

Xposed研究--网易云阅读去开机广告_第10张图片

你可能感兴趣的:(Xposed研究--网易云阅读去开机广告)