一、如何对一个APK签名?
网上资料比较多,找了一个比较好的:
http://xlover.iteye.com/blog/1111560
简单来说,步骤为:
1、生成签名文件key.keystore,并指定签名文件的密码:
jarsigner -verbose -keystore key.keystore -signedjar notepad_signed.apk notepad.apk key.keystore
2、用签名文件key.keystore对APK进行签名:
jarsigner -verbose -keystorekey.keystore -signedjar notepad_signed.apk notepad.apk key.keystore
二、签名的作用是什么?
这里需要补一下信息安全方面的知识,如下,数字签名的作用:
http://www.docin.com/p-99435359.html
因此,衍生出两个Android签名最重要的作用:
1、确认你的APK没有被人恶意篡改;(数字签名的作用)PS:脑补一下,QQ里面被人恶意篡改,然后你在不知情的情况下下载到
2、通过对比你的签名文件,保证在覆盖安装时,你的APP不会被其他人覆盖;(衍生作用) PS:你应该不希望自己的APP被其他人覆盖吧,除了你自己
4、签名是如何起作用的?
目前主流的签名算法,有RSA、DES等等,都是基于一些公认的数学理论;(比如RSA是基于大数分解)