5 分钟跑通 Apktool:APK 逆向工程最短上手路径
【免费下载链接】ApktoolA tool for reverse engineering Android apk files项目地址: https://gitcode.com/GitHub_Trending/ap/Apktool
APK(安卓应用的安装包)看不懂、改不动?Apktool 就是干这个的:把 APK 拆成能直接编辑的目录,你改完资源或代码,再一条命令打回成新的 APK。全程不用写代码,装好 Java 就能跑。下面从安装到解包回包,每步都给好现成命令,照着敲就行。
它是什么
说白了,Apktool 相当于给 APK 做了个"可编辑的解压包"。APK 本来是压得死死的二进制文件,它给你还原成 AndroidManifest.xml、res 图片、smali 代码(安卓程序的字节码,相当于 Java 编译后的中间产物)这样的目录结构。它能帮你做三件事:拆包看清里面有什么、直接改资源和文本、改完重新打包成能装回手机的 APK。整个工具用 Java 写,产物就一个 jar 包,没有别的依赖要伺候。
🚀 一条命令装好 Apktool
准备就一件事:装个 JDK 17 及以上(java -version能看到版本号就行),其他什么都不用装。
先拉源码:
git clone https://gitcode.com/GitHub_Trending/ap/Apktool && cd Apktool再打出一个能直接跑的 jar,-x test会跳过测试,快很多:
./gradlew clean shadowJar -x test把构建产物改个顺手的名字,顺便验证装没装成功:
mv brut.apktool/apktool-cli/build/libs/apktool-cli-all.jar apktool.jar java -jar apktool.jar --version执行完会打出 3.1.x 的版本号,看到就说明 Apktool 安装完成。嫌构建慢的话,也可以直接用官方发布渠道下的 apktool.jar,放哪都行,java -jar跑起来是一样的。
解包回包各一行
把 APK 拆开看看
想知道一个 APK 里到底有啥,一行就够:
java -jar apktool.jar d test.apk跑完当前目录多出test.apk/,manifest、图片资源、smali 全在里头,随便翻。
改完资源打回去
在解出来的目录里改完文字或配置后,回包:
java -jar apktool.jar b test.apk/成功后dist/下会生成新的 APK,拿去装机验证。
只看代码不碰资源
只关心 smali 代码的话,加个-s跳过资源解析,包越大省得越多:
java -jar apktool.jar d test.apk -s出来的目录里只有 smali 和 manifest,翻起来快。
⚠️ 避坑提示
- Gradle 报 Java 版本不对:提示需要 JDK 17 或出现
Unsupported class file之类字样,九成是 Java 太老。java -version看一眼,不够就升级,别瞎调参数。 - 解包提示目录已存在:上次的解包目录没删干净时会直接报错拒解。加
-f强制覆盖:java -jar apktool.jar d test.apk -f。
【免费下载链接】ApktoolA tool for reverse engineering Android apk files项目地址: https://gitcode.com/GitHub_Trending/ap/Apktool
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考