Apktool惊天沙雕大bug

先记录,有时间慢慢研究。
结论:官方版本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替换掉前者目录中的相应文件。
你说沙雕不沙雕?

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容