apktool 和 baksmali 的区别
Differences between apktool and baksmali
据我所知,apktool 和 baksmali 都可以从 .apk (.dex) 文件中生成 smali 代码,并且 apktool 使用 dexlib2。它们都是 APK packing/unpacking 工具
但我仍然不清楚 apktool 和 smali/baksmali. 在 .dex 文件的功能和扩展功能方面的主要区别是什么?
PS:
我刚刚发现的区别之一是 apktool 能够处理 apk 中的多个 dex 文件,而 baksmali 不能(至少暂时)
我确实尝试阅读了源代码,但由于缺乏经验,我无法真正理解这两个工具的工作流程。如果有人能推荐一些阅读材料或流程图等,我将不胜感激
谢谢!
简而言之,apktool
用于 APK 文件,baksmali
用于 DEX 文件。
APK 文件是一个具有特定结构的 zip 压缩文件。这代表 Android 应用程序。这是您的智能 phone 或平板电脑从市场上下载的内容,通常是 Google 播放。存档由清单、资源、asserts/data 文件、本机库和 DEX 文件组成。
DEX 文件包含应用 code。有关详细信息,请参阅 https://source.android.com/devices/tech/dalvik/dex-format.html。
还有一点要说的是,apktool
可以提取并打包回资源文件。 (我相信 baksmali
不会那样做,需要检查。)
smali/baksmali 是 dex 格式的 assembler/disassembler 对。 Baksmali 获取一个 dex 文件并生成人类可读的程序集,而 smali 获取人类可读的程序集并生成一个 dex 文件。
Apktool 是一个更通用的解包和重新打包 apk 的工具。它实际上在幕后使用 smali/baksmali 来 assemble/disassemble dex 文件。它还将二进制资源和二进制 xml 文件解压回标准文本格式等
据我所知,apktool 和 baksmali 都可以从 .apk (.dex) 文件中生成 smali 代码,并且 apktool 使用 dexlib2。它们都是 APK packing/unpacking 工具
但我仍然不清楚 apktool 和 smali/baksmali. 在 .dex 文件的功能和扩展功能方面的主要区别是什么?
PS: 我刚刚发现的区别之一是 apktool 能够处理 apk 中的多个 dex 文件,而 baksmali 不能(至少暂时)
我确实尝试阅读了源代码,但由于缺乏经验,我无法真正理解这两个工具的工作流程。如果有人能推荐一些阅读材料或流程图等,我将不胜感激
谢谢!
简而言之,apktool
用于 APK 文件,baksmali
用于 DEX 文件。
APK 文件是一个具有特定结构的 zip 压缩文件。这代表 Android 应用程序。这是您的智能 phone 或平板电脑从市场上下载的内容,通常是 Google 播放。存档由清单、资源、asserts/data 文件、本机库和 DEX 文件组成。
DEX 文件包含应用 code。有关详细信息,请参阅 https://source.android.com/devices/tech/dalvik/dex-format.html。
还有一点要说的是,apktool
可以提取并打包回资源文件。 (我相信 baksmali
不会那样做,需要检查。)
smali/baksmali 是 dex 格式的 assembler/disassembler 对。 Baksmali 获取一个 dex 文件并生成人类可读的程序集,而 smali 获取人类可读的程序集并生成一个 dex 文件。
Apktool 是一个更通用的解包和重新打包 apk 的工具。它实际上在幕后使用 smali/baksmali 来 assemble/disassemble dex 文件。它还将二进制资源和二进制 xml 文件解压回标准文本格式等