keystore 生成

  1. keytool -genkey -v -keystore androiddefault.keystore -alias androiddefault -keyalg RSA -validity 20000 -keystore androiddefault.keystore

反编译

apktool d apk文件名字(test.apk)

回编译

apktool b apk反编译生成的文件夹(test文件夹)

生成的apk路径在 test/dist/下面

签名

对应的脚本

if [ $# -ne 2 ]
then
echo "argument error! you should use ./apksign.sh apk_name output_apk_name"
exit
fi

echo "processing..."

##keytool -genkey -v -keystore androiddefault.keystore -alias androiddefault -keyalg RSA -validity 20000 -keystore androiddefault.keystore 

## jarsigner -verify [options] jar-file [alias...] 最后的参数是alias 
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore androiddefault.keystore $1 androiddefault

jarsigner -verify -verbose -certs $1

##对齐字节码
/Users/brucetoo/Library/Android/sdk/build-tools/26.0.3/zipalign -v 4 $1 $2

echo "done"

执行的语句

./apksign.sh test/dist/test.apk test-new.apk(输出的文件)

如果没权限, chmod 777 apksign.sh

其中androiddefault.keystore的目录和apksign.sh同级