randompath 发表于 2023-1-6 09:42

某电视投屏软件去广告

本帖最后由 randompath 于 2023-1-7 10:09 编辑

最近喜欢在B站上看视频,但手机太小而且iphone不支持局部放大,于是打算投屏到电视上看。试了一个投屏软件很不错,但是每次换视频要弹10几秒的广告,正好最近无事就打算试着把广告去了。

### 破解
#### 破解广告
电视上的apk跟手机上的一样,可以先安装到手机上测试。观察广告里有"开通会员按>键关闭广告",于是搜索字符串"关闭广告",定位到`a("pause_ad_tip_2", "Disable Ad", "关闭广告", "關閉廣告", "広告を消す");`
继续搜索"pause_ad_tip_2",找到类`com.hpplay.sdk.sink.business.ads.view.PauseADView`,猜测这个就是显示广告的控件。
继续搜索"new PauseADView" 定位到`com.hpplay.sdk.sink.business.ads.bridge.f#f(Context context, RelativeLayout relativeLayout)`方法。分析发现这个类实现了`com.hpplay.sdk.sink.business.ads.h`接口,如下是它实现的接口方法
```
    @Override // 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);
                this.m = this.k.brgb;
            }
            z = true;
      }
      SinkLog.i("AD_ProcessPauseAD", "onRequestAD hasValidAD: " + z);
      if (!z) {
            r.a().a(this.g, "", "2", 0, 0, false);
            if (this.b == null) {
                return;
            }
            this.b.c(this, -1);
      }
    }
```
分析发现这个方法作用是请求加载广告参数。到这里就很简单了,把请求广告的代码删了就行了。反编译后修改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
```
改为
```
const/4 p2, 0x0
```
回编译签名后安装,发现竟然还有证书验证。

#### 破解证书验证
一般有签名校验的都会直接闪退,没想到这个软件直接在界面上提示”xx投屏不支持私自修改签名,\n请联系商务同学解决:xxxxxxx“。这就好像在说"I'm here, crack me!!!",太小儿科了。
停留在这个界面,`adb shell dumpsys activity activities`查看最上层activity,定位到`com.hpplay.happyplay.aw/.WelcomeActivity`,在onCreate方法里找到检测证书的方法`SignCheckHelper#check`。让这个函数返回true就行了。
```
# virtual methods
.method public check()Z
    .locals 1

    const/4 v1, 0x1

    return v1
.end method
```

### 安装到电视
U盘找不到了,所以打算通过adb安装,首先要打开电视的开发者模式
1. 电视里打开设置,关于,找到内部版本号,连续点击直到提示开启开发者模式
2. 在开发者模式中打开adb调试
3. 找到电视的ip地址,`adb connect 192.168.50.68:5555`连接到电视
4. `adb install lbtp/dist/lbtp.s.apk` 安装到电视。

randompath 发表于 2023-1-6 14:58

本帖最后由 randompath 于 2023-1-6 17:08 编辑

统一回复下大家:
1. 电视型号索尼49X7500E,比较老的电视了。之所以不买国产电视除了因为信仰,还因为我早就受够了国产厂商的套路。国产机确实便宜,但是买回来就是个大广告屏,系统改的乱七八槽不说还在系统上加各种限制。
2. 电视自带的投屏功能不支持air play所以只能借助第三方的软件
3. 成品apk不打算分享的,毕竟这是不道德的行为,咱们还是交流技术。想破解的可以自己去试试,原版可以在这链接下载。下载下来只需要改两个smali就行了,又不复杂。

jcldkj 发表于 2023-1-6 12:18

在楼主没有给新版的之前,

在网上找了个老版本的,需要的先应应急

软件信息

名称:乐播投屏破解版吾爱破解版

包名:com.hpplay.happycast

版本:5.6.10

大小:99.8MB

下载地址

https://pilifx.lanzoul.com/i3q8V0cixxpc

侃遍天下无二人 发表于 2023-1-7 11:41

bluefantasy 发表于 2023-1-7 11:32
@侃遍天下无二人 大神这个小体积的能分享一下吗,谢谢

TV版:https://wwpv.lanzoue.com/iQlGN0kc044b
手机版:https://wwpv.lanzoue.com/ivnTV0kbzzah
分享的是原版的,不是修改后的成品,但同样没广告和升级

wangzhenyu1260 发表于 2023-5-16 14:40

不过使用中发现,虽然界面简洁了一点,但投屏依然有广告,于是需要在路由器或者盒子修改host屏蔽掉

host在此:
127.0.0.1 hpplay.cdn.cibn.cc
127.0.0.1 h5.hpplay.com.cn
127.0.0.1 sdkauth.hpplay.cn
127.0.0.1 imdns.hpplay.cn
127.0.0.1 vipauth.hpplay.cn
127.0.0.1 rp.hpplay.cn
127.0.0.1 sl.hpplay.cn
127.0.0.1 519332DA.rtc.youme.im
127.0.0.1 hotupgrade.hpplay.cn
127.0.0.1 hotupgrade.hpplay.com.cn
127.0.0.1 pin.hpplay.cn
127.0.0.1 tvapp.hpplay.cn
127.0.0.1 hpplay.cdn.cibn.cc
127.0.0.1 image.hpplay.cn
127.0.0.1 gslb.hpplay.cn
127.0.0.1 rp.hpplay.cn
127.0.0.1 cdn.hpplay.com.cn
127.0.0.1 h5.hpplay.com.cn
127.0.0.1 adeng.hpplay.cn
127.0.0.1 conf.hpplay.cn
127.0.0.1 adcdn.hpplay.cn
127.0.0.1 g.dtv.cn.miaozhen.com
127.0.0.1 android.bugly.qq.com
127.0.0.1 alog.umeng.com
127.0.0.1 hotupgrade.hpplay.cn
127.0.0.1 pin.hpplay.cn

使用方法最简单的是去路由器后台添加自定义host屏蔽。(小米路由器AX系列web管理页已经精简了这个选项,需要使用手机软件“小米wifi”添加)
如果路由器不支持,则是修改盒子的host文件,需要开root,具体操作参考安卓手机修改host,百度很多。

doglove 发表于 2023-1-6 09:50

好复杂,有成品不。谢谢

chensheng 发表于 2023-1-6 10:02

学习学习

randompath 发表于 2023-1-30 09:53

jjxs 发表于 2023-1-29 10:28
小白求助,编译的时候报错
W: E:\APK Easy Tool\1-Decompiled APKs\lbtp_8.13.72_dangbei\res\values-v21\ ...

加上这个参数 -r,--no-res             Do not decode resources.

lyidxc 发表于 2024-1-13 10:01

这样改了还是有广告

一只哈巴狗哟 发表于 2023-1-6 09:48

APP(Le bo)能提供下吗??

stonepc 发表于 2023-1-6 09:45

这个是真强大,技术666

csjfang 发表于 2023-1-6 09:49

学习了~~

yaoww 发表于 2023-1-6 09:55

有apk嘛?

dxxiong 发表于 2023-1-6 09:58

学习一下,成品呢?

binghu001 发表于 2023-1-6 10:00

简直就是牛逼plusmax版本了

bzjhss 发表于 2023-1-6 10:00

感谢分享,拿走了

cgx 发表于 2023-1-6 10:01

谢谢分享
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 某电视投屏软件去广告