百度某盘 去启动广告教程 2种思路(没有成品)

爱必应

我觉得百度可以出个会员去广告的特权,我自己是超级会员,我个人感觉单个文件下载速度很不理想,2个还行。而且广告奇多,像一些横幅广告可以通过修改布局去掉,这个比较简单,但是启动广告如果修改了布局还是要等待才能进入主界面。所以要从dex入手。软件有签名校验,一键爆破即可,不怕麻烦可以手动修改dex,百度有教程。


方法一:禁止创建窗口

百度某盘 去启动广告教程 2种思路(没有成品)-图1

如图,软件启动时抓一下布局,可以发现布局id是【flash_fr_image】,classes2搜索一下,看看有什么结果。

百度某盘 去启动广告教程 2种思路(没有成品)-图2

有2个地方,定位到onCreateView方法的结果。其中关键代码如下:

  1.     .line 127
  2.     iget-object p1, p0, Lcom/baidu/netdisk/ui/advertise/FlashAdvertiseFragment;->mLayoutView:Landroid/view/View;
  3.     sget p3, Lcom/baidu/netdisk/R$id;->flash_fr_image:I
  4.     invoke-virtual {p1, p3}, Landroid/view/View;->findViewById(I)Landroid/view/View;
  5.     move-result-object p1
  6.     check-cast p1, Landroid/widget/ImageView;
  7.     iput-object p1, p0, Lcom/baidu/netdisk/ui/advertise/FlashAdvertiseFragment;->mFlashFixedImage(固定图片):Landroid/widget/ImageView;
  8.     .line 128
  9.     iget-object p1, p0, Lcom/baidu/netdisk/ui/advertise/FlashAdvertiseFragment;->mLayoutView:Landroid/view/View;
  10.     sget p3, Lcom/baidu/netdisk/R$id;->flash_fs_video:I
  11.     invoke-virtual {p1, p3}, Landroid/view/View;->findViewById(I)Landroid/view/View;
  12.     move-result-object p1
  13.     check-cast p1, Landroid/view/TextureView;
  14.     iput-object p1, p0, Lcom/baidu/netdisk/ui/advertise/FlashAdvertiseFragment;->mFlashFullVideo(全屏动画):Landroid/view/TextureView;
  15.     .line 129
  16.     iget-object p1, p0, Lcom/baidu/netdisk/ui/advertise/FlashAdvertiseFragment;->mLayoutView:Landroid/view/View;
  17.     sget p3, Lcom/baidu/netdisk/R$id;->flash_fs_image:I
  18.     invoke-virtual {p1, p3}, Landroid/view/View;->findViewById(I)Landroid/view/View;
  19.     move-result-object p1
  20.     check-cast p1, Landroid/widget/ImageView;
  21.     iput-object p1, p0, Lcom/baidu/netdisk/ui/advertise/FlashAdvertiseFragment;->mFlashFullImage(全屏图片):Landroid/widget/ImageView;
  22.     .line 130
  23.     iget-object p1, p0, Lcom/baidu/netdisk/ui/advertise/FlashAdvertiseFragment;->mLayoutView:Landroid/view/View;
  24.     sget p3, Lcom/baidu/netdisk/R$id;->flash_fr_video:I
  25.     invoke-virtual {p1, p3}, Landroid/view/View;->findViewById(I)Landroid/view/View;
  26.     move-result-object p1
  27.     check-cast p1, Landroid/view/TextureView;
  28.     iput-object p1, p0, Lcom/baidu/netdisk/ui/advertise/FlashAdvertiseFragment;->mFlashFixedVideo(固定动画):Landroid/view/TextureView;

百度某盘 去启动广告教程 2种思路(没有成品)-图3

可以清楚的看到创建的界面,改法比较简单,删掉即可。上面列出的代码全部删掉,启动广告即可去除。但是会有滑动效果,和手动点击跳过一致,有点拖泥带水的感觉,因此我不是很推荐这种方法。当然现在网上大多数的去广告版本都是这种效果,具体是不是这么改的我没去研究。

方法二:找到广告倒计时的老巢

通过MT管理器(或者用NP管理器,智友论坛有下载)的活动记录功能,可以发现他的启动顺序是com.baidu.netdisk.ui.Navigate→com.baidu.netdisk.ui.MainActivity。废话不多说,直接翻Navigate这个文件。

百度某盘 去启动广告教程 2种思路(没有成品)-图4

百度某盘 去启动广告教程 2种思路(没有成品)-图5

通过smali和java对比,可以发现广告倒计时是3.5秒,16进制是0xdac。当然这些都不是重点。

百度某盘 去启动广告教程 2种思路(没有成品)-图6

查看方法列表,enterMainActivity(Z)VshowFlashScreen()V才是关键,因为通过活动记录,最后是运行到MainActivity。先看看showFlashScreen。

百度某盘 去启动广告教程 2种思路(没有成品)-图7

通过跳转逻辑,move-result v2为0时才会跳转。改法如图,让v3返回0即可,这个比较简单,改成什么样我不列出来了。当然不要这么改,目的不是这个。

百度某盘 去启动广告教程 2种思路(没有成品)-图8

通过分析,可以知道showFlashScreen()V是显示启动广告倒计时的方法,那么现在回到enterMainActivity(Z)V,找到调用的位置,把他删掉。

百度某盘 去启动广告教程 2种思路(没有成品)-图9

如图,地址:cond_5有iput-boolean v4, p0, Lcom/baidu/netdisk/ui/Navigate;->mIsCheckDone:Z和invoke-direct {p0}, Lcom/baidu/netdisk/ui/Navigate;->showFlashScreen()V,现在不能让他运行到这个地方,所以删掉红框部分即可,让他直接startMainActivity。

已测试,该方法启动软件直接进入主界面,不会有任何的不适感,不影响第一次登陆。

声明:本站所有资源均由网友分享,如有侵权内容,请在文章下方留言,本站会立即处理。

原文链接:,转发请注明来源!

发表评论