尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Apktool 使用教程:从反编译到重打包的完整实战指南
Apktool 使用教程从反编译到重打包的完整实战指南【免费下载链接】ApktoolA tool for reverse engineering Android apk files项目地址: https://gitcode.com/GitHub_Trending/ap/ApktoolApktool 是一款用于逆向 Android APK 的经典命令行工具它能把resources.arsc资源表和二进制AndroidManifest.xml还原成可读的 XML 和 res 目录把classes.dex反汇编成一行行 smali 代码——而你改完之后它还能把整个工程重新打包回 APK。本教程就带你走完反编译 → 改代码 → 重打包 → 安装验证这条最实用的路径顺带讲清apktool.yml里每个日常会用到的字段。一、拿到一个能跑的 apktool.jar 前提是你装好了 JDK 8 及以上版本。最省事的做法是直接下载官方发布的apktool_x.y.z.jar发行版页面可获取如果你更习惯自己构建可以 clone 仓库git clone https://gitcode.com/GitHub_Trending/ap/Apktool cd Apktool ./gradlew :apktool-cli:shadowJar构建产物在brut.apktool/apktool-cli/build/libs/apktool_x.y.z.jar。后面统一用apktool.jar指代它。所有命令都遵循同一个套路java -jar apktool.jar 命令 [选项] 文件或目录二、实战任务把某 App 的 versionName 改成 1.0.1 并装回手机整个流程四步跟着敲一遍你就掌握了 Apktool 的核心闭环。第 1 步用 d 命令把 APK 拆开看结构d是 decode 的缩写也是使用频率最高的命令java -jar apktool.jar d sample.apk执行完你会得到一个sample/目录内部结构接近一个Android 工程AndroidManifest.xml——二进制清单还原成的文本版res/——layout、drawable、values 等资源文件smali/——dex 反汇编出的 smali 代码assets/、lib/——原样拷贝的目录apktool.yml——本次反编译生成的工程配置文件稍后细讲第 2 步找到要改的地方我们的目标是改版本号所以直接打开sample/AndroidManifest.xml找到android:versionName1.0.0改成1.0.1即可。如果你想改代码逻辑就去smali/下对应包路径找文件smali 本质上就是 Dalvik 字节码的文本形式改字符串常量、调方法跳转都很直接。改之前建议把原文件备份一份方便回滚。第 3 步用 b 命令重新打包在工程目录sample/外层执行java -jar apktool.jar b sample -c myapp_v2.apk-c指定产出的 APK 文件名构建结果默认落在dist/目录里即dist/myapp_v2.apk。此时一个完整的Apktool 反编译 → 修改 → 重编译闭环就走完了。第 4 步安装验证注意dist/里的 APK 是未签名的直接adb install会报INSTALL_FAILED_NO_CERTIFICATES。装之前需要自己签一次名apksigner sign --ks my.keystore dist/myapp_v2.apk adb install dist/myapp_v2.apk安装后在系统设置里确认版本号看到 1.0.1 即验证成功。顺带认识 if给系统框架建档上面这个例子能跑通是因为普通 APK 只依赖 Android 基础框架。但一旦 APK 用到了系统 API例如部分系统应用、插件构建时会抛FrameworkNotFoundException这时就需要if命令install-framework 的缩写java -jar apktool.jar if framework-res.apk它把框架资源解出来并缓存到~/.local/share/apktool/framework/之后b构建时自动匹配。装完之后可以用java -jar apktool.jar list-frameworks查看已装框架不用的用clean-frameworks清掉。if虽然不是每个任务都用得上但它排在整个工作流的最前面——框架没装好d和b都可能卡住。三、apktool.yml 配置精读五个你真正会动的字段每次d都会生成apktool.yml它是重打包时的工程记忆。日常基本只需要关注下面这几个字段字段读写逻辑见 ApkInfo 源码version生成该工程的 apktool 版本。建议保持与当前工具一致跨版本混用容易踩坑。apkFileName原始 APK 的文件名。一般不用动注意它只接受纯文件名带/、\的值会被源码直接拒绝。versionInfo记录 APK 的versionName和versionCode。它是反编译时的快照只读参考——改版本要去 manifest 里改改 yml 不会生效。sdkInfominSdkVersion和targetSdkVersion决定重编译时按哪个 SDK 的规格处理资源一般保持默认即可。usesFramework声明依赖的系统框架id 和 tag。用了系统 API 的 APK 才有这段配合if命令工作它为空说明是普通三方 APK。resourcesInfosparseEntries/compactEntries记录资源表的压缩格式doNotCompress列出重打包时不压缩的扩展名。这两类值都由d自动探测写入手动改动前请先确认你明白原 APK 的 ARSC 结构。一个经验yml 里可以改的极少不能乱改的很多。绝大多数定制需求换版本号、改权限、调资源都应该落在 manifest 和 res/smali 里yml 只需要在升级 apktool 大版本时留意version字段。四、常见坑与排障 ⚠️FrameworkNotFoundException框架没装或版本不对。先apktool if framework-res.apk再构建多个框架时可用--frame-path 目录指定存放位置。OutDirExistsException目录已存在d的目标目录已存在时会直接拒绝。换个输出目录或者加-f强制覆盖。aapt / aapt2 报错、资源链接失败多半是资源引用了框架里缺失的 API。加-v看详细日志定位到具体资源如果确认只需要动代码可以用b 目录 --no-res跳过资源重编译来隔离问题。装上去就闪退90% 是 smali 改动引入的——寄存器编号没对上、寄存器声明数量与方法实际不符。改动前先对照备份小步修改小步验证。多 dex 的 APK 没解全默认只解主 dex加-aall-src可以连同未知 dex 一起反汇编。几个高频选项值得记一下-s不反编译代码只看资源时省时间、-r不反编译资源、-j n控制并行线程数、-v详细日志。五、收尾与延伸阅读到这里你已经拥有了完整的日常工具链d拆包、if备框架、b重打包、apktool.yml 兜底配置。命令速查命令别名作用ddecode反编译 APKbbuild重打包为 APKifinstall-framework安装系统框架lflist-frameworks查看已装框架cfclean-frameworks清理框架缓存想深入原理可以翻翻 核心库源码资源解析、smali 构建都在这里和 完整的测试用例集——里面每个*Test.java几乎都对应一类真实世界踩过的坑是最好的进阶教材。【免费下载链接】ApktoolA tool for reverse engineering Android apk files项目地址: https://gitcode.com/GitHub_Trending/ap/Apktool创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

