apktool 反向编译apk

apktool 反向编译apk


环境

  • Windows 10
  • java >= 1.7
  • wget

操作

  1. 安装apktool

可参考:https://ibotpeaches.github.io/Apktool/install

java -version # 查看java版本,需>=1.7
wget https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/windows/apktool.bat # 下载apktool.bat
wget https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.3.2.jar # 下载apktool_2.3.2.jar
rename apktool_2.3.2.jar apktool.jar # apktool_2.3.2.jar重命名为apktool.jar

安装完毕,切记需将apktool.bat和apktool.jar一起放置,可加入环境变量之后可以在任一目录执行运行,否则需切换到apktool.bat和apktool.jar所在的目录执行运行。

  1. 反向编译test.apk
apktool d test.apk [-o $dir] [-p $dir] # -o指定apk解码目录,可选项,-p指定frame框架暂存目录,可选项

# 现在可以在解码的目录内修改内容了,修改完毕后继续以下步骤

apktool b test [-o $file.apk] # -o指定构建apk文件的路径及文件名,可选项

至此反向编译test.apk完毕,不过此时apk还不能使用,需要重新签名之后才可正常使用。

PS:重新编译后的apk文件默认在解码目录下的dist目录下,若使用[-o]选项,则在指定目录

  1. 为apk文件签名
# 切记一个dos窗口只能运行生成一个keystore,如需生成多个,请重开dos窗口

# 生成keystore,输入密码后的选项随意填写,然后最后一步确认的时候按[y]后回车即可
keytool -genkey -keystore test.keystore -alias test -keyalg RSA -validity 1000

# 使用keystore为apk文件签名
# 其中[-signerjar]选项后跟三个参数,分别是签名后的apk文件,未签名的apk文件和keystore的别名(alias)
jarsigner -verbose -keystore test.keystore -signedjar test.out.apk $path/test.apk test

总结

自此apk文件反编译完成,特此记录备忘。

你可能感兴趣的:(apktool 反向编译apk)