自定义一加钱包交通卡卡面(通过Fiddler实现)

自定义一加钱包交通卡卡面(通过Fiddler实现)

0x0 前言:为什么要折腾

本人因为去了外地上大学,所以手机里面早已开通的交通联合卡就派上了用场。无论是在北京转车坐北京地铁还是去沈阳旅游坐地铁,只要掏出手机【碰一下】就能很方便的进站出站。

然后我用的那个京津冀互联互通卡的默认卡面就很不够好看,并且在钱包里面还是不支持自定义的。经过半天的研究,于是就有了这篇文章。因为我之前都是在手机上使用小黄鸟进行重写,现在高版本安卓已经彻底无法使用,而它的后继者Reqable不支持移动端重写响应,所以我头一次使用了Fiddler。所以改卡的同时还顺便入门了Fiddler,也算是有点收获了。

0x1 探索:寻找入手点

因为我的手机root了,所以我首先想到的是自己写一个xposed模块来实现这个功能。不过经过一段时间的逆向工程之后,并没有在浩如烟海的smail中找到一个合适的入手点。因为我本来就只写过一次xposed插件,各种骚操作还是了解不多

于是我就转换思路,通过在钱包的数据目录里查找我开通的“京津冀互联互通卡”这个字符串,我定位到了位于它数据目录里database/wallet这个数据库。

通过查看这个数据库,发现卡面的图像url就存在这个数据库里,并且这个数据库还存储了其他可以开的卡的卡面url。

已开通的交通卡卡面

可以开通的其他交通卡信息

我的第一反应是直接修改这个数据库,然而并没有奏效。在经过多次尝试之后,我发现这跟钱包app的缓存机制有关系,第一次请求拿到之后就不再进行多次请求获取。但问题又来了,这个缓存文件放在哪里我通过各种办法找了很多次,也没有找到。唯一已知的是它没有被放在缓存区,因为设置里面的清除缓存对它是无效的。

由于我在钱包app里面除了这个卡没有其他的服务,而这些卡片数据是云同步(或者放在其他不会被清除的区域里,这不重要,反正就是清除数据以后还在就对了)所以我最终使用了清除数据+fiddler抓包的方法来修改卡面。

0x2 实操:抓包法应用

首先你得准备一个自己的卡面,可以随意设计,不用预留四角的圆角。

卡面中央的灵梦画像PID:101731016,本人仅娱乐用途自用,没有也不会用于任何商业用途,侵删。

交通联合Logo仅仅说明卡片类型,同样仅娱乐用途自用,没有也不会用于任何商业用途。

卡面设计

fiddler是一个抓包软件,我们可以通过连接到它的http代理的形式来在电脑上抓取手机的数据包。关于Fiddler如何启用https抓取,请自行百度,这不是本文重点。

注意!因为涉及到https数据包的操作,的这里的操作需要安装Fiddler证书到系统目录,我使用的方案是MoveCertificate模块自动移动的方案,省事省心,不过这里还涉及到一个证书格式从crt转换到der的操作,具体请自行百度,这里只贴相关命令:

1
2
3
openssl x509 -in .\FiddlerRoot.cer -outform der -out tmp.der
openssl x509 -inform der -subject_hash_old -in tmp.der #获取hash,用于安卓的安装
mv tmp.der {hash}.0

安装完CA之后在手机那里设置好代理指向fiddler的服务(电脑ip:8888)就可以抓包了。

首先清除钱包APP的数据,再次打开钱包应用时,可以在fiddler上看到许多它产生的请求,其中就包括了我们的默认卡面图像:

默认卡面的请求

重写这个响应,我们需要给这个url下一个断点。首先我们在这张图片对应的请求右键Copy->Just Url拿到这个url(实际上和上面数据库里面的是一样的),然后再在下面的命令输入框输入bpu 默认卡面url然后回车,下次再遇到这个请求就会被拦下,让我们任意摆布:

断点设置

设置好断点之后我们再次清除钱包APP的数据,这次你点进乘车页面会发现它的卡面没有加载出来,这就说明已经这个响应被拦截,同时Fiddler中可以找到这个被拦截的请求:

没有加载出来的卡面

被拦截的请求

这时候就是考验我们手速的时候了,点进这个请求,在Choose Respose中选择Find a File,打开你准备好的卡面图片,再点击Run to Completion,如果在钱包判定这个请求超时之前(也许是30s?15s之类的)你完成了这一套小连招,你就能在手机上看到你改好的卡面了:

重写响应操作栏

重写后

手机端效果

由于我前面提到的缓存机制,这个卡面并不会在没有清除数据的情况下消失,你可以放心地撤掉Fiddler的代理然后拿着这个自定义卡面到处刷了。Enjoy it!


自定义一加钱包交通卡卡面(通过Fiddler实现)
https://www.hakurei.org.cn/2025/10/05/oneplus-wallet-custom-cardskin/
作者
zjkimin
发布于
2025年10月6日
更新于
2025年10月6日
许可协议