微信聊天记录永久保存:留痕(WeChatMsg)快速上手的完整指南

微信聊天记录永久保存:留痕(WeChatMsg)快速上手的完整指南

微信聊天记录永久保存:留痕(WeChatMsg)快速上手的完整指南 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.co…

📅 2026/9/21 0:31:42
Faster-Whisper 语音转录指南:比原版 Whisper 快 4 倍的 CTranslate2 实现

Faster-Whisper 语音转录指南:比原版 Whisper 快 4 倍的 CTranslate2 实现

Faster-Whisper 语音转录指南:比原版 Whisper 快 4 倍的 CTranslate2 实现 【免费下载链接】faster-whisper Faster Whisper transcription with CTranslate2 项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper Faster-Whisper 用 CTranslat…

📅 2026/9/23 9:52:22
PLFM_RADAR(AERIS-10)10.5GHz FMCW 相控阵雷达开源项目:一份完整贡献清单,从文档改写到 FPGA 回归的快速上手路线

PLFM_RADAR(AERIS-10)10.5GHz FMCW 相控阵雷达开源项目:一份完整贡献清单,从文档改写到 FPGA 回归的快速上手路线

PLFM_RADAR(AERIS-10)10.5GHz FMCW 相控阵雷达开源项目:一份完整贡献清单,从文档改写到 FPGA 回归的快速上手路线 【免费下载链接】PLFM_RADAR Open-source, low-cost 10.5 GHz PLFM phased array RADAR system 项目地址: https…

📅 2026/10/4 21:12:26
MORE NEWS

更多资讯

📰

设计模式核心解析:六大原则、UML类图与五个高频模式

简介:王桂林撰写的《设计模式》PDF文档,面向希望系统掌握设计模式的软件开发者与在校学生。内容从设计模式的历史渊源讲起,介绍克里斯托弗亚历山大提出的模式语言以及GOF四位作者的经典著作,并系统讲解模式名称、问题、解决方案、…

📰

Java基础面试核心:JVM运行机制与高频易混概念详解

简介:一份面向Java后端与校招面试人群的2025版Java基础高频考题整理,聚焦虚拟机运行机制、字节码跨平台原理、JDK与JRE职责差异、Java与C在内存管理与继承上的区别,以及“编译与解释并存”等易混淆知识点,并梳理了从源代码到字节码…

📰

OLT配置手册实战:FTTx六类组网、语音组播与E1专线避坑

简介:华为OLT配置手册为华为公司发布的OLT设备配置指南,面向网络管理员、接入网工程师及备考相关认证的技术人员,帮助读者厘清OLT在宽带接入与业务承载中的配置逻辑。内容以实操示例为主线,专线部分覆盖QinQ VLAN、VLAN Stacking批…

📰

AI前沿 | 2026年10月24日:OpenAI 把前沿训练关进离线笼子——DNS 越界、11 天停摆与 Brotli 高危漏洞

AI前沿 | 2026年10月24日:OpenAI 把前沿训练关进离线笼子——DNS 越界、11 天停摆与 Brotli 高危漏洞 📖 首屏导读 本教程配套付费专栏:《大模型工程师修炼手记》 19.9 元(AI 编程 Agent 实战 本文同主题系统课程) …

📰

AI前沿 | 2026年10月24日:OpenAI 开放 Decisions API,输入每百万 Token 仅 0.1 美元——AI 开始“卖决定”而不是“卖建议”

AI前沿 | 2026年10月24日:OpenAI 开放 Decisions API,输入每百万 Token 仅 0.1 美元——AI 开始“卖决定”而不是“卖建议” 📖 首屏导读 本教程配套付费专栏:《大模型工程师修炼手记》 19.9 元(AI 编程 Agent 实战 …

📰

Ubuntu 18.04.6 装机排坑:Rufus、分区与网卡驱动

简介:这份PDF面向初次安装Ubuntu 18.04.6的个人用户、运维人员和装机爱好者,聚焦系统部署阶段常见故障的排查与解决。内容围绕启动盘制作、自定义分区、特定硬件驱动适配及常用软件安装展开,涵盖UEFI与MBR两种启动场景,并针对联想…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