福利大放送,使用Xpatch开发无广告腾讯视频和爱奇艺,附App下载链接

https://mp.weixin.qq.com/s/oRDEm_e_njZIQOwgLIxxvg

前言

本公众号推出的Xpatch工具也有一段时间了,但一直没有介绍详细的应用案例。今天就给大家介绍利用Xpatch实现一个非常实用的功能,腾讯视频App和爱奇艺App去广告功能。

如何去广告

为了破解腾讯视频,首先我们需要反编译Apk,获取Java源码。庆幸的是腾讯视频没有做加固处理,使用jadx工具可以反编译成功。
获取到源码后,通过分析源码,我们发现一个叫做 VideoInfo的类:

  1. // com.tencent.qqlive.ona.player.VideoInfo.java
  2. public class VideoInfo {
  3. ....
  4. private boolean isAd;
  5. private boolean isAdSkip;
  6. private boolean isAutoPlay;
  7. private boolean isAutoPlayNext;
  8. private boolean isBlockAutoPlay;
  9. private boolean isCharged;
  10. ....
  11. private boolean isHotChannelPlayer;
  12. private boolean isHotspot;
  13. private boolean isMiniVideo;
  14. private boolean isNotStroeWatchedHistory;
  15. private boolean isTryWatch;
  16. private boolean isUserCheckedMobileNetWork;
  17. private boolean isVip7CanPlay;
  18. ....
  19. public boolean isAdSkip() {
  20. return this.isAdSkip;
  21. }
  22. ....
  23. }

这个类没有做混淆处理,很可能是从服务端返回的每个video的信息,其中有一个成员变量叫做 isAdSkip,很可能就是用来控制广告播放与否的字段。 为了验证这种猜想,写个Xposed插件,将获取这个参数值的方法 isAdSkipHook掉,使其返回true。Hook代码如下:

  1. // kotlin
  2. findAndHookMethod("com.tencent.qqlive.ona.player.VideoInfo",
  3. classLoader,
  4. "isAdSkip",
  5. object : XC_MethodHook() {
  6. override fun beforeHookedMethod(param: MethodHookParam) {
  7. param.result = true
  8. }
  9. })

让Xpatch重打包后的腾讯视频app加载这个Xposed插件,启动后发现,播放任何一个视频都没有广告了,因此,成功实现腾讯视频广告破解.

爱奇艺的破解过程类似,只是破解的点不太一样,爱奇艺app中视频信息的实体类中并没有包含类似 isAdSkip的变量。爱奇艺反编译后的代码比腾讯视频复杂很多,而且很多核心的代码都是在Native中实现的,因此暂时没能完美实现广告破解。
通过不断尝试,发现hook StateManager类的 updateVideoType方法,使其返回空,可以实现二次打开视频无广告。也就是说,需要点击点击一个视频进入播放页,再返回,再进入此视频播放页,此时便无广告。具体hook代码如下:

  1. // kotlin
  2. XposedHelpers.findAndHookMethod("com.iqiyi.video.qyplayersdk.player.state.StateManager",
  3. classLoader,
  4. "updateVideoType",
  5. Int::class.java,
  6. object : XC_MethodReplacement() {
  7. override fun replaceHookedMethod(param: MethodHookParam?): Any? {
  8. return null
  9. }
  10. })

Xposed插件

有了以上的hook代码,写成一个Xposed插件就很容易了。 完整代码已经上传到了笔者的Github上,地址为: https://github.com/WindySha/RemoveVideoAdsPlugin 编译出来的插件apk可以在Release页面下载: https://github.com/WindySha/RemoveVideoAdsPlugin/releases

利用Xpatch制作无广告App

Xpatch(https://github.com/WindySha/Xpatch)是笔者开发的一个免Root加载Xposed插件的工具。利用Xpatch和上面的插件apk可以制作一个无广告的腾讯视频App和爱奇艺App,具体流程如下:

  1. 下载Xpatch Jar包,下载链接为:https://github.com/WindySha/Xpatch/releases/download/v1.3/xpatch-1.3.zip;
  2. 下载腾讯视频apk(爱奇艺apk)以及上文的无广告Xposed插件apk;
  3. 在PC的终端执行如下命令: $ java-jar../xpatch.jar../tencent_video.apk-xm../xposed_module.apk
  4. 命令执行完成之后,在tencentvideo.apk相同的目录下,会生成一个名称为tencentvideo-xposed-signed.apk,卸载掉设备上原来的apk,安装这个无广告的apk即可。

福利下载

为了方便大家使用,笔者通过上面方法,制作出了这个两个无广告apk,百度网盘下载链接为:

  1. 腾讯视频无广告版本:https://pan.baidu.com/s/18nKg7AM-Rwb0y0SWi5Vkow
  2. 爱奇艺无广告版本: https://pan.baidu.com/s/1X_sTJPGobChO1tNoTENFTg

关注本公众号可获取到提取码。 再次温馨提醒:爱奇艺需要进入播放页后退出播放页,再次进入才会无广告。

文件提取码

先关注本公众号:Android葵花宝典


发表评论

电子邮件地址不会被公开。 必填项已用*标注