知音漫客 去除启动广告 屏蔽各种令人抓狂的弹窗

爱必应

软件为当前最新版5.5.3,原软件有壳,怎么脱我不讲了,自己想办法……


1、去除启动广告

知音漫客 去除启动广告 屏蔽各种令人抓狂的弹窗-图1

如图,利用MT管理器的活动记录来查看启动顺序,同类软件有安卓开发助手。可以发现,该软件的启动顺序是【cn.zymk.comic.ui.CoverActivity】→【cn.zymk.comic.ui.OpenAdvActivity】→【cn.zymk.comic.ui.MainActivity】,其中CoverActivity是欢迎界面,OpenAdvActivity就是专门显示广告的,直接去改smali太麻烦了,像这种最快的方法是改配置文件。反编译后打开AndroidManifest,注意红框部分,剪切下来备用。

知音漫客 去除启动广告 屏蔽各种令人抓狂的弹窗-图2

intent-filter框住的部分就是第一启动界面标识,会让CoverActivity成为第一界面,现在只需要让MainActivity成为第一界面就可以跳过广告和欢迎界面了,因为没了欢迎界面,会有启动缓慢的错觉,所以启动快慢和你的手机性能有关。

接着找到cn.zymk.comic.ui.MainActivity,把刚才剪切的粘贴到下面。其中,红色是要删除的,绿色是要添加的,使上下完整。

<activity android:alwaysRetainTaskState="true" android:configChanges="uiMode" android:launchMode="singleTop" android:name="cn.zymk.comic.ui.MainActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.Main" android:windowSoftInputMode="stateAlwaysHidden|adjustPan"/>
        <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
                <category android:name="android.intent.category.DEFAULT"/>
        </intent-filter>
</activity>

这种方法只适合广告和主界面不是一个活动的,如果相同只能修改dex了。


2、屏蔽烦人的弹窗

不知道程序员怎么想的,这些弹窗居然没有开关,比如网络缓慢和移动网络观看,经常弹出来,很影响观看。
我在家里用wifi都还弹网络缓慢……慢不慢还用你说

直接搜索res字符串,找到<string name="net_switch">检测到当前网络速度过慢,漫客娘推荐您切换智能更省流量哦</string>,继续搜索net_switch可以找到<public type="string" name="net_switch" id="0x7f0f0303" />,然后代码搜索ID看看他是从哪跳出来的。

知音漫客 去除启动广告 屏蔽各种令人抓狂的弹窗-图3

找到ReadActivity$45这个文件,该方法有段代码invoke-virtual {v1}, Lcn/zymk/comic/view/dialog/CustomDialog$Builder;->show()Lcn/zymk/comic/view/dialog/CustomDialog;,理论上删除这句应该可以干掉弹窗了,不过我一般能删就删,直接返回空值算了。改成:

  1. .method public run()V
  2.     .locals 5
  3.     return-void
  4. .end method

回编译测试正常。

还有一个是移动网络的,同上找到<public type="string" name="no_wifi" id="0x7f0f031a" />,复制ID搜索代码内容,有3个结果。不过这个不能直接返回空值,要不然点击漫画会无法应。同样有show(),直接删掉就可以干掉弹窗了。

当然你也可以从跳转的地方开始删,不给他运行到弹窗部分就可以了。如图,从if-le v0, v1, :cond_0开始删到下面地址:cond_0。其它三个同理。

知音漫客 去除启动广告 屏蔽各种令人抓狂的弹窗-图4

  1. .method public onClick(Landroid/view/View;)V
  2.     .locals 4
  3.     .line 112
  4.     invoke-static {}, Lcn/zymk/comic/helper/PhoneHelper;->getInstance()Lcn/zymk/comic/helper/PhoneHelper;
  5.     move-result-object v0
  6.     invoke-virtual {v0}, Lcn/zymk/comic/helper/PhoneHelper;->getNetType()I
  7.     move-result v0
  8.     const/4 v1, 0x1
  9.     iget-object v0, p0, Lcn/zymk/comic/ui/adapter/DirectoryOrderAdapter$1;->this$0:Lcn/zymk/comic/ui/adapter/DirectoryOrderAdapter;
  10.     iget-object v1, p0, Lcn/zymk/comic/ui/adapter/DirectoryOrderAdapter$1;->val$bean:Lcn/zymk/comic/model/ChapterListItemBean;
  11.     invoke-static {v0, p1, v1}, Lcn/zymk/comic/ui/adapter/DirectoryOrderAdapter;->access$100(Lcn/zymk/comic/ui/adapter/DirectoryOrderAdapter;Landroid/view/View;Lcn/zymk/comic/model/ChapterListItemBean;)V
  12.     return-void
  13. .end method

如果你自己还需要屏蔽什么弹窗用这个方法都是可以的。

还有一个是vip功能,我本来想弄的,但是这软件新用户送一个月vip,没注册前也送,注册后也送,现在还没到期不好测试,所以我懒得看了,到期再说,如果你有办法开启欢迎交流

成品弄好了我等下再附上。

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

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

发表评论