ChanJLee
ChanJLee
## bug产生的场景 old apk有5个dex,classes.dex ... classes4.dex, new apk 有6 个dex, classes.dex ... classes5.dex。当计算classes5.dex的变更的时候,因为classes5.dex没有在old apk中存在,所以就直接把classes5.dex[写入最终的patch包中了]( https://github.com/Tencent/tinker/blob/d7c7e607bcac34fef24dcd298e6839566b5c88a1/tinker-build/tinker-patch-lib/src/main/java/com/tencent/tinker/build/decoder/DexDiffDecoder.java#L203) 相关日志如下: ``` DexDecoder:add newly dex file: DexDecoder:write meta file data: classes5.dex,,81d839f97245fb1ea48fb6e2ed387c94,81d839f97245fb1ea48fb6e2ed387c94,0,0,3963140505,raw ``` 当开启加固模式时,patch的构建需要计算出变更的类有哪些,当变更的类比较多且产生大于6个dex文件的时候,可能会[覆写之前的classes5.dex](https://github.com/Tencent/tinker/blob/d7c7e607bcac34fef24dcd298e6839566b5c88a1/tinker-build/tinker-patch-lib/src/main/java/com/tencent/tinker/build/decoder/DexDiffDecoder.java#L492),最终导致客户端在加载patch时验证dex的md5失败。 相关日志: ```...
https://github.com/nickbutcher/plaid