apktool.bat d xuebao.apk --only-main-classes -o test
apk反编译
apktool.dat d apkName.apk -o test<输出目录>
# org.jf.util.ExceptionWithContext 由于上面命令行会反编译所有dex文件,而assets文件下的dex文件与源码文件不同,因此会报错
# 只反编译主要的源码文件
apktool d apkName.apk --only-main-classes -o test<输出目录>
修改
打包
apktool.dat b test<资源文件夹>
# 会在test文件夹中生成dist和build文件夹,打包后的apk在dist文件夹下
签名
签名有两个步骤:1.生成签名(keytool.exe) 2. 签名(jarsigner.exe)两个exe都在jdk_32/bin下
生成签名(keytool)
keytool -genkey -keystore demo.keystore -alias my_alias -keyalg RSA -keysize 4096 -validity 10000
genkey 生成密钥对(公钥和私钥)
-v 显示密钥库中的证书详细信息
-alias <alias_name> 秘钥的别名,只有前8个字符有效
-keyalg <alg> 生成秘钥的算法,支持DSA和RSA
-keysize <size> 生成秘钥的位数,默认1024位,建议使用2048以上的位数
-dname <name> 发布者名称,如未指定,在使用jarsigner签名时会提示输入
-keypass <password> 秘钥的密码
-validity <valDays> 密钥的有效期是多少天
-storepass <password> keystore的密码
签名(jarsigner)
jarsigner -verbose -keystore demo.keystore demo.apk my_alias
-keystore <keystore-name>.keystore keystore路径
-signedjar <signed-apk-name>.apk 签名后apk文件输出路径
-verbose 输出详细信息
-sigalg <算法> 签名算法
-digestalg <算法> 处理apk使用的哈希算法
-verify 验证已签名的jar文件






















