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替换掉前者目录中的相应文件。
你说沙雕不沙雕?

上一篇下一篇

猜你喜欢

热点阅读