Android apk反编译重新打包签名安装
目的
通过一些工具对apk进行反编译,能够看到开发该apk使用的资源文件,实现代码等,主要目的是借鉴和学习,提高自我水平。
1 准备工具
-
apktool : 1 获取资源文件,smali文件,2 重新打包
下载地址:https://bitbucket.org/iBotPeaches/apktool/downloads/
选择最新版本即可。 -
autosign: 系统签名工具,将重新打包的apk进行签名,如果不签名,无法安装。
网上搜索下载 或者 我上传到****的autosign的下载地址
2 步骤
1 在 apktool 当前目录准备一个 test.apk。
2 启动 cmd, 进入 apktool 目录
执行:java -jar apktool_2.4.1.jar d -f
test.apk -o
test
将当前目录的 test.apk 文件进行反编译,反编译后生成的文件位于当前test目录下。
打开test目录,也可以用android studio 打开查看。
资源文件主要是 AndroidManifest.xml ,assets目录 和 res 目录下的 layout,drawable,values,注意要和系统文件做区分;实现代码主要是smali 目录。
也可以对上面文件进行相应的修改。
3 重新打包 (b)
执行命令:java -jar apktool_2.4.1.jar b
test
将当前test目录下的文件重新打包,会在test\dist目录下生成新的apk 文件。
此文件暂时不能安装。
4 系统签名
进入 autosign目录
执行命令:java -jar signapk.jar testkey.x509.pem testkey.pk8
…\test\dist\test.apk test_signed.apk
将相对路径上的 test.apk 文件进行签名,在当前目录生成 test_signed.apk 文件,就可以正常安装了 。adb install
test_signed.apk
参考
APK反编译
Android 反编译利器,jadx 的高级技巧
一步一步带你反编译apk,并教你修改smali和重新打包