APK反编译及重新打包
- 使用aapt查看APK信息
aapt在SDK的build-tools目录下
aapt dump badging D:\xxx.apk
- 使用apktool反编译APK
apktool_xxx.jar d xxx.apk
可以得到图片、XML配置、语言资源等文件
- 使用dex2jar反编译APK中的classes.dex
d2j-dex2jar classes.dex
可以得到classes-dex2jar.jar
- 使用jd-gui将classes-dex2jar.jar的class文件
- 或者使用procyon反编译class
java -jar decompiler.jar java.lang.String java -jar decompiler.jar -jar myJar.jar -o out
- 使用apktool重新打包
apktool b folder -o xxx.apk
- 生成密钥
keytool -genkey -alias xxx_alias -keyalg RSA -validity 20000 -keystore xxx.keystore
-genkey 生成密钥
-alias 密钥对的别名(密钥库可以存在多个密钥对,用于区分不同密钥对)
-keyalg 生成密钥对的算法(常用RSA/DSA,DSA只用于签名,默认采用DSA)
-validity 密钥对的有效期(单位: 天)
-keystore 密钥库名字以及存储位置(默认当前目录)
- 重新签名
jarsigner -verbose -keystore xxx.keystore -storepass xxx_password -signedjar xxx_signed.apk xxx.apk xxx_alias
-verbose:suboptions 签名/验证时输出详细信息。子选项可以是 all, grouped 或 summary
-keystore 密钥库位置
-signedjar 已签名的APK文件的名称