Apktool 反编译 APK 实战指南:解码、修改与重新打包
2026/9/5 18:26:21 网站建设 项目流程

Apktool 反编译 APK 实战指南:解码、修改与重新打包

【免费下载链接】ApktoolA tool for reverse engineering Android apk files项目地址: https://gitcode.com/GitHub_Trending/ap/Apktool

拿到一个别人打包的 APK,想看看里面到底写了什么资源、smali 代码长什么样,甚至改个文案重新装回去?Apktool 就是为此设计的——它把二进制 APK 解码成接近源码的项目结构,改完再重新编译,还能管理系统框架。

从下载到看到第一条输出

Apktool 只依赖一个 Java 环境,JDK 11 以上即可。拿到可运行的apktool.jar后,先验证能不能跑起来:

java -jar apktool.jar v

输出一行版本号就说明环境没问题。想省事就用官方预编译的 jar;要改源码,就从 GitCode 拉一份自己构建:

git clone https://gitcode.com/GitHub_Trending/ap/Apktool

源码主要分两块:命令行入口 负责解析参数,核心库 负责真正的解码与打包。

反编译、修改、重新打包三步走

第一步:解码。把 APK 展开成资源加 smali 的目录:

java -jar apktool.jar d app.apk

默认在同名目录下生成AndroidManifest.xmlres/smali*/

第二步:修改。文本类的都能直接动——res/values/strings.xml里的文案、AndroidManifest.xml的权限声明,甚至smali里的字节码指令。

第三步:打包。回到解码目录,一条命令重建:

java -jar apktool.jar b app

产物默认落在dist/app.apk

有些 App 依赖私有系统框架,解码时会报“framework 缺失”。先把那个框架 APK 装进框架库,再解码:

java -jar apktool.jar if framework-res.apk

打包前必查的 apktool.yml 字段

解码时 Apktool 会在根目录写一个apktool.yml,打包时它照着这份清单还原结构。几个关键字段值得留意:

字段含义
apkFileName原始 APK 文件名,决定最终产物命名
usesFramework引用的框架(ids/tag),跨框架的 App 依赖它
usesLibrary额外引入的共享库列表
sdkInfominSdkVersion/targetSdkVersion/maxSdkVersion三个边界
versionInfoversionCodeversionName
doNotCompress不能压缩的文件清单,保证这些文件打包时保持原样

其中targetSdkVersion最容易踩坑:App 在低版本系统上行为异常,往往就是它和minSdkVersion的取值没对上。想调整目标 SDK,改sdkInfo下对应的那一行就够了。

常用参数与典型坑 🛠️

解码时按需裁剪,能省不少时间:

参数作用
-s/--no-src只解资源、跳过 smali,大 App 上明显更快
-r/--no-res只看代码逻辑时,不解资源
-f/--force目标目录已存在时强制覆盖
-o/--output自定义输出目录
-a/--all-src连非标准的classes*.dex一起解码

两个高频坑:一是改了res里的资源却没重新解码,直接b会报资源缺失,此时用--keep-broken-res或重新d一次;二是产物装不上,多半是usesFramework里那个框架没在目标机器上安装。

速查表

命令用途
d/decode反编译 APK
b/build重新打包
if/install-framework安装框架文件
lf/list-frameworks列出已安装框架
cf/clean-frameworks清理框架库
v/version查看版本
h/help查看完整帮助

想深入的话,可以顺着 参数解析逻辑 看每个选项如何落到Config,或研究 ApkDecoder 的解码主流程。

【免费下载链接】ApktoolA tool for reverse engineering Android apk files项目地址: https://gitcode.com/GitHub_Trending/ap/Apktool

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询