Apktool惊天沙雕大bug
2019-06-11 本文已影响0人
任易Change
先记录,有时间慢慢研究。
结论:官方版本apktool decode出来的目录不做任何修改重新build经常会报找不到资源错误,是因为部分资源decode出来如下:
renyideMacBook-Pro:tmp renyi$ vi /Users/renyi/tmp/castbox/res/menu/z.xml
<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@id/bl" android:title="@string/te" app:showAsAction="vu" />
<item android:id="@id/bm" android:title="@string/tf" app:showAsAction="vu" />
</menu>
正确内容应该将showAsAction换成s0,因为本身apk被混淆过,强行decode成明文反而会导致无法被识别。
这个问题在作者的issue里也提到了,并且最后的一个哥们给出了他处理过的apktool.jar解决了这个问题。链接
But!!!
这个小哥给的jar虽然可以正常处理混淆问题但是总是会把array类型的资源搞丢,你去res/values/arrays.xml中发现item都没了。好傻逼。不过还好除了这个暂时没发现其他问题。
于是正常的流程:用小哥的apktool decode,然后用官方apktool decode出来的arrays.xml替换掉前者目录中的相应文件。
你说沙雕不沙雕?