关于优化学校接水体验的小随笔

本人是一个普通大学的普通学生,这个普通大学装在宿舍的普通饮水机需要扫码使用,流程如下:
1.打开app
2.点击“扫码”
3.对准机器上的二维码
4.点击“确定”开始接水

这个流程其实没什么问题,但是每次都要让我拿着手机对着二维码扫真的很麻烦
(感觉这也是app的问题,大家平时一般只在固定的饮水机接水,为什么不能加一个“最近使用的饮水机”的功能呢?可能是无法区分不同的饮水机吧)

所以我决定干点什么来舍弃掉扫码的过程

本人完全没有这方面的经验,所以依然请教GPT老师

原本我的思路是:
监听扫码这个过程到底向服务器发送了什么请求,然后每次要用的时候就把一摸一样的请求发送给服务器

但是把APK文件发给GPT老师之后,它就推翻了这个思路
因为请求中涉及到密钥这些我没办法自主生成的保密部分,所以我就没办法构造请求

好消息是二维码是由固定文本生成的:设备类型标识 + 设备通信模式 + 饮水机的编号
不同的饮水机只有饮水机编号不同
也就是说,可以直接把二维码文本传给app,省略掉扫码这个过程

但是随后GPT老师就说:NoNoNo
app中确实有一个内置函数,用于将扫描的二维码包含的文本上传
但是这个函数只会在扫码完成后调用,是没办法外部调用的

除非...
我们直接修改app内部,给这个函数加一个额外入口,允许我直接将二维码文本传给app

但是我这方面真的是没有一点经验,只好交给GPT老师了
老师直接下载了一堆奇奇怪怪的工具,反编译,编译

最后搞出来了一个改版app和一个接水助手

之后接水只需要点开接水助手,点击对应的饮水机,然后助手就会将该饮水机对应的二维码文本传给app
然后就可以美美接水了

但是还是有小瑕疵:为了接水,我下载了三个app
原版app,改版app,接水助手

为什么要留原版app呢?
因为app签名等的问题,导致改版app没有办法正常充值

我尝试了能否在不修改app的情况下从外部调用这个函数,但好像因为安卓的app协议不允许就放弃了
除非尝试root,但是从开始到现在已经花了快两天的时间了,我也欠缺这方面的知识

只好等之后学成归来再继续尝试了

不过我还是很高兴我愿意动手去折腾,不仅优化了我的接水体验,还学到了不少安卓小知识
嘻嘻

o( ̄▽ ̄)ブ

posted @ 2026-07-16 17:58  颜开Young  阅读(5)  评论(0)    收藏  举报