关于优化学校接水体验的小随笔
本人是一个普通大学的普通学生,这个普通大学装在宿舍的普通饮水机需要扫码使用,流程如下:
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( ̄▽ ̄)ブ
浙公网安备 33010602011771号