[Android][逆向][反编译]Apktool命令行参数大全

216 阅读2分钟

Apktool CLI参数大全

实用选项

用于实用命令的选项(apktool {options})

  • --advance (-advance)

    显示高级使用输出。

  • --version (-version)

    输出当前软件版本。 (例如:1.5.2)

解码选项

用于解码命令的选项(apktool d file.apk {options})

  • --api-level <API> (-api <API>)

    设置生成的smali文件中使用的API级别。默认为targetSdkVersion。

  • --no-debug-info (-b)

    防止baksmali写出调试信息(.local、.param、.line等)。

  • --force (-f)

    强制删除目标目录。

  • --force-manifest

    强制Apktool解码AndroidManifest.xml,而不考虑解码选项。

  • --keep-broken-res

    如果出现错误并且某些资源被丢弃,但仍要解码它们,请使用此选项。例如:检测到无效的配置标志。删除资源。您需要在构建之前手动修复它们。

  • --match-original (-m)

    尽可能与原始文件匹配生成的文件。可能会阻止重新构建。

  • --no-assets

    防止解码/复制未知的资产文件。

  • --only-main-classes

    仅反汇编位于应用程序根目录的dex类。

  • --frame-path <DIR> (-p <DIR>)

    设置存储/读取框架文件的文件夹。

  • --no-res (-r)

    防止反编译资源。保持resources.arsc完整。

  • --resource-mode <mode> (-resm, --resource-mode <mode>)

    设置解析资源时使用的模式。

    • remove (默认) - 删除无法解析的资源。
    • dummy - 为无法解析的资源添加虚拟资源。
    • keep - 使用APKTOOL_MISSING_{resId}命名法保留未解析的资源。
  • --no-src (-s)

    防止反汇编dex文件。保持dex文件不变并在构建时移动它们。

  • --frame-tag <TAG> (-t, --frame-tag <TAG>)

    使用由TAG标记的框架文件。

构建选项

用于构建命令的选项(apktool b folder {options})

  • --aapt <FILE> (-a)

    从指定位置加载aapt/aapt2二进制文件。这些将代替内部版本使用。

  • --api-level <API> (-api <API>)

    设置要构建的smali文件的API级别。默认为minSdkVersion。

  • --copy-original (-c)

    复制原始的AndroidManifest.xml和META-INF。

  • --debug (-d)

    将debuggable="true"添加到AndroidManifest.xml。

  • --force-all (-f)

    在构建过程中覆盖现有文件。包括资源和源代码。

  • --net-sec-conf (-n)

    在apk中添加一个通用的网络安全配置文件。

  • --no-crunch (-nc)

    在构建过程中禁用资源文件的压缩。这将防止aapt/aapt2进行自动位图优化。

  • --output <FILE> (-o)

    设置输出apk的名称。默认为dist/{apkname}.apk。

  • --frame-path <DIR> (-p <DIR>)

    设置存储/读取框架文件的文件夹。

  • --use-aapt1

    使用aapt而不是aapt2。在Apktool v2.9.0及以上版本中,默认使用aapt2。

  • --use-aapt2

    使用aapt2而不是aapt。在Apktool v2.8.2及以下版本中,默认使用aapt。