Apktool 怎么用:APK 解包与重打包的完整指南 📅 2026/8/22 18:54:30 Apktool 怎么用APK 解包与重打包的完整指南【免费下载链接】ApktoolA tool for reverse engineering Android apk files项目地址: https://gitcode.com/GitHub_Trending/ap/Apktool拿到一个闭源的 Android APK想改一行文案、调一个权限却只能对着二进制文件干瞪眼这就是 Apktool 出场的地方它能把 APK 里的资源和代码拆成接近原始形态的可读文件你改完之后它再帮你重打包回可用的 APK。目标人群很明确逆向工程师、应用安全审计人员、想给 App 做本地化的开发者以及单纯想看懂别人代码的人。从 0 到第一次成功两条命令跑通解包与重打包⚡️ 最短路径只需要一条解码命令和一条构建命令。如果你手头没有现成的 apktool可以从源码构建git clone https://gitcode.com/GitHub_Trending/ap/Apktool cd Apktool ./gradlew build随后对任意 APK 执行apktool d -o 输出目录 你的apk路径 # 例apktool d -o my_app_out my_app.apk解码完成后你会得到一个工程式目录res/里是资源文件smali/里是反汇编的代码AndroidManifest.xml则是可编辑的明文清单。跟一个真实任务走改掉 App 里的一句提示文案这一步是逆向里最高频的需求全程 4 步每步都有存在的理由。解包。执行上面的apktool d得到my_app_out/。为什么不直接 unzip因为 APK 里的AndroidManifest.xml和resources.arsc都是二进制格式zip 解出来是乱码Apktool 会解析成可读的 XML。定位并修改。打开my_app_out/res/values/strings.xml找到目标文案改掉。资源文件是纯文本改起来和改普通配置文件一样不需要任何额外工具。重打包。执行apktool b my_app_out -o 输出apk路径例apktool b my_app_out -o my_app_mod.apk。Apktool 会把文本资源重新编译回二进制格式并合并回 APK。签名对齐。重打包的 APK 是未签名的直接安装会被系统拒绝需要用 apksigner 签名后再用 zipalign 对齐详见后文搭档工具部分完成后安装即可看到你的修改生效。✅如果你只关心清单而不想动资源解包时加--only-manifest可以大幅提速省去资源编译那一步。常见翻车点现象、原因和解决办法⚠️现象提示 Out directory already exists 或解包被跳过。原因是输出目录已存在且没有强制覆盖。解决加-f参数强制覆盖如apktool d -f -o my_app_out my_app.apk。现象apktool b报框架相关错误或解别人的 App 时缺资源。原因是某些 APK 引用了系统框架资源framework-res.apk本机没有缓存。解决先安装框架再解包apktool if 框架apk路径或解包时用-p 框架目录指定框架所在位置。现象构建成功但安装时提示签名错误/无法安装。原因有两个一是 apktool 产出的 APK 未签名签名流程见下二是手机上已装了旧版本签名不一致。解决先卸载旧版再用 apksigner 为新包签名。另外注意如果解包时用了-r不解资源或-s不解代码对应部分就不能重打包这是最常见的自欺——构建前先确认自己到底要改哪一侧。和它搭档用的工具每个环节各管一段keytool生成签名用的 keystore如keytool -genkey -v -keystore keystore.jks。没有签名文件重打包的 APK 就走不到签名环节。apksigner在apktool b产出之后介入为 APK 按 v2/v3 签名方案签名这是让系统接受你的改版的最后一道手续。zipalign紧接签名之前对 APK 做 4 字节对齐保证未压缩资源能被系统高效读取也是官方推荐的发布前流程。jadx / dex2jarApktool 产出的是 smali 汇编smali 解码逻辑在 brut.apktool/apktool-lib/src/main/java/brut/androlib/smali/阅读成本高这类工具能直接把 dex 转成 Java 伪代码适合先读懂、再回来改 smali的工作流。smali / baksmaliApktool 内部的 dex 反汇编引擎脱离 APK 也能单独用来修补 dex 文件适合只动代码不动资源的小手术。完整命令行为可以查看入口源码 brut.apktool/apktool-cli/src/main/java/brut/apktool/Main.java里面定义了 d/b/if 等全部子命令的参数。【免费下载链接】ApktoolA tool for reverse engineering Android apk files项目地址: https://gitcode.com/GitHub_Trending/ap/Apktool创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考