Mac Android apk 重打包
1、 环境
前置条件必须安转java
- 1)安装Homebrew
- 2)brew install apktool
- dex2jar:https://github.com/pxb1988/dex2jar
- jd-gui:http://jd.benow.ca
2、解析数据得出源码
1)进入存放apk的位置
2)执行 apktool d -s apk包名
3)打开解析的文件,文件内会生成 classes.dex 文件(它就是java文件编译再通过dx工具打包而成的),移动到 dex2jar-2.0 文件内
4)cmd 命令内进入 dex2jar-2.0 文件内,输入 sh d2j-dex2jar.sh classes.dex
备注:如果报错 执行 sudo chmod +x d2j_invoke.sh
5)当前文件夹内会生成 classes-dex2jar.jar 文件,利用jd-gui-osx-1.6.6文件内的 应用JD-GUI 打开
3、反编译数据,修改数据
- Cmd 进入apk包存储的位置 输入 apktool d test.apk -f,反编译出来的文件里,smali文件夹代替了上面的classes.dex;smali的目录结构与上面的class目录结构是相同的。
- 在smali 进行编辑修改保存即可
4 、apk重新打包
- Cmd 切换到文件目录下,输入 apktool b 文件名;会在当前文件内的 dist 文件夹内生成未签名的apk文件
- 执行该命令会在当前目录下 生成一个abc.keystore证书文件。keytool -genkey -alias abc.keystore -keyalg RSA -validity 20000 -keystore abc.keystore
- 未签名的apk包 和签名文件保存在同一个问价下,
- cmd 执行 jarsigner -verbose -keystore abc.keystore -signedjar 带签名的包名 未签名的包名 abc.keystore
- 备注:jarsigner -verbose -keystore [keystore路径] -signedjar [签名后文件存放路径] [未签名的文件路径] [keystore别名]