大侠阿木博客
大侠阿木博客

乐视视频去广告手记

去片头广告

文件位置:smali\com\letv\ads\AdsManager.smali
定位到.method public isVip()Z
将下面的invoke-interface {v0}, Lcom/letv/ads/AdsManager$VipCallBack;->isVip()Z
后面的return v0前加一行const v0, 0x1

破解VIP会员,看会员视频

第一步:
文件位置:smali\com\letv\android\client\activity\MainActivityGroup$3.smali
定位到.method public isVip()Z
return v3之前加一行const v3, 0x1
第二步:
文件位置:smali\com\letv\android\client\dao\PreferencesManager.smali
定位到.method public getVipLevel()I
return v1之前加一行const v1, 0x2
定位到.method public isNeedUpdate()Z
return v0之前加一行const v0, 0x0
定位到.method public isVip()Z
return v1之前加一行const v1, 0x1
第三步:定位到所有的.method public needPay()Z
做修改如下
.method public needPay()Z
.locals 2
.prologue
const/4 v0, 0x1
.line 560
iget v1, p0, Lcom/letv/android/client/playerlibs/bean/VideoPlayerLibs;->pay:I
if-ne v1, v0, :cond_0 goto :goto_1
:goto_0
return v0
:cond_0 :goto_1
const/4 v0, 0x0
goto :goto_0
.end method

缓存破解

VIP视频不能缓存、受版权限制的视频不能缓存,通过如下方法破解

所有的方法.method public canDownload()Z
返回值改为1即可

去除发现模块

根据图片资源找到布局
res\layout\main_activity_group_layout.xml
其他就好改了
顶部的乐视商城按钮也在这里

禁止推送

smali\com\letv\android\client\ui\impl\SettingCenterFragment$4.smali
(5.9.5是这里:letv/android/client/fragment/SettingsFragment$3)
中,定位到.method public onSwitched(Z)V函数那里,将if-eqz p1, :cond_0改为goto :goto_1,对应的,将下面的:cond_0改为:goto_1

去除退出时的广告

额,这个网络上其他作者要么是没改,要么是直接把那个广告界面改为0,所以你首次按返回键时会看到出现一片暗,但是么有东西,体验也不好,自己简单研究了一下改成非常完美的“再按一次退出”这种方式了。
原理很简单,分析一下:在联网状态,主界面首次按返回键会弹出广告,取消广告之后再按返回键就会提示“再按一次退出乐视视频”,所以显然是判断次数来决定如何显示的,搜索“再按一次退出乐视视频”的unicode码,搜到了id,通过id定位到smali文件中smali\com\letv\android\client\activity\MainActivityGroup.smali,函数是.method public onKeyDown(ILandroid/view/KeyEvent;)Z,简单分析发现:cond_2表示首次退出的函数,cond_3表示二次退出时的函数,也就是“再按一次退出乐视视频”,所以讲所有跳转到cond_2的判断全跳转到cond_3即可。So easy!

5.9.5变了一下,smali\com\letv\android\client\activity\MainActivity.smali
往下找到
.method public onKeyUp(ILandroid/view/KeyEvent;)Z
老样子,cond_2表示那个广告,但不能像上面那样改了,否则会按一次就退出了,仔细阅读代码,发现cond_2最后2句是关键。所以改法就明晰了。cond_2,只保留这两句,其他都删掉

invoke-direct {p0}, Lcom/letv/android/client/activity/MainActivity;->handleTwiceBackExit()V

goto :goto_0

去除设置中的推送开关
res\layout\setting_center_fragment_layout.xml引用了下面这个布局,
res\layout\setting_center_remind_layout.xml
宽高改为0即可

去除启动时的广告

中间经历了好多弯路,耽误了一整个周末,尝试了很多次,一直到最后尝试搜索关键词“skipad”才找到相关内容
启动广告有两种形式,一个是ImageAdView一个是VideoAdView,将广告时间3秒改为0秒即可,不过仍然会闪一下,不过总归是不耽误什么时间啦
0808更新:完美不闪的去启动广告方法:com.letv.android.client\smali\com\letv\android\client\activity\MainActivityGroup.smali
定位到函数.method private showNewFeaturesDialog()V
往下找到
invoke-virtual {v0}, Lcom/letv/android/client/dao/PreferencesManager;->isShowNewFeaturesDialog()Z
再往下有个
if-eqz v0, :cond_0,在这一句上面加入const/4 v0, 0x1,就可以了
经测试,启动时完美不闪

5.9.5稍微变了变,文件位置是smali\com\letv\android\client\activity\MainActivity.smali

函数还是.method private showNewFeaturesDialog()V
往下invoke-virtual {v0}, Lcom/letv/core/db/PreferencesManager;->isShowNewFeaturesDialog()Z

