Android apk反编译重新打包签名安装

目的

通过一些工具对apk进行反编译,能够看到开发该apk使用的资源文件,实现代码等,主要目的是借鉴和学习,提高自我水平。

1 准备工具

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和重新打包