
基于 无障碍 + 高级选择器 + 订阅规则 的自定义屏幕点击 APP
https://github.com/gkd-kit/gkd 撅得好用的给个 star 吧
如何编写订阅/贡献订阅 -> CONTRIBUTING.md
1 justforvx 2023-09-02 22:00:26 +08:00 这个是实现李跳跳功能的开源软件?简单说一下优点吧 |
2 lisongeee OP @bnoblech 这个和李跳跳不一样,李跳跳是本地规则,GKD 是 订阅规则 最不一样的是 GKD 提供了一个强大的选择器引擎以及对应的快照审查工具能实时连接应用内置的 HTTP Server https://github.com/gkd-kit/selector https://github.com/gkd-kit/subscription https://github.com/gkd-kit/inspect GKD 的选择器规则能把界面上的无障碍节点串连起来,大大提高了泛用性 网页审查工具能实时测试选择器选中的目标节点,大大提高规则开发效率 |
3 lisongeee OP 比如某些可关闭广告的按钮没有 id/text/desc 或者不唯一并且位置也不固定,这时 李跳跳 是无法关闭的 但是 GKD 的选择器能把这个节点周围的节点也作为判断逻辑,类似 CSS 的 A > B 如果了解过 CSS ,那么对这个选择器会有一点熟悉,比如截图示例里的关闭微信广告的规则是 ```txt { key: 0, name: '关闭朋友圈广告', desc: '朋友圈信息流广告,点击关闭按钮,确认关闭', activityIds: 'com.tencent.mm.plugin.sns.ui.SnsTimeLineUI', exampleUrls: [ `https://github.com/gkd-kit/subscription/assets/38517192/c9ae4bba-a748-4755-b5e4-c7ad3d489a79`, ], rules: [ 'TextView[text*=`广告`] + TextView[text=`关闭该广告`]', 'ImageView - TextView[text=`广告`][id!=null][index=0]', ], }, ``` |
4 lisongeee OP 比如百度贴吧评论区中间的广告的规则是,我确信 李跳跳 是做不到这种规则的 ```txt { key: 4, name: '帖子评论区内部广告卡片', activityIds: 'com.baidu.tieba.frs.FrsActivity', rules: 'ImageView < @FrameLayout < LinearLayout < RelativeLayout <n LinearLayout < RelativeLayout + LinearLayout[id=`com.baidu.tieba:id/obfuscated`] TextView[text=`广告`]', }, ``` |
5 bzcrl 2023-09-02 22:49:41 +08:00 哇 强力支持! |
6 llbbzh 2023-09-02 22:51:25 +08:00 via Android 有意思,感觉可以用用 |
7 tangkeke20 2023-09-02 22:53:03 +08:00 via Android 李跳跳:杀了我一个,还有后来人!!! |
8 CXPLAY 2023-09-02 22:55:50 +08:00 via Android 强, 支持一下. |
9 shenzt1968 2023-09-02 23:00:27 +08:00 安卓 tv 能用吗? |
10 iwlei 2023-09-02 23:05:05 +08:00 支持自定义吗?我还用李跳跳帮我点地铁二维码 |
11 floatkayau 2023-09-02 23:08:42 +08:00 开发者能抗住腾讯的铁拳吗? |
12 lisongeee OP 这个 APP 是我两年前开始磨磨蹭蹭边玩遍写的,核心部分是 那个 GKD 节点高级选择器,是用 kotlin multiplatform 写的 kotlin 可以编译到 js ,这使得网页审查工具也能执行选择器,这个对规则书写效率提高是很大的 界面 UI 使用体验可能不太好,因为我的审美比较辣鸡,请见谅,但是规则执行部分是没问题 |
13 litmusF 2023-09-02 23:11:29 +08:00 能通过 shizuku 激活吗,某些手机上无障碍服务不稳定,经常自动关闭 |
14 lisongeee OP @iwlei 什么自定义规则都能行,只要有快照,这个选择器引擎能玩出花来,地铁二维码 这种寸寸小 case 这个规则还能实现自动接受微信转账,自动微信抢红包,但是我以前不小心把写的规则删除了,我后续补一下 |
15 Jirajine 2023-09-02 23:13:00 +08:00 via Android 特权应用最好不要直接联网 |
16 lisongeee OP @2218675712 shizuku 目前只支持 获取 activityId ,通过 shizuku 获取 无障碍服务是可以实现的,但是我手机的 shizuku 老是自动关闭 因此就没怎么实现,后续会支持的,但是我的无障碍很稳啊,从来没有关闭过 |
19 xiaolushuo123 2023-09-02 23:15:32 +08:00 支持下,tv 上可以使用吗 |
20 lisongeee OP |
21 Jirajine 2023-09-02 23:24:56 +08:00 via Android @lisongeee #17 规则更新需要非常频繁吗?如果实时性要求没那么高,可以内置到 apk 里定期 release ,或者让用户从文件/剪切板导入。 倒不是开源的问题,而是最小化权限原则。里跳跳被很多人信任也是因为静态规则。使用下来感觉这些规则并不需要一直频繁更新,第三方应用的变更并不多,所以未必需要引入在线订阅这种适用于非常动态的场景。 |
23 lisongeee OP @Jirajine 如果不放心你直接把网络权限禁用了就行,应用能设置暂停更新,每个订阅每个 APP 每个规则组也能单独设置禁用的 但是如果不联网,应用有 bug 如何更新呢,这种 app 又不能上架,也不能像 李跳跳一样 微信公众号里分发 另外 APP 自带的默认的订阅是来自 https://github.com/gkd-kit/subscription 这个订阅也是开源维护的 |
24 lisongeee OP |
25 a90120411 2023-09-02 23:45:01 +08:00 比李跳跳自由度高了许多,支持~ |
26 aQuQ 2023-09-02 23:59:41 +08:00 进阶一点的玩法是禁用组件/host op 有考虑这个方向吗?目前貌似没看到这类好用的开源软件。 |
27 akira 2023-09-03 00:01:16 +08:00 已 star 。 小程序里面的东西他能点么 |
28 lisongeee OP |
29 lisongeee OP @aQuQ #25 > 进阶一点的玩法是禁用组件/host op 有考虑这个方向吗? 非常抱歉哈,这个暂不考虑,这个应用核心在于 GKD 高级选择器 说到禁用组件,miui 系统的开屏广告倒是可以使用 adb 命令禁用 |
30 lisongeee OP @akira #27 > 小程序里面的东西他能点么 可以的,这个是饿了么小程序的快照 https://gkd-kit.gitee.io/import/12504305 但是有个缺点,无法通过 activityId 来区分小程序,所有小程序的 activityId 都是 https://gkd-kit.gitee.io/import/12504305 |
31 BearCookie 2023-09-03 00:26:05 +08:00 via Android 试用了一下,太棒了,楼主巨巨好强,就是不知道项目能活多久,唉 |
32 lisongeee OP |
33 8E9aYW8oj31rnbOK 2023-09-03 00:57:39 +08:00 我也遇到这个问题,无障碍服务经常在自动关闭 |
34 dankai 2023-09-03 01:51:47 +08:00 牛啊 |
35 88268459 2023-09-03 02:52:48 +08:00 via iPhone 赞,已收藏 |
36 osss 2023-09-03 06:58:10 +08:00 怎么添加编辑自己的规则,起点的开屏广告跳不了 |
37 LuvF 2023-09-03 07:03:32 +08:00 via Android 下载支持 |
38 skull 2023-09-03 08:39:27 +08:00 via Android 一个实时读取屏幕信息的软件,就不应该有联网功能 |
39 MossFox 2023-09-03 09:12:21 +08:00 这个程序的规则可以说是有必要动态更新的,除非你愿意在各大牛皮癣客户端疯狂热更新界面广告布局的同时自己去手动一次次更新规则。所以,不需要去过多地质疑为何需要联网权限。 当然,重视隐私安全的意识是人人都应该有的。这种使用场景下会需要社区根据源程序来留意一下权限会不会被滥用,我相信原作者是不会乱来的,只是如果有一些别有用心的 fork 构建出的其他渠道传播的安装包,可能就不大好说了。 ……啊,不过希望开发者留意一下像是“自动抢红包”之类的这种功能点直接放在纸面上来介绍软件是否合适,因为感觉上这类辅助软件如果直接宣传有这种(外挂性质的)功能,似乎有那么一点不安全。即使不拿来盈利也不代表没有风险。 |
40 theprimone 2023-09-03 12:14:55 +08:00 有点东西,不过还在用李跳跳,看完帖子或许可以考虑出一个离线版的 APP ,然后做一个规则发布的网页就好了,有需要用户可以手动复制后导入。 |
41 chotow 2023-09-03 12:24:18 +08:00 给这个创意点赞;另外,建议使用 GitHub Action 自动构建 app ,避免人工 Release ,增加可信度。 |
43 Jirajine 2023-09-03 14:46:22 +08:00 via Android @lisongeee 不是不信任你,而是攻击面的问题,开发一个特权程序的同时要考虑防止程序被 exploit 。 因为不能上架,官方发布地址和订阅地址会被墙或干扰,在多小白用户中会通过群组/网盘等渠道传播。 这样有人 host 一个第三方的规则订阅源,然后可以偷偷添加如社交媒体自动关注点赞转发等操作。而让用户手动导入本身也会鼓励用户 review 他要导入的内容。同理如果不直接联网,第三方渠道传播的恶意打包版本也更容易让用户警觉。 另外介于里跳跳的前车之鉴,应该从最开始就考虑规避风险的问题。建议把规则仓库下掉,另开一个“community”账户维护规则,两个仓库相互声明没有关联,所有操作用户负责之类的。 |
44 Jirajine 2023-09-03 14:47:41 +08:00 via Android @lisongeee 关于上架,可以上架 Google play fdroid 等海外商店,但还是那个问题,因为墙和干扰的缘故,大部分小白用户还是要依赖网盘群组等非官方渠道传播。 |
45 ofovvv 2023-09-03 14:58:34 +08:00 这个不错啊 |
46 littleTomorrow1 2023-09-03 16:06:55 +08:00 楼主花了多长时间做的,如果是新闻出来后才做的,那行动力太强了吧! |
47 lisongeee OP @Jirajine 你说的很有道理,一旦开源,滥用是不可避免 照你这样说只能做成闭源+不联网+用户手动粘贴导入的形式了,因为别人完全可以 fork 版本加隐藏订阅后分发,这时候 APP 就已经有恶意规则了 但是 APP 从 2 年前我设计的时候就需要网络,不然审查工具 https://github.com/gkd-kit/inspect 无法连接调试 而且现在已经开源了,我顶多去上架一下 Google play fdroid > 官方发布地址和订阅地址会被墙或干扰 这个目前是不会的,这个 APP 及其订阅的会被上传到 https://www.npmjs.com/package/@gkd-kit/app ,然后通过 https://npmmirror.com/ 去检测订阅更新和 APP 更新 |
48 fkzz 2023-09-03 16:25:55 +08:00 好东西,建议还是增加离线手动导入规则功能。 |
49 Jirajine 2023-09-03 17:06:22 +08:00 via Android @lisongeee #47 恶意版本的分发倒是和开源闭源关系不大,主要是考虑到直接联网更 vulnerable 。一是小白订阅到恶意规则,二是如果不联网那么添加网络权限的恶意版本会更易辨别。 如果被墙和干扰的问题能解决,那倒是好很多。不过考虑到以后可能要规避风险,规则订阅只能以 unofficial 的方式提供,添加一些诸如 diff view 等便于用户 review 规则的功能还是有必要的。 |
50 lisongeee OP @Jirajine > 添加一些诸如 diff view 等便于用户 review 规则的功能还是有必要的 谢谢,很好的提议 另外也可以添加一个标识表示 [官方订阅] / [第三方源] 这个可以直接从 https 链接来标识 比如现在的订阅是 https://registry.npmmirror.com/@gkd-kit/subscription/latest/files 这个订阅里每个对象都是有 key 标识的,一开始就为 diff 考虑了 |
51 ppgame 2023-09-03 21:29:10 +08:00 via Android 比如如何添加规则 或者修改规则啊 默认的喜马拉雅无法屏蔽开屏广告 |
52 Joomaen 2023-09-03 21:29:25 +08:00 via Android star 了,还有点击记录。比跳跳好用,支持 |
53 lisongeee OP |
54 vokins 2023-09-03 22:00:23 +08:00 感谢分享! |
55 itechify PRO 网易云音乐 开屏无效 |
56 lisongeee OP @oneisall8955 #55 > 网易云音乐 开屏无效 谢谢反馈,可以到 https://github.com/gkd-kit/subscription/blob/main/CONTRIBUTING.md 打快照给我调试或者直接提 pr |
58 BearCookie 2023-09-04 04:25:31 +08:00 老哥好,微博跳过突然就不生效了,但是贴吧跳过还有效…… |
span class="no">59 lisongeee OP @neochen13 谢谢反馈,可以到 https://github.com/gkd-kit/subscription/blob/main/CONTRIBUTING.md 打快照给我调试或者直接提 pr |
60 Thiece 2023-09-04 10:33:26 +08:00 这个帖子的回复楼层,十分贴切的展示的国内开源环境的恶劣。 开源项目,代码和订阅地址都开源了,对代码不放心可以自己 Code review ,对编译不放心可以自己编译; 觉得订阅源不好可以自己部署一个订阅源。 |
61 shunia 2023-09-04 10:49:06 +08:00 @Thiece #60 不是明明讨论的越来越正能量怎么到你这儿就变成“国内...恶劣”了,真是什么人看什么内容,我都服了。妈呀你这种人真的应润尽润吧你。 下边的回复一个比一个有价值啊,提供订阅源的解决方案,提供一些产品的想法。本来我看他纯粹是一个李跳跳的替代感觉替换的必要性挺低的,最多给个 star 支持一下,或者当个备用。看完回复列表我的感受是产品不错,开发者也很不错,替换的意愿都提升了不少。 结果拉到最后看到你这么个回复,真的有点无语。 |
62 ZR91b424aaQ98Y9o 2023-09-04 10:58:50 +08:00 支持支持 |
63 Thiece 2023-09-05 05:56:51 +08:00 |
64 Litccc 2023-09-05 08:15:33 +08:00 via Android 酷安的开屏广告突然不能跳过了,但是卡片广告没问题 |
65 lisongeee OP @Litccc 你好,不能跳过的话,可以按照 https://github.com/gkd-kit/subscription/blob/main/CONTRIBUTING.md 打一个快照给我更新规则 |
66 Leung818 2023-09-05 15:50:35 +08:00 已 star 并下载支持 |
67 litmusF 2023-09-05 18:42:38 +08:00 via Android miui 有个问题,晚上自动关闭无障碍,第二天醒来,无障碍就自动关闭了 |
68 zjiwgod 2023-10-07 02:29:59 +08:00 via Android 点击速度和李跳跳比如何 |
69 X21541 2023-10-23 11:17:22 +08:00 为啥装了以后,有些 app 会自动乱跳出一些回复窗口,比如百度贴吧。 |
70 MrCharlesWu 2023-10-24 11:21:48 +08:00 @lisongeee 楼主,感谢分享,这个软件用了段时间挺好用,只是在 MIUI14 上经常自动被关闭无障碍权限,软件是最新版,有空的话请帮忙看看是什么原因呢 |
71 mbooyn 2023-11-01 17:32:40 +08:00 真不错,学了一下,也能自己加本地规则了,好使啊,速度也非常快 |
72 hilljian 2023-11-09 10:49:19 +08:00 请问本地规则怎么加的?有教程吗? |
73 a6821630 2023-11-27 10:38:44 +08:00 苹果怎么使用呢? 下载什么 APP ? 或者 openwrt 怎么使用呢? |
74 BaseException 2023-12-06 13:32:01 +08:00 @a6821630 #73 openwrt 当然没法用。苹果也没有这个 app ,苹果能用 quanx |
75 baixian 2023-12-20 11:56:49 +08:00 安信证券可以添加一下规则吗? |
76 skyphone001 2023-12-20 18:18:04 +08:00 火了,这周 GitHub 1000 个星,牛逼啊 |
77 TechOrange 2023-12-21 16:37:05 +08:00 很不错,整个框架结构很清晰,开放的 DIY ,接下来可能需要应对某些厂商的恶意举报。由于有联网功能,未备案 app 可能被河蟹,扣上 zp 的帽子... |
78 zj 2024-02-06 12:17:31 +08:00 via iPhone 突然发现,2024 年 2 月初,作者停止维护规则了… |
79 s842646 2024-02-17 20:33:27 +08:00 via Android 没有什么基础想自己编写规则,能给点建议学哪些知识吗? |
80 wuyusite 2024-06-26 17:31:49 +08:00 升级到 1.8.0-beta.2 后感觉更加好用了,特别是配合 Shizuku 一起使用。 |
81 deutschendorfmar 305 天前 @lisongeee ,你还在吗,这个是你创作的?最近在用你这个,有个问题想请教:它能自动点击屏幕坐标吗?我支付宝刷地铁乘车码后会出现一个欢迎进站的窗口,很奇怪抓取那窗口的快照发现里面没有一个节点,所以无法自动点击左下角那个“刷站出码”,有点击坐标或怎样实现自动关闭那个页面呢? |
82 deutschendorfmar 305 天前 @lisongeee ,看到有说停止维护了,可是你给的链接 https://github.com/gkd-kit/gkd ,现在还有在更新呀,是你本人重新又维护吗? |
83 deutschendorfmar 270 天前 作者呢? |
84 wjh6665 231 天前 想知道耗电吗? |