一,安装Apktool
1, 下载Windows 包装器脚本
下载Windows 包装器脚本(右键单击,将链接另存为apktool.bat
)
2, 下载apktool-2
https://bitbucket.org/iBotPeaches/apktool/downloads/
2.1, 将下载的jar重命名为 apktool.jar
2.2,将下载文件放入指定文件夹,并添加环境变量
2.3,进入存放目录中,验证
二,使用apktool
2.1命令介绍
可以随时执行的选项。 通过 apktool或者apktool.bat实现
-version, --version
输出当前版本。
-v, --verbose
详细输出。必须作为第一个参数来使用。
-q, --quiet
隐藏输出,即输出不显示详细信息,必须是第一个参数来使用。
-advance, --advanced
提前使用输出,输出详细信息。
空框架目录
这些是清除框架目录时的所有选项。
-f, --force
强制删除目标目录。
-p, --frame-path <DIR>
从中加载框架文件的位置
解码(反编译)
这些是解码apk时的所有选项, 也就是咱么所用来反编译操作的选项。通过apktool d testapp.apk来实现,也支持apktool.bat操作方式。
-api, --api-level <API>
要生成的smali文件的数字api级别(默认为targetSdkVersion)
-b, --no-debug-info
防止baksmali写出调试信息(.local,.param,.line等)。如果您要比较来自不同版本的相同APK的smali,则首选使用。行号和调试将在版本之间发生变化,这会使DIFF报告变得很痛苦。
-f, --force
强制删除目标目录。尝试解码到已存在的文件夹时使用,也就是再次反编译会覆盖之前已经存在的目录文件。
**--force-manifest- **v2.3.1****
无论资源标志的解码如何,都强制解码AndroidManifest。
--keep-broken-res- 高级
如果出现“检测到无效配置标志。删除资源...”之类的错误。这意味着APK具有与Apktool可以处理的不同结构。这可能是较新的Android版本或与标准不匹配的随机APK。运行此操作将允许解码,但是您必须手动修复其中包含-ERR的文件夹。
-m, --match-original- 用于分析
匹配尽可能与原始文件最接近的文件,但会 阻止重建。
-o, --output <DIR>
apk被写入的文件夹的名称,也就是反编译后输出的指定目录。
-p, --frame-path <DIR>
应存储/读取框架文件的文件夹位置
-r, --no-res
这将阻止资源的反编译。这保持resources.arsc完整无需任何解码。如果只编辑Java(smali),那么这是更快反编译和重建的推荐操作
-s, --no-src
这将阻止dex文件的反汇编。这将保留apk dex文件,并在构建期间简单地移动它。如果您只是编辑资源。这是更快拆卸和组装的推荐操作
-t, --frame-tag <TAG>
使用通过标记的框架文件 <TAG>
重建(编译)
这些是构建apk时的所有选项。通过 apktool b apptest来使用。
-a, --aapt <FILE>
从指定的文件位置加载aapt,而不是依赖路径。PATH引用prebuilt custom aapt。这很可能不起作用。
-c, --copy-original
将原始文件夹AndroidManifest.xml和META-INF文件夹复制到内置apk中。官网准备计划 弃用,可用于保持签名。
-d, --debug
添加debuggable="true"到AndroidManifest文件。在debug模式下打包。
-f, --force-all
在构建期间覆盖现有文件,重新组装resources.arsc文件和dex文件,在打包时重写已经存在的文件,强制覆盖。
-o, --output <FILE>
写入的apk的名称和位置,输出apk的位置和名字。
-p, --frame-path <DIR>
从中加载框架文件的位置,保存framework文件到指定目录。
2.2 测试
.\apktool.bat d .\douyin.apk
网友评论