Tencent / tinker

Tinker is a hot-fix solution library for Android, it supports dex, library and resources update without reinstall apk.
Other
17.1k stars 3.33k forks source link

关于签名验证和patch失败的疑问 #1705

Open tonyzzp opened 1 year ago

tonyzzp commented 1 year ago

翻了文档和issue,也没有找到想要的答案,所以在这里请教一下。

1,如果打的patch不想要签名,那是否只能自己实现PatchUpdate,重写里面的tryPatch方法,把验证签名的部分去掉?load时好像也会验证签名,是否也要同步修改?

2,在出现某些错误的时候(patch或者load过程中),会自动清除掉所有patch。我有一些特殊需求,需要在这种情况下额外清除一些东西。我是否只能自己实现loadreporter patchreporter,在相应位置去处理。有没有一个统一的地方能知道因为失败导致所有patch被自动清除了?

3,接上面的问题。如果是加载过程中出错,导致所有patch被删除,我在loadreporter中监听到这个事件,那这时候应用的生命同期应该还在application内,其他的代码都还没有执行到吧? (因为按我的理解,load patch应该是在attachbasecontext里执行的?)

4,安装完一个patch后,重启前,有没有简单的办法把刚安装的patch再删掉,让应用恢复到上一个patch的状态?似乎要手动改patchinfo文件才行?

疑问有点多,希望高手赐教。