Chaos 自己写GKD规则的基础知识
GKD(搞快点)规则基于 JavaScript + CSS选择器 + 简单匹配逻辑,主要通过以下方式实现自动跳广告/跳过:
核心结构
name:规则名称
match:触发条件(包名、Activity、URL等)
action:执行操作(click、back、longClick 等)
selector:CSS选择器定位元素
delay / timeout:延迟执行时间
priority:优先级(数字越大越优先)
需要掌握的知识
- 基础:HTML/CSS选择器(id、class、text、属性等)
- 进阶:JavaScript(用于复杂判断、循环点击、等待元素出现)
- GKD专有:规则语法(match、action、quickFind等)、App包名、Activity名
- 工具:Android无障碍服务调试、布局检查工具(Layout Inspector或GKD自带调试模式)、浏览器DevTools模拟
常用匹配方式
- 包名匹配:
"com.bilibili.app"
- Activity匹配:
"com.bilibili.video.MainActivity"
- URL匹配(WebView):包含特定关键词
- 文本匹配:
text="跳过"、textContains="广告"
用Bilibili举例:做一个“跳过首页广告”规则
以下是一个简单有效的首页广告跳过规则示例(适用于2026年B站App首页弹窗/横幅广告):
{
"name": "B站 - 跳过首页广告",
"match": {
"packageName": "tv.danmaku.bili",
"activity": "com.bilibili.video.MainActivity"
},
"action": "click",
"selector": "[text*='跳过'] || [text*='关闭'] || [desc*='广告'] || .ad-close || .skip-btn",
"delay": 150,
"timeout": 800,
"priority": 100,
"quickFind": true
}
进阶版(更稳定,带判断):
{
"name": "B站 - 首页广告自动跳过",
"match": "tv.danmaku.bili",
"rules": [
{
"action": "click",
"selector": "TextView[text='跳过'] || ImageView[desc*='关闭广告'] || [id*='ad_close']",
"delay": 200
},
{
"preCondition": "存在首页广告横幅",
"action": "back",
"delay": 100
}
]
}
编写步骤建议:
- 打开B站App,进入首页出现广告的位置。
- 用GKD内置调试工具或Android布局检查器查看元素(class、text、id、desc)。
- 找到广告关闭按钮的关键特征(比如text含“跳过”“关闭”“×”)。
- 写出selector,多用
|| 组合多种可能。
- 设置合理delay(1-3秒),避免点太早失效。
- 测试 → 失效就加更多selector或用JS循环等待元素。
注意事项:
- B站规则更新频繁,selector每隔几个月可能失效,需要定期维护。
- 优先用
quickFind: true 提升速度。
- 如果是WebView内广告,可加
url 匹配。
- 费电问题:减少规则数量、降低priority、避免死循环。
想写更复杂的(比如自动关闭特定类型广告、连跳多个页面),可以提供你当前遇到的具体广告截图或元素信息,我可以帮你细化规则。
直接把上面示例复制到GKD订阅里测试即可,记得刷新规则。