如何快速上手 Apktool:反编译 Android APK 的完整新手指南

发布时间:2026/8/22 15:57:46
如何快速上手 Apktool:反编译 Android APK 的完整新手指南 如何快速上手 Apktool反编译 Android APK 的完整新手指南【免费下载链接】ApktoolA tool for reverse engineering Android apk files项目地址: https://gitcode.com/GitHub_Trending/ap/ApktoolApktool 是一款用来逆向 Android APK 文件的开源工具它能把一个打不开源码的 APK 拆成可读的资源文件和 smali 代码改完之后再帮你打包回新的 APK。最值钱的一点是——它让逆向这件事从黑盒变成了普通的文件编辑工作。你不需要会 Java也能看懂并修改一个应用的资源。一分钟跑通第一条命令只需要两样东西Java 环境建议 64 位系统里装好 JDK 即可和 Apktool 本身。如果你手边没有现成的 apktool.jar可以从仓库地址https://gitcode.com/GitHub_Trending/ap/Apktool克隆源码后构建或直接使用构建好的发布包。拿到之后在终端里对任意一个 APK 执行java -jar apktool.jar d sample.apk这一步的作用是解码decodeAPK。几秒后你会得到一个sample目录里面躺着一整套项目化的文件AndroidManifest.xml—— 应用清单权限、组件一目了然res/—— 全部资源字符串、图片、布局都还原成了几乎原始的样子smali/—— 字节码反汇编出来的 smali 代码可以逐步调试apktool.yml—— 记录本次解码信息的配置文件original/—— 原始的清单和签名文件备份你打开res/values/strings.xml就能看到应用里所有的文案这就是逆向分析的起点。三个核心命令覆盖 90% 的场景1. ddecode把 APK 拆成项目上面就是解码命令。它带几个常用开关-s只解资源不解代码快、-r只解代码不解资源、-o指定输出目录、-f目标目录已存在时强制删除重建。只关心文案和图片时用-s速度会快很多。2. bbuild把项目重新打包成 APK改完文件后在项目目录里执行java -jar apktool.jar b它会读取apktool.yml里的配置把资源重新编译、把 smali 反汇编回 dex最终在dist/下生成一个新的xxx.apk。-f可以跳过变更检测强制全量构建-o可以改输出文件名。3. ifinstall-framework安装框架资源有些应用尤其是系统应用引用了 Android 框架里的资源解码前需要先把框架装好java -jar apktool.jar if framework-res.apk装完后用lf可以列出已安装的框架。配套的cf命令则用来清理框架。读懂 apktool.yml反编译项目的身份证每解码一个 APK项目根目录都会生成apktool.yml重新编译时它就是关键配置。里面记录着version/apkFileName—— 生成项目时用的 Apktool 版本和原 APK 文件名versionInfo—— 原应用的 versionCode 和 versionNamesdkInfo—— 目标 SDK 版本usesFramework/usesLibrary—— 依赖的框架和共享库doNotCompress—— 哪些文件打包时不能压缩一般你不用手动改它。想调整编译行为比如让打包后的 APK 可调试直接在b命令上加--debuggable这类参数更省事。实战给应用加一行自己的文案重新打包假设你想把某个应用里的确定按钮改成好的完整流程是java -jar apktool.jar d sample.apk得到 sample 目录打开sample/res/values/strings.xml把对应的字符串改掉java -jar apktool.jar b sample在dist/下得到新的 APK把新 APK 传到手机上安装验证整个过程没有一行 Java 代码改的就是纯文本 XML。如果你还想改逻辑思路一样定位smali/下的对应类编辑.smali文件再执行b即可。项目目录速览源码在哪找如果你要参与开发或者想搞懂原理项目是标准的多模块 Gradle 工程brut.apktool/apktool-cli/—— 命令行入口Main.java里定义了 d、b、if、cf、lf 这些命令和全部参数brut.apktool/apktool-lib/—— 核心库解码器ApkDecoder、打包器ApkBuilder、资源解析、smali 反汇编都在src/main/java/brut/androlib/下brut.j.util/、brut.j.dir/等 —— 底层工具类IO、目录、XML、YAML 读写scripts/—— Linux、macOS、Windows 三个平台的启动脚本测试用例集中在apktool-lib/src/test/每个测试都对应一类真实踩过的坑读它们是最好的教程新手最容易踩的 3 个坑坑 1输出目录已存在解码直接报错。再次解码同一个 APK 时会提示目录冲突加-f强制覆盖即可注意这会删掉你上次改的内容建议先备份。坑 2报framework not found。通常是要解码系统应用或自定义 ROM 应用先用if安装对应版本的框架 APK再用-p指定框架目录。坑 332 位 Java 已经不被支持了。启动时会看到警告直接换成 64 位 JDK 就能解决。另外提醒一句Apktool 的设计用途是本地化、加功能、研究学习这类正当场景请对原作者保持公平别用于盗版。小结Apktool 把逆向 APK 压缩成了三步d拆开看、改文件、b装回去。上手路径很短——装好 Java跑一条解码命令你就已经站在逆向的门槛里了。下一步建议找一个小众应用完整走一遍解码—修改文案—重打包—安装的闭环再用if/lf玩一玩框架管理基本就算入门了。【免费下载链接】ApktoolA tool for reverse engineering Android apk files项目地址: https://gitcode.com/GitHub_Trending/ap/Apktool创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考