原文地址 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,最后三个文件都放到MEAT-INF文件夹下
解密过程
1,首先使用公匙解密CERT.SF,将CERF.SF解密后的数据与MANIFAST.MF进行比较,以此来证明证书的有效性。因而它并不是用来验证应用程序包完整性的
2,然后校验apk中文件hash值和MENIFEST.MF中的文件hash值是否都能对应的上
上面的步骤都对了就可以安装了
重新签名
从上面的过程来看,我们可以把市场上的apk下载下来,删除加密文件夹下的内容,然后重新为apk签名
3048



被折叠的 条评论
为什么被折叠?



