原文地址 https://www.jianshu.com/p/1e8cfea539e6
首先要了解是整个应用生成的过程

编译过程 .png
再来看一下最后生成的apk解压后的文件结构

Apk结构.png
这里主要关注未签名和签名的apk的区别
未签名的apk是没有MEAT-INF文件夹的,只有签名的apk才有这个文件夹。分别来看一下这个文件夹下的文件的含义
MANIFEST.MF
这个是校验应用完整性的文件,里面的结构是apk中每个文件生成的hash值
CERT.SF
这个是签名文件,是对MANIFEST.MF进行加密的
CERT.RSA
这个是公匙,用于解密使用
加密的过程
无论是debug还是release包都是要有签名文件的,我们在生成release包的时候也是先生成我们自己的私匙
1,为我们apk中文件都生成校验唯一性的hash值,生成MAINIFEST.MF文件
2,使用我们生成的私匙加密MANIFEST.MF生成CERT.SF,用于方式MAINIFEST.MF被篡改
3,

Apk签名过程包括生成MANIFEST.MF(记录文件hash值)、使用私钥加密生成CERT.SF,以及放入MEAT-INF的CERT.RSA公钥。解密时,通过公钥解密CERT.SF并与MANIFEST.MF对比验证完整性,同时校验apk文件的hash值。若所有步骤验证成功,Apk即可安装。重新签名允许删除原有签名文件并用新私钥签名。
最低0.47元/天 解锁文章
444





