某狐视频去广告破解
本帖最后由 Aimers 于 2018-5-24 14:02 编辑某狐视频去广告破解
===
# 所提供的内容仅供学习交流使用,严禁用于商业用途,请于下载后24小时内删除
## 新手破解,请多指教。
### 1、去官网下载最新的apk,拆包后重新打包,安装。发现闪崩,推测是做了签名认证。到[这里](https://github.com/L-JINBIN/ApkSignatureKiller)爆破签名后,重新反编译打包安装,发现没有问题。
### 2、去除多余权限和开屏的广告。
apktool打开后AndroidManifest.xml中删除多余的权限,例如读取短信,定位,快捷方式。主Avtivity换成MainAvtivity。
```
<activity android:icon="@drawable/launcher_sohu" android:name="com.sohu.sohuvideo.FirstNavigationActivityGroup" android:screenOrientation="portrait" android:theme="@style/Theme.AppStartTheme">
<meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts"/>
</activity>
<activity android:configChanges="keyboardHidden|navigation|orientation|screenLayout|screenSize|smallestScreenSize" android:launchMode="singleTask" android:name="com.sohu.sohuvideo.ui.homepage.MainActivity" android:screenOrientation="portrait" android:theme="@style/Theme.MainRecommendActivity" android:windowSoftInputMode="adjustPan">
<intent-filter>
<action android:name="com.sohu.sohuvideo.MAINACTIVITY"/>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
```
### 3. 去除播放视频的广告
a. 安装抓包软件。 我是用Mac上的`Charles`抓包的,Win上有`Fiddler`。手机安装证书,不会的可以参考[这里](https://www.52pojie.cn/thread-718208-1-1.html)。
b. 手机设置好代{过}{滤}理后,点击播放视频,开始抓包。
!(http://p97o4wfou.bkt.clouddn.com/20180524152713643629981.png)
c. 我一眼就喵到有个纯IP的地址,点进去一看,复制地址到Chrome
!(http://p97o4wfou.bkt.clouddn.com/20180524152713659575403.png)
果然,这个就是我们要找的地址,找这个广告的地址太简单了
然后`Charles`里全局搜索这个地址。
!(http://p97o4wfou.bkt.clouddn.com/2018052415271367096815.png)
发现它是从data.void那个地址跳转的,然后全局搜索那个地址。
!(http://p97o4wfou.bkt.clouddn.com/20180524152713681155042.png)
最终发现所有的源头指向`http://agn.aty.sohu.com`
d. 全局Sublime搜索上面的地址,发现在`Const`中有定义
!(http://p97o4wfou.bkt.clouddn.com/20180524152713695029161.png)
全局替换所有`Smail`中的这个地址为任意无效地址。打包,重新安装。(ps:一开始我只改了Const的无效,发现一些SDK中依然有这个地址)
### 4. 去除我的Tab页面的广告
很容易定位到`MainMineFragment`。
能发现里面有一些方法太显眼了,例如`updateAdvertState`、`updateMvmsAdState`、`loadAdvert`、`showAdvert`、`sendMvmsAdRequest`。这些方法有的是请求广告的,有的是加载广告的,我这里的做法是注释掉调用的地方。就去掉了Tab页面的广告。
### 5. 去除上方滑动分类的部分广告
!(http://p97o4wfou.bkt.clouddn.com/20180524152713752598096.png)
这个Fragment是`ChannelColumnDataFragment`,它的类型是由`ChannelTemplateListAdapter`控制。我把`getView`Smail文件的Switch语法改成了其他的View。结果是去掉了一部分广告,这块的去除不是很完美。
### 6. 去除搜索详情的广告
!(http://p97o4wfou.bkt.clouddn.com/20180524152713775884116.png)
同上,这个Fragment是`SearchTemplateResultFragment`,它的类型是由`SearchTemplateListAdapter`控制。
我把`getView`Smail文件的Switch语法改成了某个Title的View,最终那块地方就留下了空白。
### 7. 总结
有个`kw`包下的`t`文件,这个好像是播放页面的广告。具体的有`ADBanner2ViewHolder`、`ADBannerViewHolder`和`GameViewHolder`。改的时候总是崩溃就没改这里了,有空的话好好研究一下。
还有`MainActivity`里有个`initADSDK`方法
```
private void initADSDK() {
try {
if (ir.b.k()) {
LogUtils.p("fyf-----------------紧急开关关闭所有广告");
SdkFactory.closeAdSwitch(-1);
return;
}
com.sohu.scadsdk.videosdk.a.a(getApplicationContext());
int c = ir.b.c();
SdkFactory.getInstance();
SdkFactory.setTimeOut(c);
SdkFactory.getInstance();
SdkFactory.setDeviceType(1);
if (SohuUserManager.getInstance().isLogin()) {
SdkFactory.getInstance().TrackingPassportId(getApplicationContext(), SohuUserManager.getInstance().getUser().getPassport());
}
if (ir.b.m()) {
LogUtils.p("fyf-----------------紧急开关关闭框内广告");
SdkFactory.closeAdSwitch(2);
}
if (ir.b.n()) {
LogUtils.p("fyf-----------------紧急开关关闭框外广告");
SdkFactory.closeAdSwitch(5);
}
if (ir.b.l()) {
LogUtils.p("fyf-----------------紧急开关关闭启动图广告");
SdkFactory.closeAdSwitch(1);
}
} catch (Throwable th) {
LogUtils.e(th);
}
}
```
总觉得可以一键关闭所有的广告,但是试的时候都崩溃了,原因不明,后续研究。
新人发帖,希望大家多多支持啊~
下载地址
链接: https://pan.baidu.com/s/1s8XbVqt0-1rtQ6CSlvo-vQ 密码: 16dg 学习了 。 bianchaojie 发表于 2018-5-24 21:47
支持楼主,APP市场里的各种广告,各种自启动,好好的安卓系统卡的跟中毒似得
你也可以换个845处理器的旗舰机;www 学习了,谢谢楼主! 学习了,楼楼 学习了,谢谢楼主! 感谢大神的分享。。。 试了下 如果能破解会员就牛了 感谢分享 不错支持