- 1
- 2
- 3
- 4
- 5
- 6
到此API相关的就结束了,剩下的就是考虑patch如何生成 。
patch生成
提供了patch生成的工具,源码见:-patch-cli,打成一个jar就可以使用,并且提供了命令行相关的参数以及文件 。
命令行如下:
java -jar tinker-patch-cli-1.7.7.jar -old old.apk -new new.apk -config tinker_config.xml -out output
- 1
- 1
需要注意的就是.xml,里面包含的配置,例如签名文件等 。
这里我们直接使用提供的签名文件,所以不需要做修改,不过里面有个的item修改为与本例一致:
- 1
- 1
大致的文件结构如下:
文章插图
可以在-patch-cli中提取,或者直接下载文末的例子 。
上述介绍了patch生成的命令,最后需要注意的就是,在第一次打出apk的时候,保留下生成的文件,在/build////.txt 。
可以copy到与-rules.pro同目录,同时在第二次打修复包的时候,在-rules.pro中添加上:
-applymapping mapping.txt
- 1
- 1
文章插图
保证后续的打包与线上包使用的是同一个文件 。
本身的混淆相关配置,可以参考:
如果,你对该部分描述不了解,可以直接查看源码即可 。
测试
首先随便生成一个apk(API、混淆相关已经按照上述引入),安装到手机或者模拟器上 。
然后,copy出.txt文件,设置,修改代码,再次打包,生成new.apk 。
两次的apk,可以通过命令行指令去生成patch文件 。
如果你下载本例,命令需要在[该目录]下执行 。
最终会在文件夹中生成产物:
文章插图
我们直接将.apk push到,点击,一定要观察命令行是否成功 。
文章插图
本例修改了title 。
点击,观察log,如果成功,应用默认为重启,然后再次启动即可达到修复效果 。
到这里命令行的方式就介绍完了,和的接入的方式基本上是一样的 。
值得注意的是:该例仅展示了基本的接入,对于的各种配置信息,还是需要去读的文档(如果你确定要使用)-wiki 。
(2)接入
接入的方式应该算是主流的方式,所以也直接给出了例子,单独将该--以方式引入即可 。
引入之后,可以查看其接入API的方式,以及相关配置 。
在你每次build时,会在build/下生成本地打包的apk,R文件,以及文件 。
如果你需要生成patch文件,可以通过:
./gradlew tinkerPatchRelease// 或者 ./gradlew tinkerPatchDebug
- 1
- 1
生成 。
生成目录为:build//
需要注意的是,需要在app/build.中设置相比较的apk(即old.apk,本次为new.apk),- HA Keepalived案例一:Keepalived双机热备精讲
- 2023年小暑热吗
- 十 LiveVideoStackCon讲师热身分享 —— “新潮”AI硬
- CSZ CMS 1.2.7 用户私信XSS漏洞复现+审计+修复建议
- Ubuntu 18.04.5 LTS 引导修复
- NOIP2017列队
- 【Python爬虫】CSDN热榜文章热门词汇分析
- 韩国进口方便面煮面三养火鸡面热干拌面要怎么吃
- amd积热是什么意思
- ipc开头的热点是啥