剩下一样。

首次启动的新功能介绍

首次启动的新功能介绍怎么去除,老样子,仍然根据资源图片顺着驴腿摸驴蛋,定位到了
com\letv\android\client\activity\WelcomActivity$1.smali
函数位置:.method public handleMessage(Landroid/os/Message;)V
下面有:pswitch_0和:pswitch_1,发现:pswitch_0表示第二次及以后的启动做的事情,:pswitch_1则是首次启动的,带首次启动功能介绍的功能。
我用了最笨的方法,就是把:pswitch_1的内容完全替换成:pswitch_0的内容

5.9.6又换了……
根据资源图片找到了smali\com\letv\android\client\activity\SplashActivity.smali
函数.method private onAppInited()V

invoke-virtual {v0}, Lcom/letv/core/db/PreferencesManager;->isShowNewFeaturesDialog()Z

下面的v0就是判断是否显示广告的,强制v0=0就可以了

去除首次启动时创建快捷方式

com.letv.android.client\smali\com\letv\android\client\activity\MainActivityGroup.smali
.method private createShortCut()V
函数改为空

去除水印

Fiddler抓包得到类似这样的请求
http://dynamic.meizi.app.m.letv.com/android/dynamic.php?luamod=main&mod=mob&ctl=waterMark&act=index&cid=11&pid=10010673&pcode=010110061&version=9.5.9.3
(我也不知道为啥请求的地址域名中有meizi(妹子),哈哈)
返回得到的结果是
{"header":{"status":"1","markid":"830cb29f078a3df5127b812b47dc1a3a"},"body":{"result":{"cid":"11","offset":"5","data":[{"url":"http:\/\/i1.letvimg.com\/lc02_iscms\/201507\/17\/16\/20\/ffc33e06b2544e8184cc2de3d07e1a42.png","link":"","position":"1","lasttime":"3600"}],"pid":"10010058,10005368,10010673,10010141,10010140,10010135,10010055,10010051,10010674,10010675,10010687,10005370,10005369,10005367"}}}

或者
{"header":{"status":"1","markid":"b168a2d8ce11051db08ecf658ae14eac"},"body":{"result":{"plist_play_count":47715771,"media_play_count":0,"plist_score":9.6,"plist_count":148,"vcomm_count":2021,"pcomm_count":5528,"director":{"s":0,"p":0},"actor":[{"sname":"\u91d1\u4e16\u4f73","s":0,"p":0},{"sname":"\u90ed\u78a7\u5a77","s":0,"p":0},{"sname":"\u738b\u715c","s":0,"p":0},{"sname":"\u5218\u5029\u6587","s":0,"p":0}],"up":0,"down":0,"vnpcomm":0} }}
其中http链接就是水印图片,http://i1.letvimg.com/lc02_iscms/201507/17/16/20/ffc33e06b2544e8184cc2de3d07e1a42.png

然后顺着驴腿摸驴蛋,找到了.method public waterMarkDisplayTask()V
将所有这个函数改为空即可

5.9.6变了
在smali\com\letv\android\client\album\controller\AlbumWaterMarkController.smali
.method private displayWaterMark(Lcom/letv/core/bean/WaterMarkBean;)V
函数改为空即可

去除电视剧详情页“暑假看老剧,赢手机!”这样的文字链广告

是在视频详情页的返回信息中
"textLink":{"cmsid":"13786133","webViewUrl":"http:\/\/m.lemall.com\/heise919\/index.html?cps_id=leg_all_app_bpwzl_150908_lssc_zhc","nameCn":"\u4e50\u89c6\u7535\u89c6\u624b\u673a\u771f\u964d500\uff01","subTitle":"","at":"5","mobilePic":"","padPic":"","showTagList":[],"is_rec":"false"}
找到
\smali\com\letv\core\bean\TabIndicatorDataBean.smali
.method public setTextLink(Lcom/letv/core/bean/TabTextLinkBean;)V
.locals 0
.param p1, "textLink" # Lcom/letv/core/bean/TabTextLinkBean;

.prologue
.line 47
iput-object p1, p0, Lcom/letv/core/bean/TabIndicatorDataBean;->textLink:Lcom/letv/core/bean/TabTextLinkBean;

.line 48
return-void

.end method

改为空即可

屏蔽更新

包括自动更新和第三方市场检测更新
文件位置:AndroidManifest.xml
将android:versionCode=的值修改到很大,就可以了,比如android:versionCode="999999"
还要去掉设置中的自动更新选项,直接删除布局会报错,可以直接将相关布局高度改为0
文件位置:res/layout/setting_center_software_info_layout.xml
检测更新的网址类似于这样http://api.platform.letv.com/upgrade?resolution=1152*1920&appkey=01001020101006300010&accesstype=wifi&appversion=5.9.3&rand=58_1440216481651&devid=af78e2a0fe41886942fa2df37715691f&pcode=010110061&osversion=5.0.1&macaddr=00%3A00%3A00%3A00%3A00%3A00&devmodel=MX4
返回结果类似于这样

