浅析微信系列之漂流瓶
本次是分析微信最新版7.0.13(1640),手里没有android 10 设备,想体验一下深色模式,本文将手摸手带你实现(体验)微信的深色模式。
准备工作
-
apktool
-
jadx
-
notepad++/sublime/其他好一点的文本编辑器
-
准备好这些工具之后,就可以开始了。为了让文章表达的内容具备可操作性,将按顺序步骤说。
详细步骤
apktool
apktool d weixin7013.apk
得到反编译后的文件夹weixin7013
,导入到sublimetext
备用。
jadx
打开jadx-gui
选择weixin7013.apk
,等待jadx反编译完成。
线索
我是按自己的经验来的,在weixin7013/res/values/string.xml
先搜索深色模式
1,得到箭头所指的name="bbl"
2,去weixin7013/res/values/public.xml
搜索bbl
这个id
3,得到结果如图:
类型一定要找对,<public type="string" name="bbl" id="0x7f100b53" />
type是string类型.
现在复制一下0x7f100b53
4,win7自带的计算器,把这个16进制的值转换为10进制值,结果为2131757907
5,切换到jadx-gui搜索2131757907
6,一开始以为dark_mode_notice_dialog
这个值为true
就是可以开启深色模式,后来测试没法开启。
7,在这个类的上一个方法看见了日志dark mode kvReport logID:%s , action: %s, isDark:%s
8,hook了ag.Es()之后,重启微信,发现微信底部的Tab背景颜色变黑了。并没有全局暗黑模式。跟想象中的有一丢丢不同。
9,点开ag.Es()
方法看看去:
10,当我hook图中j
方法时,就已经可以了,重启微信就开启了暗黑模式。贴代码(白嫖党福利):
成果
结束
- 这次基本靠猜。
- 如果你/贵公司有啥相关的需求,可私信哦。
- 请尊重原创,Javaer