一、前言
前一段时间才偶然看到这个论坛,并且看了一篇@jiangwei212 大神的《Android支付宝蚂蚁森林能量自动收取插件开发原理解析》,这才知道XPosed和VirtualXPosed的存在,觉得这个框架神器非常的有意思,所以继续学习了框架原理和使用方法,我发现有一些做支付宝微信自动收款提醒的网站,有生成二维码的功能,但是我没有找到相关开源的插件,所以就拿支付宝二维码这个功能先练练手,这个插件用来实现自定义备注内容和支付金额,自动生成付款二维码。下面就是我hook支付宝,反编译代码找到关键点的一些思路。
二、寻找突破口
首先需要找到入手点,生成二维码的页面在支付宝首页中的【收款】选项里,点击进入后是一个可以设置金额备注生成二维码的页面,这个页面可以用adb shell dumpsys activity top命令查看到顶层Activity是哪一个,或者更简单一点,在logcat中,搜索ActivityManager,看看对应启动的activity是哪一个,会发现是PayeeQRActivity:
接下来,就需要反编译支付宝的apk,然后看一下这个类的实现,这里会有两个问题:
-
我们都知道二维码是把一些信息写入二维码图片中,那么支付二维码都需要写入哪些信息呢?
-
知道了写入信息,那接下来便是如何生成一个二维码了。
关于第一个问题,很容易想到,我们要能够设置备注和金额,所以这两个信息也是必须的,其它还需要哪些信息呢?需要我们看一下具体代码,首先就是onCreate方法:
刚一进入onCreate,我们就能看到