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),仅供参考

相关新闻

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

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

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

2026/11/4 1:55:07 阅读更多 →
3步永久保存微信聊天记录:留痕(WeChatMsg)快速上手指南

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

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

2026/10/25 20:23:35 阅读更多 →
ExplorerPatcher 恢复 Windows 10 任务栏、开始菜单与 Alt+Tab 完整指南

ExplorerPatcher 恢复 Windows 10 任务栏、开始菜单与 Alt+Tab 完整指南

ExplorerPatcher 恢复 Windows 10 任务栏、开始菜单与 AltTab 完整指南 【免费下载链接】ExplorerPatcher This project aims to enhance the working environment on Windows 项目地址: https://gitcode.com/GitHub_Trending/ex/ExplorerPatcher 如果你正在用 Windows …

2026/10/24 0:24:41 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/4 1:35:24 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/3 10:57:27 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/3 11:35:49 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/3 2:27:21 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/3 10:47:27 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/3 10:57:33 阅读更多 →

日新闻

周新闻

月新闻