前提:
因為一些情況需要反編譯修改后出新包
api的等級為30
原因:
解決:
需要額外執行v2簽名
對於簽名v1、v2、zipalign對齊的順序是:v1----zipalign對齊----v2
v1是對每個文件簽名
zipalign對齊是對數據壓縮
v2是對文件二進制數據簽名
附:
反編譯
java -jar D:\apktool.jar(apk文件) d F:\my.apk(apk地址) -f -o F:\recompile(反編譯后的存放目錄)
編譯
java -jar D:\apktool.jar(apk文件) b F:\recompile(反編譯后的存放目錄) -o F:\my_Recompile.apk(編譯apk的存放目錄)
v1簽名
jarsigner -verbose -keystore F:/my.keystore(簽名文件目錄) -signedjar F:\my_sign.apk(簽名后的存放目錄) F:\my_Recompile.apk oas_Korean -storepass gygame(編譯apk的存放目錄)
zipalign對齊
cd /d D:\android-sdk-windows\build-tools\30.0.2(sdk目錄,我這里選用的版本是30.0.2) && zipalign -v 4 F:\my_sign.apk(簽名后的存放目錄) F:\my_zipalign.apk(對齊后的存放目錄)
v2簽名
java -jar D:\android-sdk-windows\build-tools\30.0.2\lib\apksigner.jar(apksigner文件目錄,我這里選的版本是30.0.2) sign --ks F:\my.keystore(簽名文件目錄)
--ks-key-alias **(alias)
--ks-pass pass:**(keystore密碼)
--key-pass pass:**(alias密碼)
--out F:\my_new.apk(v2簽名后的存放目錄) F:\my_zipalign.apk(對齊后的存放目錄)