据我所知,apktool和baksmali都能够从.apk (.dex)文件中生成smali代码,apktool使用dexlib2。它们都是APK包装/解压工具。
但我仍然不清楚apktool和smali/baksmali之间的主要区别是什么。.dex文件和扩展特性的功能?
PS:我刚才发现的一个不同之处是apktool能够处理apk中的多个dex文件,而baksmali不能(至少暂时)。
我确实尝试过阅读源代码,但由于缺乏经验,我无法真正理解这两种工具的工作流程。如果有人能提出一些读数或流程图等建议,我将非常感激。
谢谢!
发布于 2017-03-30 18:10:28
smali/baksmali是dex格式的汇编程序/反汇编程序对。Baksmali接受一个dex文件并生成人类可读的程序集,而smali则接受人类可读的程序集并生成一个dex文件。
Apktool是一种更通用的包装和重新包装apk的工具。它实际上使用引擎盖下的smali/baksmali来组装/拆卸dex文件。它还将二进制资源和二进制xml文件解压缩回标准文本格式,等等。
发布于 2017-03-30 07:59:39
简而言之,apktool用于APK文件,baksmali用于DEX文件。
APK文件是一个具有特定结构的压缩归档文件。这代表了Android的应用程序。这是你的智能手机或平板电脑从市场下载,通常谷歌播放。归档文件由清单、资源、断言/数据文件、本机库和DEX文件组成。
DEX文件包含应用程序代码。详情请参见https://source.android.com/devices/tech/dalvik/dex-format.html。
还有一件事要说,apktool能够提取和打包资源文件。(我相信baksmali不会这么做,需要检查一下。)
https://stackoverflow.com/questions/43111057
复制相似问题