APK签名流程

来源:互联网 发布:网络授课老师招聘 编辑:程序博客网 时间:2024/05/21 17:20

Android的APK签名主要分为两个过程:

1.生成摘要

这里生成摘要采用的是SHA-1算法。如下图所示:


对Android sources中的a,b,c进行SHA-1运算,得到摘要文件.md;在MANIFEST.MF中包含所有文件内容的摘要值。(注意:并不包括该签名目录下的文件内容。);而在CERT.SF中保存的是MANIFEST.MF的摘要值以及MANIFEST.MF中每一个摘要项的摘要值。

也就是说,在这一个步骤中只是生成需要签名的摘要,准确来说并不是签名的过程。至于在MANIFEST.MF基础上再生成CERT.SF的目的应该是防止MANIFEST.MF被伪造。


2.签名

writeSignatureBlock函数用privateKey对CERT.SF加密生成签名,然后把签名和公钥证书一起保存到CERT.RSA中。也就是说CERT.RSA包含了签名和签名用到的证书。而且这个证书是自签名的。

PS:源码在SignApk.Java中。

0 0