因为工作原因,需要在已经签名打包好的apk中替换文件,替换文件后我们的apk就不能正常使用了,需要我们进行二次签名才能正常安装。接下来就是二次签名的相关指令:
zipalign 对齐
zipalign工具是SDK中带的对齐工具,在签名之前我们首先需要需用它将APK对齐,zipalign 在sdk目录下,所以我们首先找到它:
cd到对应目录下:D:\Android\sdk\build-tools>,在SDK25版本后会有对应的zipalign.exe,这里我们以29版本下的zipalign.exe作为例子:
指令:
要对齐 infile.apk 并将其保存为 outfile.apk,请运行以下命令:
zipalign [-f] [-v] <alignment> infile.apk outfile.apk
我们把需要签名的input.apk放入该目录下,输入
zipalign.exe -v -p 4 input.apk output.apk
提示成功后,会生成一个output.apk
apksigner签名
cd到lib目录下,发现有个apksigner.jar工具
指令
java -jar apksigner.jar sign --ks key.jks --ks-key-alias releasekey app-name.apk
把上一步得到的output.apk和签名文件拷贝到该目录,我们输入
java -jar apksigner.jar sign --ks key.jks --ks-key-alias releasekey output.apk
输入签名文件的密码,执行命令后得到已经签名的文件,key.js为你的签名文件,releasekey为签名文件中的别名,根据实际情况修改,输入指令后,再输入签名密码,完成二次签名。
验证是否成功
指令:
java -jar apksigner.jar verify -v output.apk
得到相关签名信息,说明二次签名成功,这个安装包就可以正常使用了。