关于App开屏广告,安卓上有各种自动点击跳过广告的软件,比如自动跳过、李跳跳等,但iOS由于系统原因,此类App基本别想了(越狱除外),但除了越狱,我们也可以通过屏蔽App的广告地址来实现屏蔽App广告
原理简单说明
各种App开屏广告经常会变,所以广告图片必定是通过网络下载的,我们只需要屏蔽它这个下载地址,让它下载失败就达到了屏蔽广告的效果;当然如果广告图片是App内置的就不适用于此方法了
一、安装网络调试软件和抓包软件
- 网络调试软件:用于屏蔽广告网址,本文以Shadowrocket为例,当然也可以使用同类型的比如Quantumult/Quantumult X/Loon/Surge等软件,原理都是一样的
温馨提示:Shadowrocket这个软件国区未上架,美区售价$2.99,没有美区Apple Id和美区支付方式的用户可通过本站杂货铺直接购买账号下载:https://buy.aneeo.com - 抓包软件:用于抓取App广告网址,本文使用Thor Http,当然也可以使用同类型免费的Stream
二、使用抓包软件找到App广告地址
本教程以网易云音乐App为例,先看一遍广告(注意,某些App开屏有多个,可以重复关闭打开App查看广告是什么),如下图就是滴滴货运的广告
注意:因为已经打开过网易云音乐App,广告图片已经下载到你的手机里了,无法抓取下载地址,需要清除App图片缓存或卸载从新安装;其他App同理
开启Thor Http的抓包开关,然后启动网易云音乐app,出现开屏广告进入App后,即可返回Thor Http关闭抓包开关;然后打开抓包记录,找到刚才看到的广告图片,点进去复制网址;如下图
这里只需要复制广告网址里的域名,不需要整个图片的地址,比如这里就只需要
iadmusicmat.music.126.net
三、将抓到的广告域名填入Shadowrocket
打开Shadowrocket配置 – 点击默认文档(default.conf) – 编辑配置 – 新增规则,类型选择DOMAIN
,选项选择REJECT
,域名就粘贴刚才抓取到的广告域名,这里就是iadmusicmat.music.126.net
添加后点保存
,然后返回Shadowrocket首页,全局路由选择配置
,最后打开App的开关(无需节点,有节点并不影响),这个时候已经屏蔽网易云音乐的开屏广告了;如果打开还有广告,那就是之前下载到手机了,清除下App的图片缓存即可;其他App也可以使用相同的方法屏蔽开屏广告,甚至不仅限于开屏广告,只要你能找到广告网址~
关于规则类型说明
- DOMAIN-SUFFIX
基于域名后缀判断
比如输入 baidu.com 就可以过滤zhidao.baidu.com,pan.baidu.com等 baidu.com 后缀的网站 - DOMAIN-KEYWORD
基于关键词的判断
比如输入baidu,就可以过滤 baidu.com,baidu.cn,baidu.net等含有 baidu 字眼的网站 - DOMAIN
基于域名的判断
比如输入 www.baidu.com 就可以过滤 www.baidu.com/*的网站 - IP-CIDR
判断是否为局域网 - GEOIP
判断服务器地址 - FINAL
剩余的网站
额外说明
如果使用一段时间后,广告又出来了,要么是你在没有开启Shadowrocket开关的状态下打开了App,导致广告图片下载到本地了;或者是App广告图片更换了地址,从新抓包添加到规则即可
顺便分享个Github上的广告规则文件:
- 配置文件:Complete.conf
这个无需节点怎么整,我现在上面的节点都是梯子
笑死我也是
能不能在全局路由为代理的情况下实现
请问我使用抓包工具之后发现像zhihu,neteasecloudmusic之类的app的拉取广告的域名并没有改变,使用小火箭也确认过将这些域名设置为reject,依然会出现开屏广告是怎么回事呢?清空缓存后重试依然是这样。期待您的回复~
某些App的广告域名现在很鸡贼,比如网易云现在广告域名就是好几个,如果第一个域名无法访问就会自动从第二个域名获取广告
有大佬写了比较全的规则吗哈哈哈,我一开始也是这么猜测的。
规则的话GitHub上有很多,这篇文章只是简单的说下原理,大概了解下那些大佬的规则是怎么来的,看多了你就是大佬了
牛,不去做研发可惜了。。。。
在家就可以用路由器屏蔽了 不需要节点??
大佬,现在是否还能共享圈x账号,不胜感激