本帖最后由 智能小柠檬 于 2023-10-26 17:20 编辑
电视上的apk跟手机上的一样,可以先安装到手机上测试。 观察广告里有"开通会员按>键关闭广告",于是搜索字符串"关闭广告", (1)定位到a("pause_ad_tip_2", "Disable Ad", "关闭广告", "關閉廣告", "広告を消す");
(2)继续搜索"pause_ad_tip_2",找到类com.hpplay.sdk.sink.business.ads.view.PauseADView,猜测这个就是显示广告的控件。
(3)继续搜索"new PauseADView" 定位到com.hpplay.sdk.sink.business.ads.bridge.f#f(Context context, RelativeLayout relativeLayout)方法。 (4)分析发现这个类实现了com.hpplay.sdk.sink.business.ads.h接口,如下是它实现的接口方法 - home.php?mod=space&uid=1892347 // com.hpplay.sdk.sink.business.ads.h
- public void a(String str, String str2, ADBean aDBean) {
- SinkLog.i("AD_ProcessPauseAD", "onRequestAD");
- List<ADBean.DataBean> a = this.h.a(aDBean, this.n); // 请求广告代码
- boolean z = false;
- if (a != null && a.size() > 0) {
- this.k = a.get(0);
- ADBean.DataBean dataBean = this.k;
- if (dataBean != null && !TextUtils.isEmpty(dataBean.brgb)) {
- SinkLog.i("AD_ProcessPauseAD", "onRequestAD mADBean.brgb=" + this.k.brgb);
复制代码(5)分析发现这个方法作用是请求加载广告参数。 (6)到这里就很简单了,把请求广告的代码删了就行了。 (7)反编译后修改smali代码,将原始代码 - #iget-object p2, p0, Lcom/hpplay/sdk/sink/business/ads/bridge/f;->h:Lcom/hpplay/sdk/sink/business/ads/cloud/ADRequest;
- #iget-object v0, p0, Lcom/hpplay/sdk/sink/business/ads/bridge/f;->n:Ljava/util/List;
- #invoke-virtual {p2, p3, v0}, Lcom/hpplay/sdk/sink/business/ads/cloud/ADRequest;->a(Lcom/hpplay/sdk/sink/bean/#ADBean;Ljava/util/List;)Ljava/util/List;
- #move-result-object p2
复制代码改为: 回编译签名后安装。 后面还有签名的修改,这里不贴出来了,好像 固件里面的都没有签名限制。 我在修改的过程中,并没有找到“new PauseADView”,而是按照“PauseADView”进行搜索,定位到了com.hpplay.sdk.sink.business.ads.bridge.h smali代码也找到了,修改之后,安装 但是在安装的时候提示错误: 不知道为什么,求大佬指点。 下面是从固件中提取的乐播投屏: https://li5bo5.lanzouw.com/iOCKi1cwt6cd
密码:352h
|