Rover12421's Blog

The End.

源码库和源码差距很大呀

       今天兴起弄起了apktool的debug,1.4.3的apktool不知道咋搞的,都是最后一个版本了,居然把加不加“-d”参数输出的结果都一样,于是先重新编译一个,这次想用基于1.4.3的代码。整个过程都不咋顺利,吐嘈下,然后睡觉去。。。

       1.apktool git中的源码1.4.2和1.4.3差别只有一个文件,但是不涉及“-d”的参数,按理1.4.2也是不会输出java文件的,但是发布包,1.4.2用“-d”可以输出java文件,1.4.3不可以,对比了下jar包很分支源码,确实不一样。。。
       2.apktool 的Changelog页面上说1.4.2已经把smail更新到了v1.3.0,于是下了1.3.0的smail的jar包,结果有一处错误,在disassembleDexFile参数中使用了"main.DIFFPRE",但是找遍整个smail版本也找不到DIFFPRE信息。最后发现,apktool作者有自己修改smail,没有发不过,但是可以用git更新下来。不过现在smail已经到1.4.0了,apktool的作者在停止更新apktool之后也没修改过,所以我还是打算用最新的1.4.0.
        3.smail的库更改到1.4.0,发现不能直接使用"main”里的常量了,我打算用"main.FULLMERGE"代替apktool作者自定义的"main.DIFFPRE",现在不能直接引用,只好写魔数了。然后又多了一处错误,DexFileBuilder,java用到了CodeItem.fixInstructions方法,居然提示不存在。看源码,明明是有的,用jd查看jar代码,确实没有,main的常量定义也没,靠,太打击了吧。看来只能用git源码了。
        4.为嘛这些源码作者发布库要和源码有差距。。。。。。。。。。。。。。。。
       5.深圳都这么凉的天了,居然还有蚊子,咬死我了。。。

Comments