需要用的工具有:
1、APK TOOL:这是谷歌提供的的编译工具
iBotPeaches / Apktool / Downloads — Bitbucket
2、dex2jar:将apk反编译成java源码(classes.dex转化成jar文件)
下载地址 Releases · pxb1988/dex2jar (github.com)
3、jd-gui:用来查看 jar 包里面的代码的一种工具,用于编辑步骤2反编译的jar包
进入正题:
1.解包
java -jar apktool.jar d -f cn.apk -o cn
命令中cn.apk指的是要反编译的APK文件全名, cn为反编译后资源文件存放的目录
2.dex文件转jar包
d2j-dex2jar.bat classes.dex
在该目录下会生成一个classes_dex2jar.jar的文件,这个就是反编译后的java代码文件了,只是需要特定的工具查看
3.修改
使用jd-gui打开对应的jar包 并进行修改
修改后重新打jar包 再生成classes文件 进行替换 生成apk即可
4.打包
java -jar apktool.jar b 文件路径
打包完成后会在文件路径/dist/下生成 打包后的apk
5.生成签名
keytool -genkey -alias android.keystore -keyalg RSA -validity 36500 -keystore android.keystore
或
keytool -importkeystore -srckeystore android.keystore -destkeystore android.keystore -deststoretype pkcs12
**指令含义:**创建一个证书文件,名为 android.keystore,别名也为 android.keystore ,加密算法采用 RSA,有效期为 100年。
注:
-genkey 生成文件
-alias 别名
-keyalg 加密算法
-validity 有效期
-keystore 文件名
6.签名
jarsigner -verbose -keystore 签名文件 -signedjar 签名后的apk名称 签名前的apk名称 keyAlias
完成,