Apktool 安装与配置完整指南:APK 逆向工具从源码快速上手
【免费下载链接】ApktoolA tool for reverse engineering Android apk files项目地址: https://gitcode.com/GitHub_Trending/ap/Apktool
拿到一个闭源 APK,想改个字符串、挪个布局、动一段逻辑,就得把它拆开。Apktool 干的就是这件事:把 APK 反编译成资源 XML、清单和 Smali 字节码,改完再重新打包回可安装的 APK。装好它,反编译、改资源、重打包这条流水线就能一次跑通。
30 秒判断要不要装
- 要改 APK 里的资源、清单、Smali 代码并重新打包:需要它。
- 只读资源、想跑完整 Android 工程、要调试运行:用不上它,那是 IDE 和 Android Studio 的活。
依赖就一个:JDK 17+(构建主分支必需)。命令行终端你已经有了;Android SDK 不参与构建,可以先不管。
准备工作:只查两件事
1. 查 JDK,17 起
java -version✅ 看到17.x或更高的版本号就过关。主分支强制 JDK 17+,低版本会在配置阶段直接拒绝。没装就从发行版源装一个:
sudo apt install openjdk-17-jdk2. 拿到源码
git clone https://gitcode.com/GitHub_Trending/ap/Apktool cd Apktool仓库里自带gradlew包装脚本,不用另装 Gradle。
从源码构建到装进系统
1. 一条命令出 fat jar
./gradlew build这步把 5 个模块编译完,产出一个依赖全内置的可执行 jar(shadowJar任务,build默认任务之一)。💡 首次跑会拉大量依赖,网络慢时耐心等。
2. R8 再压一遍
./gradlew proguard这步用 R8 对 fat jar 做发布优化,输出build/libs/apktool_<版本号>.jar。主分支当前版本号是3.1.0,所以产物大致叫apktool_3.1.0-SNAPSHOT.jar。
ls brut.apktool/apktool-cli/build/libs/确认 jar 已生成。R8 卡住的话,直接改用第一步的 fat jar 也行,命令一致。
3. 放进系统目录并命名
脚本scripts/linux/apktool只认同目录下的apktool.jar:
sudo install -m 0755 scripts/linux/apktool /usr/local/bin/apktool sudo install -m 0755 brut.apktool/apktool-cli/build/libs/apktool_*.jar /usr/local/bin/apktool.jarinstall一把完成复制 + 赋权,两个文件都进 PATH。
一条命令验证装好
apktool --version✅ 看到3.1.0-...开头的版本号说明装好了。
跑通第一个真实任务
假设你手上有个test.apk:
apktool d test.apk产出test/目录:AndroidManifest.xml、res/下的资源、smali/下的字节码。随便改一行res/values/strings.xml,再重打包:
apktool b test最终 APK 落在dist/test.apk,可以adb install直接装。到这里,解包→改→重打包的整条流水线就跑通了。
踩坑速查
构建时直接报错
Building Apktool requires JDK 17 or newerJDK 版本低于 17。装 17+ 再跑:
sudo apt install openjdk-17-jdkproguard跑完没有apktool_*.jar
R8 依赖或规则异常。降级用 fat jar:
java -jar brut.apktool/apktool-cli/build/libs/apktool-cli-3.1.0-SNAPSHOT.jar --versionapktool: command not found
jar 没进 PATH,或脚本找不到同目录的apktool.jar。核对:
ls -l /usr/local/bin/apktool /usr/local/bin/apktool.jar下一步
解包用到共享框架资源报FrameworkNotFound时,先用apktool if framework.apk装框架,再回头解码。想改内部行为可以看 brut.apktool/apktool-lib/:ApkDecoder负责解包,ApkBuilder负责重打包,brut.j.zip管 zip 读写。
【免费下载链接】ApktoolA tool for reverse engineering Android apk files项目地址: https://gitcode.com/GitHub_Trending/ap/Apktool
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考