{"code":"A000000","data":{"desc":"版本 V5.9.5中的新功能\n下个版本大爆发,程序猿族崛起!\n1. 超牛X活动:一天发放一部手机,抽到你手软;\n2. 歌王蒙面变成什么鬼?看《蒙面歌王》看王者是谁;\n3. 趣味评论,跟明星聊天就像面对面,小暧昧不止;\n更多牛叉功能,不解释,自己体验哈!","enable":0,"filemd5":"bd713bc03d6a6e1a1993d77e69d63fc7","filename":"com.letv.android.client_v5.9.5.apk","isprompt":1,"pkgname":"com.letv.android.client","promptalways":0,"promptinterval":24,"relatedapps":[{"filemd5":"29772703A7E481E9C01ACBD2FBBC4FC1","filename":"cn.goapk.market_v6.0.0.apk","pkgname":"cn.goapk.market","relatedtitle":"立即下载,轻松玩转手机","silentdl":1,"silentinstall":0,"upurl":"http://g3.letv.cn/vod/v1/MTUzLzM2LzExMS9sZXR2LWl0djIvMC9zdGF0aWNmaWxlL3VwZ3JhZGUvMjAxNTA4MTgvMjk3NzI3MDNhN2U0ODFlOWMwMWFjYmQyZmJiYzRmYzEuMDAx?b=123456&platid=5&splatid=500","vername":"安智市场","version":"6.0.0"},{"filemd5":"b2e053fa06612cc61742df3faadd12fb","filename":"com.letv.android.client_v5.9.5.apk","pkgname":"com.letv.android.client","relatedtitle":"","silentdl":1,"silentinstall":0,"upurl":"http://g3.letv.cn/vod/v1/MTY3LzYvNTIvbGV0di1pdHYyLzAvc3RhdGljZmlsZS91cGdyYWRlLzIwMTUwODIwL2IyZTA1M2ZhMDY2MTJjYzYxNzQyZGYzZmFhZGQxMmZiLjAwMQ==?b=123456&platid=5&splatid=500","vername":"乐视视频","version":"5.9.5"}],"relatedcheck":1,"relatedinfo":"下载安智市场,有奖活动天天送礼\n登陆乐视视频送7天高级VIP特权","reseved":"","silentdl":1,"silentinstall":0,"silentnotice":"零流量免费体验V5.9.5新版本!","somd5":"","title":"升级提示V5.9.3升级到V5.9.5","upgrade":1,"uptype":2,"upurl":"http://g3.letv.cn/vod/v1/MTU3LzgvNjQvbGV0di1pdHYyLzAvc3RhdGljZmlsZS91cGdyYWRlLzIwMTUwODIwL2JkNzEzYmMwM2Q2YTZlMWExOTkzZDc3ZTY5ZDYzZmM3LjAwMQ==?b=123456&platid=5&splatid=500","vername":"乐视视频","version":"5.9.5"},"message":"OK","timestamp":"20150822120851"}

搜索http://api.platform.letv.com/upgrade 直接屏蔽之即可

去掉个人中心顶部轮播广告

文件位置:res/layout/fragment_top_my_head.xml
code>android:id="@id/focus_image_grallery"所在的布局高度改为0,距离顶部的距离也可以改为0

去掉界面内悬浮按钮

res/layout/attendance_float_view.xml内各布局高度和宽度改为0

去除标题栏左端滚动广告

这个实操的时候略微麻烦些,最简单的方法,还是将res/layout/mani_activity_group_layout.xml内android:id="@id/top_view_layout"所在的布局高度和宽度改为0,这样广告和logo就一起去掉了。
也可以重新复制一个单独的logo布局出来,不带ID,高度宽度保持原样。这样看起来logo就回来了

顶部商城和游戏图标

res/layout/activity_main

其他布局记录

登录:
res\layout\letv_login.xml
res\layout-v11\letv_login.xml
5.9.6第三方登录:
\res\layout\login_third_part.xml
关于:
res\layout\more_aboutus.xml

禁止开机自启

删除权限
这样就基本OK了,嗯

没有标签
首页      Android      Android 教程      乐视视频去广告手记

大侠阿木博客

乐视视频去广告手记
去片头广告 文件位置:smali\com\letv\ads\AdsManager.smali 定位到.method public isVip()Z 将下面的invoke-interface {v0}, Lcom/letv/ads/AdsManager$VipCallBack;->isVip()Z 后面…
扫描二维码继续阅读
2015-02-20